libvirtd system extension adds to the host.
Talos Hypervisor building blocks
Talos Hypervisor is configured through three machine configuration documents, each describing a different part of the system:-
Content library: Stores the images that virtual machines boot from, such as installation ISOs. It is declared with a
ContentLibraryConfigdocument and stored on a Talos volume. Its files are uploaded and removed withtalosctl hypervisor content-library, rather than through the machine configuration. Talos also stores the cloud-init seed images it generates for virtual machines in a content library. -
Storage pool: Provides a location on the host for the writable disks of virtual machines. It is declared with a
StoragePooldocument and stored on a Talos volume. -
Virtual machine: Defines a virtual machine using a
VirtualMachineConfigdocument. The configuration specifies its power state, processors, memory, firmware, disks, consoles, video, network interfaces, and guest setup with cloud-init. Talos reports the virtual machine’s observed state through aVirtualMachineStatusresource.
Comparison with KubeVirt
Talos Linux can also run virtual machines through KubeVirt. Both approaches run virtual machines with QEMU and KVM, but they are managed differently. KubeVirt virtual machines are Kubernetes resources, operated withkubectl and virtctl. Talos Hypervisor virtual machines are declared in the host’s machine configuration and operated with talosctl, with libvirt and QEMU supplied by the libvirtd system extension. In this release, a hypervisor host runs as a node in a Kubernetes cluster, but Kubernetes does not manage its virtual machines.