Prerequisites
- Permission:
vm:Createonkrn:vks:supervisor:<supervisor>:vm:*. The form’s dropdowns also needdiscovery:ListInstanceTypes,discovery:ListStorageClasses, anddiscovery:ListNamespaces. - KubeVirt installed on the supervisor. Its status is
virt:GetStatus; installing it isvirt:Install— see the platform onboarding wizard. - An image in the library with status
ready. Creation is rejected against an image in any other state. - A storage class that can back the VM’s disks.
<supervisor> and <vm> are placeholders throughout. Substitute your own names.What an image gives you
Two properties of the chosen image decide what the VM can later do:Create it
1
Name and place it
Give the VM a name and pick a namespace. The namespace defaults to
default — in practice you want a project namespace so the VM inherits that project’s addressing and isolation.2
Pick the image and instance type
Name, image, and instance type are the only strictly required fields. The instance type sets CPU and memory; disk size defaults to
20Gi when left empty.3
Set up access
For Linux, supply SSH public keys and/or a password. For Windows, an admin password. See Console & access.
4
Choose a network mode
Leave the default unless you have a reason not to — see below.
5
Add provisioning
Startup commands, a cloud-init template, extra partitions, or data disks.
6
Create
The VM object is created and the disk clone or ISO install begins.
Network mode
Set at creation and not changeable afterwards without recreating the VM.VM Identity Network
An optional stable, BGP-routable address that follows the VM across live migrations, instead of the volatile pod IP. It requires:- an identity pool on the supervisor (
identityPoolis mandatory when the identity network is enabled), and - a ReadWriteMany image — an identity address is pointless without live migration, since surviving the migration cutover is its whole purpose.
Linux provisioning
Provisioning is delivered through cloud-init (or Ignition, for images that use it) as a single boot script.
The agent install is placed first in the boot script, ahead of any template, so the VM reports its OS and address in seconds rather than after a long package install finishes.
Windows provisioning
- From a golden image
- From an ISO
A prepared Windows disk image is cloned. Provisioning is delivered on a sysprep CD:
- Sysprep template — an
autounattend.xmlwith template variables. Empty uses the built-in default with the universal virtio driver paths. - Setup script — a PowerShell script delivered as
setup.ps1and run once at first logon. This is the Windows equivalent of startup commands; put IIS, SQL, and tooling installs here.
Disk layout
Beyond the boot disk you can define, at creation time:- Root partitions — extra partitions carved out of the boot disk after the image’s own root partition, each with a mount path, size, and filesystem (
ext4,xfs, orbtrfs;ext4by default). A partition with no size takes the remaining space and must be last. - Data disks — additional blank disks, each formatted and mounted at a path you choose. A data disk can use its own storage class; otherwise it inherits the VM’s.
Ephemeral boot
Instead of cloning the golden into a per-VM disk, the VM can boot from a copy-on-write overlay over a shared, read-only golden. There is no clone, so boot takes seconds rather than minutes — and all writes are discarded when the VM stops.Ephemeral boot is an API-only option — it is deliberately not in the create form. It requires an NFS-CSI-backed golden, because that is the only case where the read-only base can be shared cheaply. Use it for disposable and test VMs.
Verify it worked
The VM appears in the list at/s/<supervisor>/vms. Open it and check, in order:
1
It is running
Status reaches running. A clone-based boot on file storage can take a couple of minutes before this happens.
2
The guest agent connected
The VM reports its guest OS and internal IP. Until the agent connects, those fields stay empty and the introspection tabs have nothing to show.
3
The identity address is present
If you enabled the identity network, the VM shows an identity IP alongside its pod IP.
What commonly goes wrong
Related
Lifecycle
Start, stop, migrate, snapshot, clone, move, and delete.
Networking
Publishing ports, gateways, and the identity network.
Storage & disks
Attaching, detaching, and snapshotting volumes.
Console & access
VNC, the guest agent, and in-guest introspection.