libvirt: Add Ignition config injection support#245
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces Ignition configuration injection for libvirt VMs, enabling first-boot provisioning via a new --ignition CLI flag. The changes include architecture-specific injection (fw_cfg for x86_64/aarch64 and virtio-blk for s390x/ppc64le), persistent storage of config files in libvirt pools, automated cleanup, and new integration tests. Review feedback identifies a bug where image inspection is attempted before the image is pulled, a mismatch in the PowerPC architecture string, and a potential failure in XML metadata lookup for nested elements.
c6becee to
825bf0e
Compare
Add support for injecting Ignition configuration files into libvirt VMs via QEMU's fw_cfg mechanism (x86_64/aarch64) and virtio-blk (s390x/ppc64le). This enables first-boot provisioning for bootc-based systems that use Ignition, matching the ephemeral implementation. Signed-off-by: gursewak1997 <gursmangat@gmail.com>
825bf0e to
abe3227
Compare
| // Configure Ignition injection based on architecture | ||
| let arch = std::env::consts::ARCH; | ||
| match arch { | ||
| "x86_64" | "aarch64" => { |
There was a problem hiding this comment.
Maybe useful to have a const IGN_FWCFG_ARCHES that's shared here and with others
| ignition_persistent_path.to_string(), | ||
| ); | ||
| } | ||
| "s390x" | "powerpc64le" => { |
There was a problem hiding this comment.
Similarly const IGN_VIRTIO_BLK_ARCHES?
Add support for injecting Ignition configuration files into libvirt VMs via QEMU's fw_cfg mechanism (x86_64/aarch64) and virtio-blk (s390x/ppc64le). This enables first-boot provisioning for bootc-based systems that use Ignition, matching the ephemeral implementation.