VirtualMachineInstancetype
instancetype.kubevirt.io / v1beta1
apiVersion: instancetype.kubevirt.io/v1beta1
kind: VirtualMachineInstancetype
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
spec object required
Required spec describing the instancetype
annotations
object
Optionally defines the required Annotations to be used by the instance type and applied to the VirtualMachineInstance
cpu object required
Required CPU related attributes of the instancetype.
dedicatedCPUPlacement
boolean
DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node
with enough dedicated pCPUs and pin the vCPUs to it.
guest
integer required
Required number of vCPUs to expose to the guest.
The resulting CPU topology being derived from the optional PreferredCPUTopology attribute of CPUPreferences that itself defaults to PreferSockets.
format:
int32
isolateEmulatorThread
boolean
IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place
the emulator thread on it.
maxSockets
integer
MaxSockets specifies the maximum amount of sockets that can be hotplugged
format:
int32
model
string
Model specifies the CPU model inside the VMI.
List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map.
It is possible to specify special cases like "host-passthrough" to get the same CPU as the node
and "host-model" to get CPU closest to the node one.
Defaults to host-model.
numa object
NUMA allows specifying settings for the guest NUMA topology
guestMappingPassthrough
object
GuestMappingPassthrough will create an efficient guest topology based on host CPUs exclusively assigned to a pod.
The created topology ensures that memory and CPUs on the virtual numa nodes never cross boundaries of host numa nodes.
realtime object
Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads
mask
string
Mask defines the vcpu mask expression that defines which vcpus are used for realtime. Format matches libvirt's expressions.
Example: "0-3,^1","0,2,3","2-3"
gpus []object
Optionally defines any GPU devices associated with the instancetype.
claimName
string
ClaimName needs to be provided from the list vmi.spec.resourceClaims[].name where this
device is allocated
deviceName
string
DeviceName is the name of the device provisioned by device-plugins
name
string required
Name of the GPU device as exposed by a device plugin
requestName
string
RequestName needs to be provided from resourceClaim.spec.devices.requests[].name where this
device is requested
tag
string
If specified, the virtual network interface address and its tag will be provided to the guest via config drive
virtualGPUOptions object
display object
enabled
boolean
Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest.
Defaults to true.
ramFB object
Enables a boot framebuffer, until the guest OS loads a real GPU driver
Defaults to true.
enabled
boolean
Enabled determines if the feature should be enabled or disabled on the guest.
Defaults to true.
hostDevices []object
Optionally defines any HostDevices associated with the instancetype.
claimName
string
ClaimName needs to be provided from the list vmi.spec.resourceClaims[].name where this
device is allocated
deviceName
string
DeviceName is the name of the device provisioned by device-plugins
name
string required
requestName
string
RequestName needs to be provided from resourceClaim.spec.devices.requests[].name where this
device is requested
tag
string
If specified, the virtual network interface address and its tag will be provided to the guest via config drive
ioThreads object
Optionally specifies the IOThreads options to be used by the instancetype.
supplementalPoolThreadCount
integer
SupplementalPoolThreadCount specifies how many iothreads are allocated for the supplementalPool policy.
format:
int32
ioThreadsPolicy
string
Optionally defines the IOThreadsPolicy to be used by the instancetype.
launchSecurity object
Optionally defines the LaunchSecurity to be used by the instancetype.
sev object
AMD Secure Encrypted Virtualization (SEV).
attestation
object
If specified, run the attestation process for a vmi.
dhCert
string
Base64 encoded guest owner's Diffie-Hellman key.
policy object
Guest policy flags as defined in AMD SEV API specification.
Note: due to security reasons it is not allowed to enable guest debugging. Therefore NoDebug flag is not exposed to users and is always true.
encryptedState
boolean
SEV-ES is required.
Defaults to false.
session
string
Base64 encoded session blob.
snp
object
AMD SEV-SNP flags defined by the SEV-SNP specifications.
tdx
object
Intel Trust Domain Extensions (TDX).
memory object required
Required Memory related attributes of the instancetype.
guest
string | integer required
Required amount of memory which is visible inside the guest OS.
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$hugepages object
Optionally enables the use of hugepages for the VirtualMachineInstance instead of regular memory.
pageSize
string
PageSize specifies the hugepage size, for x86_64 architecture valid values are 1Gi and 2Mi.
maxGuest
string | integer
MaxGuest allows to specify the maximum amount of memory which is visible inside the Guest OS.
The delta between MaxGuest and Guest is the amount of memory that can be hot(un)plugged.
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
overcommitPercent
integer
OvercommitPercent is the percentage of the guest memory which will be overcommitted.
This means that the VMIs parent pod (virt-launcher) will request less
physical memory by a factor specified by the OvercommitPercent.
Overcommits can lead to memory exhaustion, which in turn can lead to crashes. Use carefully.
Defaults to 0
minimum:
0maximum:
100
nodeSelector
object
NodeSelector is a selector which must be true for the vmi to fit on a node.
Selector which must match a node's labels for the vmi to be scheduled on that node.
More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
NodeSelector is the name of the custom node selector for the instancetype.
schedulerName
string
If specified, the VMI will be dispatched by specified scheduler.
If not specified, the VMI will be dispatched by default scheduler.
SchedulerName is the name of the custom K8s scheduler for the instancetype.
No matches. Try .spec.cpu for an exact path