From 721297ed5e9817717e3e69853bfbfbfbaf1aefa3 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Fri, 7 Aug 2026 13:05:40 +0200 Subject: [PATCH] =?UTF-8?q?golden=200.206.0=20baked,=20published,=20round-?= =?UTF-8?q?trip=20verified=20=E2=80=94=20NOT=20vouched;=20the=20gate=20goe?= =?UTF-8?q?s=20green?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Controller v0.206.0 shipped the R-241 fixes on 2026-08-07 while the vouched golden still carried 0.205.0, so a machine installed this morning would have received neither - and the next recovery walk would have measured the old behaviour and failed for a reason nothing to do with the walk. Same gap as R-239, one day after R-239 was closed. version 0.206.0 sha256 c85230b42f53baa9c1ee9986ac312c751d6cbc29fbe070d87bb2214429a9108e size 656,750,694 bytes (uncompressed 2,003,138,560) MinAgent 0.127.0 Round-trip verified rather than trusted: the published bytes were fetched back, re-hashed independently (match), zstd-tested, and ./etc/felhom-controller-image was read OUT of the download -> felhom-controller:0.206.0. That last step is the one that matters, because GOLDEN_VERSION is derived from the tag argument and could be right over stale content. All acceptance markers pass; unit Result=success ExecMainStatus=0. Secret hygiene: token file->file, in-VM runner so it never reached a command line (unit-property grep 0), literal-value leak grep on the COMMITTED log 0 - with a positive control proving the grep works before the 0 was believed. Bake VM torn down: CT 9100 purged, secrets shredded, qemu observed gone via ps -eo comm, drill.qcow2 reverted to virgin. THE GATE BUILT EARLIER THIS SESSION NOW PASSES. It was shown CONVICTED against the pre-bake state and is OK now - red to green on the same check, the same command, which is its proof that it measures something real. Note it went green on the BAKE, not the vouch: that is its stated limitation, and the vouch is still pending the operator. NOT VOUCHED - the operator's act. Only one field moves: golden_version 0.205.0 -> 0.206.0 (+ its derived sha). agent_version and min_agent both stay 0.127.0. wrapper_sha256 is unchanged but is CLEARED if omitted from the POST. --- .../tests/golden-0.206.0-2026-08-08/README.md | 120 +++++++ .../tests/golden-0.206.0-2026-08-08/bake.log | 326 ++++++++++++++++++ 2 files changed, 446 insertions(+) create mode 100644 documentation/tests/golden-0.206.0-2026-08-08/README.md create mode 100644 documentation/tests/golden-0.206.0-2026-08-08/bake.log diff --git a/documentation/tests/golden-0.206.0-2026-08-08/README.md b/documentation/tests/golden-0.206.0-2026-08-08/README.md new file mode 100644 index 0000000..5a51879 --- /dev/null +++ b/documentation/tests/golden-0.206.0-2026-08-08/README.md @@ -0,0 +1,120 @@ +# Golden 0.206.0 — bake evidence (2026-08-08) + +Baked per `runbooks/RUNBOOK-manual-build.md` §4.0–§4.1, in the drill VM on DooPlex +(`/mnt/5_hdd/felhom.eu/drill/drill.qcow2`, internal snapshot `virgin`) — the sanctioned bake exception +in `runbooks/target-selection.md`. **R-239 recurring / R-242.** + +**Baked, published and verified. NOT vouched** — the hub's Day-0 artifacts were read but not written. +That is deliberate: this part ends at a STOP, and vouching is the operator's act. + +> **WHY THIS BAKE EXISTS AT ALL.** Controller **v0.206.0** shipped the R-241 fixes on 2026-08-07 while +> the vouched golden still carried **0.205.0** — so a machine installed on the morning of 2026-08-08 +> would have received neither, and the next recovery walk would have measured the old behaviour and +> failed for a reason nothing to do with the walk. **This is the same gap as R-239, one day after +> R-239 was closed**, which is what a rule without a mechanism does. `scripts/golden_currency_gate.py` +> (built in this session, and shown FAILING against exactly this state before anything was baked) is +> the mechanism. + +## The artifact + +| | | +|---|---| +| version | **0.206.0** | +| sha256 | **`c85230b42f53baa9c1ee9986ac312c751d6cbc29fbe070d87bb2214429a9108e`** | +| size | **656,750,694** bytes (uncompressed 2,003,138,560) | +| controller baked in | `gitea.dooplex.hu/admin/felhom-controller:0.206.0` | +| MinAgent (controller `CHANGELOG.md` header) | **0.127.0** | +| published at | `…/api/packages/admin/generic/felhom-golden/0.206.0/golden.tar.zst` | +| in-VM archive volid (destroyed with the CT) | `vzdump-lxc-9100-2026_08_07-12_59_46.tar.zst` | +| `build-golden.sh` | v3.0.0 (R-165 — one data volume; **there is no `mp1`**) | + +## Preconditions, checked rather than assumed + +- **Clean-tree gate on both source repos:** `felhom-controller` HEAD == `origin/main` == + `3d3b4496f377` (the image source), `felhom-agent` HEAD == `origin/main` == `703db166e762` (which + owns `build-golden.sh`). Both trees clean. +- Disk headroom `df -h /mnt/5_hdd /` → **24%** and **51%**. (Abort threshold 90%.) +- `ps -eo comm | grep -c qemu-system-x86` → **0**. Not `pgrep -f`, which self-matches. +- `qemu-img snapshot -a virgin` succeeded — independently re-proving nothing held the qcow2. +- Template **listed, not assumed**: `pveam available` → `debian-13-standard_13.6-1_amd64.tar.zst` + (unchanged since 2026-07-31); `pveam download` printed `checksum verified`. +- CT 9100 **absent** before the run (`pct list` empty). +- Token validated against the Gitea API **before** starting (`/api/v1/user` → 200); file mode `0600`. +- **404 pre-gate** on the real publish URL → **404** (the R-233 URL shape: + `…/0.206.0/golden.tar.zst`, not `felhom-golden-.tar.zst`). +- Controller image `0.206.0` manifest → **200**, so the tag being baked demonstrably exists. +- Drill VM read `pve-manager/9.2.2` — unchanged from the previous two bakes. + +## Acceptance markers + +From `bake.log` in this directory. + +| marker | count | required | +|---|---|---| +| `docker OK (overlay2` | 1 | ≥1 | +| `including mount point` | 2 — `rootfs ('/')` and `mp0 ('/var/lib/felhom')` | rootfs + mp0 | +| `upload OK (HTTP 201)` | 1 | ≥1 | +| `excluding` | 0 | 0 | +| `FATAL` | 0 | 0 | +| `ERROR:` / `WARN:` | 0 / 0 | 0 | +| unit result | `Result=success`, `ExecMainStatus=0` | success / 0 | + +Infra images baked (4, from the controller's own declaration): `traefik:v3.6.7`, +`cloudflare/cloudflared:2026.6.0`, `gtstef/filebrowser:1.3.3-stable`, +`gitea.dooplex.hu/admin/felhom-samba:1.1.0`. + +## The published bytes were verified by round trip, not trusted + +The bake **prints** a hash; that is the baker marking its own homework. + +1. `curl` the package → **HTTP 200**, **656,750,694** bytes. +2. `sha256sum` of the download → **`c85230b4…108e`** — **matches** the baked value; byte count matches. +3. `zstd -t` → decompresses clean to **2,003,138,560** bytes: a real archive, not an error page. +4. `tar -xO ./etc/felhom-controller-image` **out of the downloaded archive** → + `gitea.dooplex.hu/admin/felhom-controller:0.206.0`. +5. **19,358** entries under `var/lib/felhom/docker` — the baked images are on the data volume. + +**Step 4 is the one that matters:** `GOLDEN_VERSION` is *derived from the tag argument*, so the label +could be right while the content was stale. It is not — **the archive says so itself**. + +## Secret hygiene + +- Token copied **file → file** (`scp`); never through a shell on either side. +- Invocation in an **in-VM runner script that reads the token itself**, so it never reached a command + line. Verified: `systemctl show golden-bake -p Environment -p ExecStart | grep -c -F ` → **0**. +- Token-leak grep by **literal value** on the committed log → **0**. A broad `[a-f0-9]{40}` pattern is + wrong here — it false-hits image shas. +- **Positive control**, because an absence proves nothing until the instrument is shown to work: the + token was appended to a throwaway copy → **1 hit**; the copy was `shred -u`'d; the committed log's + **0** is therefore a measurement. Run against the copy **in this directory**, the one that is + committed. + +## Teardown + +`pct destroy 9100 --purge` (both logical volumes removed, `pct list` empty) · `shred -u` of the token, +`build-golden.sh`, the runner and `bake.log` **after** copying the log out · `poweroff` · qemu observed +gone via `ps -eo comm` · `qemu-img snapshot -a virgin` (confirmed: `virgin`, 0 B VM_SIZE). The drill VM +is back at its baseline and DooPlex is unchanged apart from this evidence directory. + +## What is NOT done here — the STOP + +**Vouching.** The hub still serves golden **0.205.0** (sha `8f49b2e8…4ee8`), agent **0.127.0**, +`min_agent` **0.127.0**. + +**It is a three-field change, and as on 2026-08-07 only one field moves** — read from the live +`hub_settings`, not assumed: + +| field | now | after | changes? | +|---|---|---|---| +| `artifact_golden_version` | `0.205.0` | `0.206.0` | **YES** | +| `artifact_golden_sha256` | `8f49b2e8…4ee8` | `c85230b4…108e` | **YES** (derived from the above) | +| `artifact_agent_version` | `0.127.0` | `0.127.0` | **no** — already ≥ the new golden's MinAgent | +| `artifact_min_agent` | `0.127.0` | `0.127.0` | **no** — the new golden's MinAgent is also 0.127.0 | +| `artifact_wrapper_sha256` | `104db0a4…16b3` | unchanged | **no** — but it is **cleared if omitted** from the POST | + +**Vouching is reversible**: re-select the previous values and Save. A bake never deletes an older +golden's package (the publish step's pre-delete targets only its own version), so rolling back is a +form submission, not a rebuild. + +**After the vouch, `scripts/golden_currency_gate.py` should go green** — the same check, the same +command. That transition is the gate's proof that it measures something real. diff --git a/documentation/tests/golden-0.206.0-2026-08-08/bake.log b/documentation/tests/golden-0.206.0-2026-08-08/bake.log new file mode 100644 index 0000000..fa4d1ea --- /dev/null +++ b/documentation/tests/golden-0.206.0-2026-08-08/bake.log @@ -0,0 +1,326 @@ +[golden] build-golden.sh v3.0.0 — baking controller gitea.dooplex.hu/admin/felhom-controller:0.206.0 +[golden] creating build LXC 9100 (nesting=1,keyctl=1, unprivileged; rootfs 32G + ONE data volume 24G @ /var/lib/felhom, backup=1) … + Logical volume "vm-9100-disk-0" created. + Logical volume pve/vm-9100-disk-0 changed. +Creating filesystem with 8388608 4k blocks and 2097152 inodes +Filesystem UUID: 4c29202e-8f68-4472-95e6-6c11142443e9 +Superblock backups stored on blocks: + 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, + 4096000, 7962624 + Logical volume "vm-9100-disk-1" created. + Logical volume pve/vm-9100-disk-1 changed. +Creating filesystem with 6291456 4k blocks and 1572864 inodes +Filesystem UUID: 6b070b07-8472-40eb-8297-46d4a8f535dc +Superblock backups stored on blocks: + 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, +extracting archive '/var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst' +Total bytes read: 553512960 (528MiB, 180MiB/s) +Detected container architecture: amd64 +Creating SSH host key 'ssh_host_rsa_key' - this may take some time ... +done: SHA256:Q6MrOrRAFA3RJmRiC1Kupr9ItD6Z/mBti6o0YFFS/w4 root@felhom-golden +Creating SSH host key 'ssh_host_ed25519_key' - this may take some time ... +done: SHA256:Ck3p5/RTfXjnQTBGEj/m89P+Qu/ByZ/sg7VORxz+4bM root@felhom-golden +Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ... +done: SHA256:h1dkNKQAIMoMZuY0p31rat02GXGXb4pdiswuJbM/QCc root@felhom-golden +[golden] starting + installing Docker (official repo, trixie channel) … +apt-listchanges: Can't set locale; make sure $LC_* and $LANG are correct! +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LC_CTYPE = (unset), + LC_NUMERIC = (unset), + LC_COLLATE = (unset), + LC_TIME = (unset), + LC_MESSAGES = (unset), + LC_MONETARY = (unset), + LC_ADDRESS = (unset), + LC_IDENTIFICATION = (unset), + LC_MEASUREMENT = (unset), + LC_PAPER = (unset), + LC_TELEPHONE = (unset), + LC_NAME = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +locale: Cannot set LC_CTYPE to default locale: No such file or directory +locale: Cannot set LC_MESSAGES to default locale: No such file or directory +locale: Cannot set LC_ALL to default locale: No such file or directory +apt-listchanges: Can't set locale; make sure $LC_* and $LANG are correct! +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LC_CTYPE = (unset), + LC_NUMERIC = (unset), + LC_COLLATE = (unset), + LC_TIME = (unset), + LC_MESSAGES = (unset), + LC_MONETARY = (unset), + LC_ADDRESS = (unset), + LC_IDENTIFICATION = (unset), + LC_MEASUREMENT = (unset), + LC_PAPER = (unset), + LC_TELEPHONE = (unset), + LC_NAME = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +locale: Cannot set LC_CTYPE to default locale: No such file or directory +locale: Cannot set LC_MESSAGES to default locale: No such file or directory +locale: Cannot set LC_ALL to default locale: No such file or directory +[golden] baking daemon.json: classic overlay2 driver (containerd-snapshotter OFF) + log rotation … +[golden] wiring the single data volume (R-165 variant V-c): /var/lib/felhom/{docker,sys_drive} -> binds … +[golden] verifying Docker works in the build guest (storage driver should be overlay2 on the ext4 data volume) … +Unable to find image 'hello-world:latest' locally +latest: Pulling from library/hello-world +4f55086f7dd0: Pulling fs layer +4f55086f7dd0: Download complete +4f55086f7dd0: Pull complete +Digest: sha256:7f4da0fc94bcece205a8c0b6f4d11c8196924654ffe5c4d1aa439b7f632048b2 +Status: Downloaded newer image for hello-world:latest + docker OK (overlay2; data-root /var/lib/docker) + /var/lib/docker is a real mount: /dev/mapper/pve-vm--9100--disk--1[/docker] ext4 + /mnt/sys_drive is a real mount: /dev/mapper/pve-vm--9100--disk--1[/sys_drive] ext4 + both paths are ONE filesystem: /dev/mapper/pve-vm--9100--disk--1 23317576 +[golden] baking the in-guest controller image gitea.dooplex.hu/admin/felhom-controller:0.206.0 (no registry cred at deploy) … + +WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'. +Configure a credential helper to remove this warning. See +https://docs.docker.com/go/credential-store/ + +0.206.0: Pulling from admin/felhom-controller +039e6f9f9752: Pulling fs layer +80fbb63a1167: Pulling fs layer +9d6c7a1331cb: Pulling fs layer +3f0ff4614786: Pulling fs layer +30ef5212cebc: Pulling fs layer +d5d5dc9f1e51: Pulling fs layer +3f0ff4614786: Waiting +d5d5dc9f1e51: Waiting +039e6f9f9752: Verifying Checksum +039e6f9f9752: Download complete +3f0ff4614786: Verifying Checksum +3f0ff4614786: Download complete +30ef5212cebc: Verifying Checksum +30ef5212cebc: Download complete +9d6c7a1331cb: Verifying Checksum +9d6c7a1331cb: Download complete +d5d5dc9f1e51: Verifying Checksum +d5d5dc9f1e51: Download complete +80fbb63a1167: Verifying Checksum +80fbb63a1167: Download complete +039e6f9f9752: Pull complete +80fbb63a1167: Pull complete +9d6c7a1331cb: Pull complete +3f0ff4614786: Pull complete +30ef5212cebc: Pull complete +d5d5dc9f1e51: Pull complete +Digest: sha256:6989f35fb2b2e7f18fbc2b9648226a69d80e026c284053d67ccf9b388caf75ab +Status: Downloaded newer image for gitea.dooplex.hu/admin/felhom-controller:0.206.0 +gitea.dooplex.hu/admin/felhom-controller:0.206.0 +[golden] asking the controller which infra images it manages … +[golden] baking infra images (4): traefik:v3.6.7 cloudflare/cloudflared:2026.6.0 gtstef/filebrowser:1.3.3-stable gitea.dooplex.hu/admin/felhom-samba:1.1.0 … +v3.6.7: Pulling from library/traefik +589002ba0eae: Pulling fs layer +ef63511ea6cc: Pulling fs layer +0738e5cb835e: Pulling fs layer +3e6813f70c64: Pulling fs layer +3e6813f70c64: Waiting +ef63511ea6cc: Verifying Checksum +ef63511ea6cc: Download complete +589002ba0eae: Verifying Checksum +589002ba0eae: Download complete +3e6813f70c64: Verifying Checksum +3e6813f70c64: Download complete +589002ba0eae: Pull complete +0738e5cb835e: Verifying Checksum +0738e5cb835e: Download complete +ef63511ea6cc: Pull complete +0738e5cb835e: Pull complete +3e6813f70c64: Pull complete +Digest: sha256:a9890c898f379c1905ee5b28342f6b408dc863f08db2dab20e46c267d1ff463a +Status: Downloaded newer image for traefik:v3.6.7 +docker.io/library/traefik:v3.6.7 +2026.6.0: Pulling from cloudflare/cloudflared +47de5dd0b812: Pulling fs layer +c172f21841df: Pulling fs layer +99515e7b4d35: Pulling fs layer +99ba982a9142: Pulling fs layer +d6b1b89eccac: Pulling fs layer +2780920e5dbf: Pulling fs layer +7c12895b777b: Pulling fs layer +3214acf345c0: Pulling fs layer +52630fc75a18: Pulling fs layer +dd64bf2dd177: Pulling fs layer +b839dfae01f6: Pulling fs layer +ebddc55facdc: Pulling fs layer +bdfd7f7e5bf6: Pulling fs layer +2d4d7adf6272: Pulling fs layer +40008157d8d2: Pulling fs layer +bd8962e29291: Pulling fs layer +cac2ae0193cb: Pulling fs layer +74d1dac84ecc: Pulling fs layer +99ba982a9142: Waiting +d6b1b89eccac: Waiting +2780920e5dbf: Waiting +7c12895b777b: Waiting +3214acf345c0: Waiting +52630fc75a18: Waiting +dd64bf2dd177: Waiting +b839dfae01f6: Waiting +ebddc55facdc: Waiting +bdfd7f7e5bf6: Waiting +2d4d7adf6272: Waiting +40008157d8d2: Waiting +bd8962e29291: Waiting +cac2ae0193cb: Waiting +74d1dac84ecc: Waiting +47de5dd0b812: Verifying Checksum +47de5dd0b812: Download complete +c172f21841df: Verifying Checksum +c172f21841df: Download complete +99515e7b4d35: Verifying Checksum +99515e7b4d35: Download complete +d6b1b89eccac: Verifying Checksum +d6b1b89eccac: Download complete +99ba982a9142: Verifying Checksum +99ba982a9142: Download complete +47de5dd0b812: Pull complete +2780920e5dbf: Verifying Checksum +2780920e5dbf: Download complete +7c12895b777b: Verifying Checksum +7c12895b777b: Download complete +3214acf345c0: Verifying Checksum +3214acf345c0: Download complete +52630fc75a18: Verifying Checksum +52630fc75a18: Download complete +c172f21841df: Pull complete +dd64bf2dd177: Verifying Checksum +dd64bf2dd177: Download complete +b839dfae01f6: Verifying Checksum +b839dfae01f6: Download complete +ebddc55facdc: Verifying Checksum +ebddc55facdc: Download complete +bdfd7f7e5bf6: Verifying Checksum +bdfd7f7e5bf6: Download complete +2d4d7adf6272: Verifying Checksum +2d4d7adf6272: Download complete +bd8962e29291: Verifying Checksum +bd8962e29291: Download complete +cac2ae0193cb: Verifying Checksum +cac2ae0193cb: Download complete +99515e7b4d35: Pull complete +74d1dac84ecc: Verifying Checksum +74d1dac84ecc: Download complete +40008157d8d2: Verifying Checksum +40008157d8d2: Download complete +99ba982a9142: Pull complete +d6b1b89eccac: Pull complete +2780920e5dbf: Pull complete +7c12895b777b: Pull complete +3214acf345c0: Pull complete +52630fc75a18: Pull complete +dd64bf2dd177: Pull complete +b839dfae01f6: Pull complete +ebddc55facdc: Pull complete +bdfd7f7e5bf6: Pull complete +2d4d7adf6272: Pull complete +40008157d8d2: Pull complete +bd8962e29291: Pull complete +cac2ae0193cb: Pull complete +74d1dac84ecc: Pull complete +Digest: sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f +Status: Downloaded newer image for cloudflare/cloudflared:2026.6.0 +docker.io/cloudflare/cloudflared:2026.6.0 +1.3.3-stable: Pulling from gtstef/filebrowser +6a0ac1617861: Pulling fs layer +ef8806083e82: Pulling fs layer +b74107c861c7: Pulling fs layer +adc935def003: Pulling fs layer +4f4fb700ef54: Pulling fs layer +18695ccc900a: Pulling fs layer +45d119d5c397: Pulling fs layer +dac52db4fc51: Pulling fs layer +6d598f86b2f2: Pulling fs layer +8aa349c8396c: Pulling fs layer +dac52db4fc51: Waiting +6d598f86b2f2: Waiting +8aa349c8396c: Waiting +4f4fb700ef54: Waiting +18695ccc900a: Waiting +45d119d5c397: Waiting +adc935def003: Waiting +6a0ac1617861: Verifying Checksum +6a0ac1617861: Download complete +adc935def003: Verifying Checksum +adc935def003: Download complete +b74107c861c7: Verifying Checksum +b74107c861c7: Download complete +4f4fb700ef54: Verifying Checksum +4f4fb700ef54: Download complete +45d119d5c397: Verifying Checksum +45d119d5c397: Download complete +6a0ac1617861: Pull complete +18695ccc900a: Download complete +dac52db4fc51: Verifying Checksum +dac52db4fc51: Download complete +6d598f86b2f2: Verifying Checksum +6d598f86b2f2: Download complete +8aa349c8396c: Verifying Checksum +8aa349c8396c: Download complete +ef8806083e82: Verifying Checksum +ef8806083e82: Download complete +ef8806083e82: Pull complete +b74107c861c7: Pull complete +adc935def003: Pull complete +4f4fb700ef54: Pull complete +18695ccc900a: Pull complete +45d119d5c397: Pull complete +dac52db4fc51: Pull complete +6d598f86b2f2: Pull complete +8aa349c8396c: Pull complete +Digest: sha256:eb3733681db8757412632c61a99ad656f0d94ed6781bb2ea114b4d70babab78c +Status: Downloaded newer image for gtstef/filebrowser:1.3.3-stable +docker.io/gtstef/filebrowser:1.3.3-stable +1.1.0: Pulling from admin/felhom-samba +897d797d2723: Pulling fs layer +3051591aa250: Pulling fs layer +ce57a3f93416: Pulling fs layer +fb94eeec2fe1: Pulling fs layer +fb94eeec2fe1: Waiting +ce57a3f93416: Verifying Checksum +ce57a3f93416: Download complete +fb94eeec2fe1: Verifying Checksum +fb94eeec2fe1: Download complete +897d797d2723: Verifying Checksum +897d797d2723: Download complete +3051591aa250: Verifying Checksum +3051591aa250: Download complete +897d797d2723: Pull complete +3051591aa250: Pull complete +ce57a3f93416: Pull complete +fb94eeec2fe1: Pull complete +Digest: sha256:1c17c09422bec0366d7cf0e0fcfc1486ba6c90334a0a5d5c851073a9342f8f10 +Status: Downloaded newer image for gitea.dooplex.hu/admin/felhom-samba:1.1.0 +gitea.dooplex.hu/admin/felhom-samba:1.1.0 +[golden] baking the controller-bootstrap unit (deploys the BAKED controller from the config mount) … +Created symlink '/etc/systemd/system/multi-user.target.wants/felhom-controller-bootstrap.service' → '/etc/systemd/system/felhom-controller-bootstrap.service'. +[golden] baking the controller-bootstrap PATH unit (starts the service on bootstrap-mount hot-plug — B1) … +Created symlink '/etc/systemd/system/multi-user.target.wants/felhom-controller-bootstrap.path' → '/etc/systemd/system/felhom-controller-bootstrap.path'. +[golden] baking the first-boot SSH host-key regeneration unit (F3) … +Created symlink '/etc/systemd/system/multi-user.target.wants/felhom-regen-hostkeys.service' → '/etc/systemd/system/felhom-regen-hostkeys.service'. +[golden] identity-clean + minimize … +[golden] stop + archive … +INFO: including mount point rootfs ('/') in backup +INFO: including mount point mp0 ('/var/lib/felhom') in backup +INFO: archive file size: 626MB +INFO: Finished Backup of VM 9100 (00:00:29) +[golden] DONE. golden archive volid: local:backup/vzdump-lxc-9100-2026_08_07-12_59_46.tar.zst (rootfs 32G + ONE data volume 24G @ /var/lib/felhom, all in the archive) +[golden] publishing golden (656750694 bytes, sha256 c85230b42f53baa9…) → https://gitea.dooplex.hu/api/packages/admin/generic/felhom-golden/0.206.0/golden.tar.zst +[golden] pre-delete existing: HTTP 404 (404/204 expected) +[golden] upload OK (HTTP 201) +GOLDEN_VERSION=0.206.0 +GOLDEN_SHA256=c85230b42f53baa9c1ee9986ac312c751d6cbc29fbe070d87bb2214429a9108e +[golden] Record in the hub operator UI (Configs → Day-0 artifacts): golden 0.206.0 / c85230b42f53baa9c1ee9986ac312c751d6cbc29fbe070d87bb2214429a9108e +[golden] (the build guest 9100 is stopped; destroy it with: pct destroy 9100 --purge)