Publish PVE-validated cloud-image (qcow2) VM artifacts to the generic registry #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Promote the cloud-image (qcow2 VM) pipeline from stage-1 PoC to a published,
PVE-validated artifact in the Forgejo generic registry alongside the LXC
templates. Today only
*.tar.zstLXC rootfs templates are published; the VMimages are built + boot-proven but not shippable.
Source of record:
reports/cloudimg-stage1-report.md,docs/qemu-vm-plan.md.Current state (stage 1, v0.1.0)
(GRUB → kernel → init →
login:), via libguestfs appliance (no loop/kvm).build-cloud-image.shlives in/scratch/Templates/cloudimg/and isNOT committed.
Blockers to publish
need cloud-initbut the service iscloud-init-main→cloud-config/cloud-finalwon't run. Fix in the build hook: rename the dependency tocloud-init-mainor provide acloud-initalias service; then validateall four stages apply hostname/SSH-keys/network from a NoCloud drive.
qm, no/dev/kvm, no loop devices). Import via the emitted.install.shon a realPVE 9.1 host; verify cloud-init identity/network,
qm agent ping,qm terminalserial login, chrony disciplined from/dev/ptp0(
modprobe ptp_kvmon the host — VM-R2).build-cloud-image.shintosrc/(it currently only exists under
/scratch).src/publish-to-forgejo.shglobs only*.tar.zst+*.manifest.txt. Add*.qcow2(+*.install.sh) collection,likely under a separate package name (e.g.
vm-images) so versions/lateststay distinct from
lxc-templates. Dateless registry naming already in place.Deferred (track, not blocking first publish)
/dev/kvmto cut TCG build time (~8→~2 min/image).Done =
A versioned +
latestqcow2 (Devuan + Debian) in the registry, cloud-initapplying identity/network on a real PVE 9.1 VM, with the committed builder +
qcow2-aware publisher reproducing it.
Implementation plan — "mostly working" VM images
Decisions locked (user, 2026-06-17):
modprobe ptp_kvmis a documented prereq.console=ttyS0last (serial = liveqm terminalconsole).Definition of done ("mostly working")
Per image, on a real PVE 9.1 host: import-only
install.sh→ stopped VM → GUI sets Cloud-Init (user/keys/IP) on that VM → start → serial login + cloud-init applied hostname+keys+network +qm agent pinganswers. One proven VM per image; templating is a later, separate step.Phases (sub-issues)
build-cloud-image.sh; wire cloud-init OpenRC shims0004,/etc/hostname=localhost, serial console, guest-agent, chrony-no-gate, NoCloud+eni; rebuild both qcow2; local TCG smoke. Debian first.)*.install.shglob; newvm-imagespackage, version0.1.0, dateless; emit import-only install.sh.)Deferred (not gating)
OpenZFS 2.4 DKMS (image is headers-ready) · UEFI/OVMF + MOK signing · swapfile + growpart · clean-lean Devuan VM.
Reference:
docs/qemu-vm-plan.md,reports/cloudimg-stage1-report.md.