OptionaladditionalAdditionalGuestMemoryOverheadRatio can be used to increase the virtualization infrastructure overhead. This is useful, since the calculation of this overhead is not accurate and cannot be entirely known in advance. The ratio that is being set determines by which factor to increase the overhead calculated by Kubevirt. A higher ratio means that the VMs would be less compromised by node pressures, but would mean that fewer VMs could be scheduled to a node. If not set, the default is 1.
OptionalapiReloadableComponentConfiguration holds all generic k8s configuration options which can be reloaded by components without requiring a restart.
OptionalarchitectureOptionalautoWhen set, AutoCPULimitNamespaceLabelSelector will set a CPU limit on virt-launcher for VMIs running inside namespaces that match the label selector. The CPU limit will equal the number of requested vCPUs. This setting does not apply to VMIs with dedicated CPUs.
OptionalchangedChangedBlockTrackingLabelSelectors defines label selectors. VMs matching these selectors will have changed block tracking enabled. Enabling changedBlockTracking is mandatory for performing storage-agnostic backups and incremental backups.
OptionalcommonCommonInstancetypesDeployment controls the deployment of common-instancetypes resources
OptionalconfidentialQGS configuration for attestation on the Intel TDX Platform
OptionalcontrollerReloadableComponentConfiguration holds all generic k8s configuration options which can be reloaded by components without requiring a restart.
OptionalcpuOptionalcpuQuantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.
The serialization format is:
(Note that may be empty, from the "" case in .)
::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= "+" | "-" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei
(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
::= m | "" | k | M | G | T | P | E
(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
::= "e" | "E" ```
No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.
When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.
Before serializing, Quantity will be put in "canonical form". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:
- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.
The sign will be omitted unless the number is negative.
Examples:
- 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.
Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)
This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.
OptionaldefaultOptionaldeveloperDeveloperConfiguration holds developer options
OptionalemulatedDeprecated. Use architectureConfiguration instead.
OptionalevictionEvictionStrategy defines at the cluster level if the VirtualMachineInstance should be migrated instead of shut-off in case of a node drain. If the VirtualMachineInstance specific field is set it overrides the cluster level one.
OptionalhandlerReloadableComponentConfiguration holds all generic k8s configuration options which can be reloaded by components without requiring a restart.
OptionalhypervisorsHypervisors holds information regarding the hypervisor configurations supported on this cluster.
OptionalimagePossible enum values:
"Always" means that kubelet always attempts to pull the latest image. Container will fail If the pull fails."IfNotPresent" means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails."Never" means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't presentOptionalinstancetypeInstancetype configuration
OptionalksmKSMConfiguration holds the information regarding the enabling the KSM in the nodes (if available).
OptionalliveLiveUpdateConfiguration holds defaults for live update features
OptionalmachineDeprecated. Use architectureConfiguration instead.
OptionalmediatedMediatedDevicesConfiguration holds information about MDEV types to be defined, if available
OptionalmemOptionalmigrationsMigrationConfiguration holds migration options. Can be overridden for specific groups of VMs though migration policies. Visit https://kubevirt.io/user-guide/operations/migration_policies/ for more information.
Optionalmindeprecated
OptionalnetworkNetworkConfiguration holds network options
OptionalobsoleteOptionalovmfDeprecated. Use architectureConfiguration instead.
OptionalpermittedPermittedHostDevices holds information about devices allowed for passthrough
OptionalpersistentPersistentReservationConfiguration controls the deployment of additional resources required for using SCSI persistent reservation in VMs
OptionalroleRoleAggregationStrategy controls whether RBAC cluster roles should be aggregated to the default Kubernetes roles (admin, edit, view). When set to "AggregateToDefault" (default) or not specified, the aggregate-to-* labels are added to the cluster roles. When set to "Manual", the labels are not added, and roles will not be aggregated to the default roles. Setting this field to "Manual" requires the OptOutRoleAggregation feature gate to be enabled. This is an Alpha feature and subject to change.
OptionalseccompSeccompConfiguration holds Seccomp configuration for Kubevirt components
OptionalselinuxOptionalsmbiosOptionalsupportSupportContainerResources specifies the resource requirements for various types of supporting containers such as container disks/virtiofs/sidecars and hotplug attachment pods. If omitted a sensible default will be supplied.
Optionalsupporteddeprecated
OptionaltlsTLSConfiguration holds TLS options
OptionalvirtVirtTemplateDeployment controls the deployment of virt-template components
OptionalvirtualOptionalvirtualVirtualMachineOptions holds the cluster level information regarding the virtual machine.
OptionalvmVMRolloutStrategy defines how live-updatable fields, like CPU sockets, memory, tolerations, and affinity, are propagated from a VM to its VMI.
OptionalvmVMStateStorageClass is the name of the storage class to use for the PVCs created to preserve VM state, like TPM.
OptionalwebhookReloadableComponentConfiguration holds all generic k8s configuration options which can be reloaded by components without requiring a restart.
KubeVirtConfiguration holds all kubevirt configurations