CluPilotCloud/deploy
nexxo 88dadf759a
tests / pest (push) Failing after 9m49s Details
tests / assets (push) Successful in 25s Details
tests / release (push) Has been skipped Details
Release v1.3.89 — Falle 2 lehnte das einzige Abbild ab, für das sie gedacht war
Der erste echte Vorlagenbau brach ab mit:

  Die Root-Partition (/dev/sda1) ist nicht die letzte auf der Platte
  (/dev/sda15).

Das Abbild war in Ordnung, die Prüfung nicht. Sie verglich Partitions-NAMEN und
hielt für die letzte, was `sort -V` nach hinten sortiert. Debians Cloud-Abbild
legt die BIOS-Boot- und die EFI-Partition aber an den ANFANG der Platte und
nummeriert sie als 14 und 15; die Wurzel ist Nummer 1 und liegt physisch
dahinter. Gemessen: sda15 beginnt bei 4 MB, sda1 bei 128 MB.

Das ist kein Zufall dieses Abbilds, sondern genau die Eigenschaft, die Falle 2
verlangt — nur so kann growpart die Wurzel über den freien Rest ausdehnen. Die
Prüfung verweigerte also ein Abbild, weil es ihre Bedingung erfüllte.

Jetzt wird nach dem ANFANG auf der Platte gefragt statt nach der Nummer, über
`guestfish part-list`, das Offsets in Bytes liefert. "Nichts liegt dahinter" ist
eine Aussage über die Platte, nicht über die Benennung.

Die Auswertung steht in zwei eigenen Funktionen (last_partition_number,
partition_start), damit sie sich ohne Proxmox und ohne libguestfs gegen
aufgezeichnete part-list-Ausgaben durchspielen lässt — gemacht, in beide
Richtungen: Debians Anordnung besteht, eine Platte mit etwas hinter der Wurzel
fällt durch. Genau diese Gegenprobe fehlte, weshalb der Fehler bis auf echte
Hardware durchkam.

Und die Fehlermeldung trägt jetzt die Byte-Offsets beider Partitionen mit.
Scheitert das je wieder, steht die Platte im Protokoll statt einer Vermutung.

Nebenbei bestätigt: der VPN-Aussetzer vor dem Bau hat zweimal
"could not ask Proxmox about the VM templates" gemeldet und wiederholt, statt
einen Neubau auszulösen — der Codex-P1-Fix aus v1.3.88 hat am ersten Tag
verhindert, dass ein Netzausfall qm destroy --purge auslöst.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 09:21:54 +02:00
..
bootstrap Release v1.3.89 — Falle 2 lehnte das einzige Abbild ab, für das sie gedacht war 2026-08-01 09:21:54 +02:00
caddy Create the file the import needs, instead of writing that something else does 2026-07-30 23:35:13 +02:00
lib Stop the update agent dying on its own tag arithmetic 2026-07-29 00:00:17 +02:00
clupilot.env.example Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
install-agent.sh Create the file the import needs, instead of writing that something else does 2026-07-30 23:35:13 +02:00
install.sh Deploy as the application's user, and take back what root already took 2026-07-28 22:52:09 +02:00
update-agent.sh Manage hostnames and watch their certificates from the console 2026-07-30 22:55:55 +02:00
update.sh Manage hostnames and watch their certificates from the console 2026-07-30 22:55:55 +02:00