Files
josh 48f992a451
CI / Lint + build + test (push) Successful in 1m35s
Release / detect (push) Successful in 6s
Release / build-live-image (push) Successful in 7m40s
Release / bundle (push) Successful in 50s
bump live-image
2026-04-20 21:31:09 -04:00
..
2026-04-20 21:31:09 -04:00

Vetting live image

Debian-based Linux live image that PXE-booted hosts drop into. Runs the vetting-agent binary under systemd and reaches back to the orchestrator over HTTP+SSE.

Versioning

The live image has its own version marker at VERSION. Bump it (v<major>.<minor>.<patch>) whenever any mkosi input changes; CI only rebuilds and republishes live-image/<VERSION>/{vmlinuz,initrd.img} on the push that touches that file. The slim release bundle carries only a pointer to this version, and install.sh fetches the actual files from the registry when the target's on-disk copy is stale. See ../docs/operations.md for the install flow.

Release bundling

make release from the repo root produces vetting-bundle.tar.gz — orchestrator + agent + install scripts + a live-image/VERSION pointer. It does not embed vmlinuz/initrd.img; those come from the registry at install time.

Manual build (dev loop)

On Windows:

wsl make -C live-image all

On Linux:

make -C live-image all

This produces live-image/build/vmlinuz and live-image/build/initrd.img. deploy/pxe-setup.sh picks them up automatically when run from the repo tree — no manual copy needed.

iPXE binaries

The dnsmasq supervisor expects ipxe.efi and undionly.kpxe in pxe.tftp_root. deploy/pxe-setup.sh fetches them from boot.ipxe.org and verifies against pinned SHA256s in deploy/ipxe-shas.txt. Bumping the pins requires a deliberate repo commit.

WSL prerequisites (Windows dev)

sudo apt install mkosi debootstrap squashfs-tools dosfstools