You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 68cf491
Browse filesBrowse the repository at this point in the historyBrowse files
Expose a per-VM `firmware` block on the VMInstance API so users can
control the boot mode directly instead of relying solely on the
instanceProfile:
- bootloader: "uefi" (OVMF) or "bios" (SeaBIOS); empty inherits the
instanceProfile default (backward compatible)
- secureBoot: enable UEFI Secure Boot (also emits domain.features.smm,
which KubeVirt requires when Secure Boot is on)
- efiPersistent: persist EFI NVRAM so enrolled Secure Boot keys (e.g. an
updated Microsoft UEFI CA) survive reboots
efiPersistent uses a KubeVirt backend-storage PVC. On the default
ReadWriteOnce storage that PVC pins the VM to its node, so a
persistent-EFI VM cannot be live-migrated; this is documented on the
field and is sufficient for one-time in-guest tasks such as a Microsoft
UEFI CA update. Live-migration would require an RWX-Filesystem
vmStateStorageClass and is out of scope for this chart.
Regenerated values.schema.json, README, the generated API types and
deepcopy, and the vm-instance-rd ApplicationDefinition.
Co-Authored-By: Claude <[email protected]>
Signed-off-by: Andrei Kvapil <[email protected]>
|`external`| Enable external access from outside the cluster. |`bool`|`false`|
42
-
|`externalMethod`| Method to pass through traffic to the VM. |`string`|`PortList`|
43
-
|`externalPorts`| Ports to forward from outside the cluster. |`[]int`|`[22]`|
44
-
|`externalAllowICMP`| Whether to accept ICMP traffic to the VM in PortList mode (preserves ping and PMTU discovery). No effect in WholeIP mode. Default true so ping behaves as users expect even when port filtering is in effect. |`bool`|`true`|
45
-
|`runStrategy`| Requested running state of the VirtualMachineInstance |`string`|`Always`|
|`gpus`| List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). |`[]object`|`[]`|
56
-
|`gpus[i].name`| The name of the GPU resource to attach. |`string`|`""`|
57
-
|`cpuModel`| Model specifies the CPU model inside the VMI. List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map|`string`|`""`|
58
-
|`resources`| Resource configuration for the virtual machine. |`object`|`{}`|
59
-
|`resources.cpu`| Number of CPU cores allocated. |`quantity`|`""`|
60
-
|`resources.memory`| Amount of memory allocated. |`quantity`|`""`|
61
-
|`resources.sockets`| Number of CPU sockets (vCPU topology). |`quantity`|`""`|
62
-
|`sshKeys`| List of SSH public keys for authentication. |`[]string`|`[]`|
63
-
|`cloudInit`| Cloud-init user data. |`string`|`""`|
64
-
|`cloudInitSeed`| Seed string to generate SMBIOS UUID for the VM. |`string`|`""`|
|`external`| Enable external access from outside the cluster. |`bool`|`false`|
42
+
|`externalMethod`| Method to pass through traffic to the VM. |`string`|`PortList`|
43
+
|`externalPorts`| Ports to forward from outside the cluster. |`[]int`|`[22]`|
44
+
|`externalAllowICMP`| Whether to accept ICMP traffic to the VM in PortList mode (preserves ping and PMTU discovery). No effect in WholeIP mode. Default true so ping behaves as users expect even when port filtering is in effect. |`bool`|`true`|
45
+
|`runStrategy`| Requested running state of the VirtualMachineInstance |`string`|`Always`|
|`gpus`| List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). |`[]object`|`[]`|
56
+
|`gpus[i].name`| The name of the GPU resource to attach. |`string`|`""`|
57
+
|`cpuModel`| Model specifies the CPU model inside the VMI. List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map|`string`|`""`|
|`firmware.bootloader`| Bootloader to boot the VM with: "uefi" (OVMF) or "bios" (SeaBIOS). Empty inherits the instanceProfile default. |`string`|`""`|
60
+
|`firmware.secureBoot`| Enable UEFI Secure Boot. Only applies when bootloader is "uefi". |`bool`|`false`|
61
+
|`firmware.efiPersistent`| Persist EFI NVRAM (e.g. enrolled Secure Boot keys, such as an updated Microsoft UEFI CA) across reboots. Only applies when bootloader is "uefi". On default RWO storage the VM is node-pinned (no live-migration). |`bool`|`false`|
62
+
|`resources`| Resource configuration for the virtual machine. |`object`|`{}`|
63
+
|`resources.cpu`| Number of CPU cores allocated. |`quantity`|`""`|
64
+
|`resources.memory`| Amount of memory allocated. |`quantity`|`""`|
65
+
|`resources.sockets`| Number of CPU sockets (vCPU topology). |`quantity`|`""`|
66
+
|`sshKeys`| List of SSH public keys for authentication. |`[]string`|`[]`|
67
+
|`cloudInit`| Cloud-init user data. |`string`|`""`|
68
+
|`cloudInitSeed`| Seed string to generate SMBIOS UUID for the VM. |`string`|`""`|
"description": "Bootloader to boot the VM with: \"uefi\" (OVMF) or \"bios\" (SeaBIOS). Empty inherits the instanceProfile default.",
152
+
"type": "string"
153
+
},
154
+
"efiPersistent": {
155
+
"description": "Persist EFI NVRAM (e.g. enrolled Secure Boot keys, such as an updated Microsoft UEFI CA) across reboots. Only applies when bootloader is \"uefi\". On default RWO storage the VM is node-pinned (no live-migration).",
156
+
"type": "boolean"
157
+
},
158
+
"secureBoot": {
159
+
"description": "Enable UEFI Secure Boot. Only applies when bootloader is \"uefi\".",
160
+
"type": "boolean"
161
+
}
162
+
}
163
+
},
145
164
"resources": {
146
165
"description": "Resource configuration for the virtual machine.",
0 commit comments