Feature: kvm
Description
A platform feature that builds Garden Linux images for KVM and QEMU virtualization. Artifacts are delivered as .raw and .qcow2 files.
What it does
Configures Garden Linux for KVM and QEMU guests:
- QEMU guest agent: installs
qemu-guest-agentto enable host-guest communication (live migration signaling, in-guest command execution). - Kernel command line: sets the console parameter for KVM serial consoles and enables Ignition-based first-boot configuration.
- Ignition integration: includes the
ignition-disable.serviceunit to disable Ignition after first boot; the_ignitefeature provides the full Ignition support. - FAT filesystem tools: installs
dosfstoolsfor EFI partition management. - Filesystem cleanup: removes stale initrd and kernel symlinks from the rootfs that are not needed in the image.
The kvm platform is also the recommended base for local unit testing that requires a running OS.
Files
Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.
| File | Purpose |
|---|---|
exec.config (ref) | Enables ignition-disable.service. |
file.exclude (ref) | Removes stale /initrd.img, /initrd.img.old, /vmlinuz, and /vmlinuz.old symlinks from the rootfs. |
file.include.markers.yaml (ref) | Maps files to test-coverage marker IDs. |
info.yaml (ref) | Declares type: platform and included/excluded features. |
pkg.include (ref) | Installs dosfstools and qemu-guest-agent. |
file.include/etc/kernel/cmdline.d/10-console.cfg (file.include) | Sets the kernel console parameter for the KVM serial console. |
file.include/etc/kernel/cmdline.d/50-ignition.cfg (file.include) | Enables Ignition-based first-boot configuration via kernel parameter. |
file.include/etc/systemd/system/ignition-disable.service (file.include) | Systemd service that disables the Ignition kernel parameter after first boot. |
file.include/etc/udev/rules.d/60-onmetal.rules (file.include) | udev rules for on-metal disk device naming in the KVM environment. |
Related features
Includes:
cloud— provides common cloud-init integration and base cloud configuration._ignite— provides Ignition-based first-boot configuration support.