VirtualMachineClusterInstancetype [virtualmachineclusterinstancetypes.instancetype.kubevirt.io/v1beta1]

Description
VirtualMachineClusterInstancetype is a cluster scoped version of VirtualMachineInstancetype resource.
Type
object
Required
spec

Specification

PropertyTypeDescription
apiVersionstring

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

kindstring

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

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

Required spec describing the instancetype

.spec

Description
Required spec describing the instancetype
Type
object
Required
cpumemory
PropertyTypeDescription
annotationsobject

Optionally defines the required Annotations to be used by the instance type and applied to the VirtualMachineInstance

cpuobject

Required CPU related attributes of the instancetype.

gpusarray

Optionally defines any GPU devices associated with the instancetype.

hostDevicesarray

Optionally defines any HostDevices associated with the instancetype.

ioThreadsobject

Optionally specifies the IOThreads options to be used by the instancetype.

ioThreadsPolicystring

Optionally defines the IOThreadsPolicy to be used by the instancetype.

launchSecurityobject

Optionally defines the LaunchSecurity to be used by the instancetype.

memoryobject

Required Memory related attributes of the instancetype.

nodeSelectorobject

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.

schedulerNamestring

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.

.spec.annotations

Description
Optionally defines the required Annotations to be used by the instance type and applied to the VirtualMachineInstance
Type
object

.spec.cpu

Description
Required CPU related attributes of the instancetype.
Type
object
Required
guest
PropertyTypeDescription
dedicatedCPUPlacementboolean

DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node with enough dedicated pCPUs and pin the vCPUs to it.

guestinteger

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.

isolateEmulatorThreadboolean

IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place the emulator thread on it.

maxSocketsinteger

MaxSockets specifies the maximum amount of sockets that can be hotplugged

modelstring

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.

numaobject

NUMA allows specifying settings for the guest NUMA topology

realtimeobject

Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads

.spec.cpu.numa

Description
NUMA allows specifying settings for the guest NUMA topology
Type
object
PropertyTypeDescription
guestMappingPassthroughobject

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.

.spec.cpu.numa.guestMappingPassthrough

Description
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.
Type
object

.spec.cpu.realtime

Description
Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads
Type
object
PropertyTypeDescription
maskstring

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"

.spec.gpus

Description
Optionally defines any GPU devices associated with the instancetype.
Type
array

.spec.gpus[]

Type
object
Required
name
PropertyTypeDescription
claimNamestring

ClaimName needs to be provided from the list vmi.spec.resourceClaims[].name where this device is allocated

deviceNamestring

DeviceName is the name of the device provisioned by device-plugins

namestring

Name of the GPU device as exposed by a device plugin

requestNamestring

RequestName needs to be provided from resourceClaim.spec.devices.requests[].name where this device is requested

tagstring

If specified, the virtual network interface address and its tag will be provided to the guest via config drive

virtualGPUOptionsobject

.spec.gpus[].virtualGPUOptions

Type
object
PropertyTypeDescription
displayobject

.spec.gpus[].virtualGPUOptions.display

Type
object
PropertyTypeDescription
enabledboolean

Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest. Defaults to true.

ramFBobject

Enables a boot framebuffer, until the guest OS loads a real GPU driver Defaults to true.

.spec.gpus[].virtualGPUOptions.display.ramFB

Description
Enables a boot framebuffer, until the guest OS loads a real GPU driver Defaults to true.
Type
object
PropertyTypeDescription
enabledboolean

Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.

.spec.hostDevices

Description
Optionally defines any HostDevices associated with the instancetype.
Type
array

.spec.hostDevices[]

Type
object
Required
name
PropertyTypeDescription
claimNamestring

ClaimName needs to be provided from the list vmi.spec.resourceClaims[].name where this device is allocated

deviceNamestring

DeviceName is the name of the device provisioned by device-plugins

namestring
requestNamestring

RequestName needs to be provided from resourceClaim.spec.devices.requests[].name where this device is requested

tagstring

If specified, the virtual network interface address and its tag will be provided to the guest via config drive

.spec.ioThreads

Description
Optionally specifies the IOThreads options to be used by the instancetype.
Type
object
PropertyTypeDescription
supplementalPoolThreadCountinteger

SupplementalPoolThreadCount specifies how many iothreads are allocated for the supplementalPool policy.

.spec.launchSecurity

Description
Optionally defines the LaunchSecurity to be used by the instancetype.
Type
object
PropertyTypeDescription
sevobject

AMD Secure Encrypted Virtualization (SEV).

snpobject

AMD SEV-SNP flags defined by the SEV-SNP specifications.

tdxobject

Intel Trust Domain Extensions (TDX).

.spec.launchSecurity.sev

Description
AMD Secure Encrypted Virtualization (SEV).
Type
object
PropertyTypeDescription
attestationobject

If specified, run the attestation process for a vmi.

dhCertstring

Base64 encoded guest owner's Diffie-Hellman key.

policyobject

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.

sessionstring

Base64 encoded session blob.

.spec.launchSecurity.sev.attestation

Description
If specified, run the attestation process for a vmi.
Type
object

.spec.launchSecurity.sev.policy

Description
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.
Type
object
PropertyTypeDescription
encryptedStateboolean

SEV-ES is required. Defaults to false.

.spec.launchSecurity.snp

Description
AMD SEV-SNP flags defined by the SEV-SNP specifications.
Type
object

.spec.launchSecurity.tdx

Description
Intel Trust Domain Extensions (TDX).
Type
object

.spec.memory

Description
Required Memory related attributes of the instancetype.
Type
object
Required
guest
PropertyTypeDescription
guest

Required amount of memory which is visible inside the guest OS.

hugepagesobject

Optionally enables the use of hugepages for the VirtualMachineInstance instead of regular memory.

maxGuest

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.

overcommitPercentinteger

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

.spec.memory.hugepages

Description
Optionally enables the use of hugepages for the VirtualMachineInstance instead of regular memory.
Type
object
PropertyTypeDescription
pageSizestring

PageSize specifies the hugepage size, for x86_64 architecture valid values are 1Gi and 2Mi.

.spec.nodeSelector

Description
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.
Type
object

API Endpoints

The following API endpoints are available:

  • /apis/instancetype.kubevirt.io/v1beta1/namespaces/{namespace}/virtualmachineclusterinstancetypes
    • DELETE: delete collection of VirtualMachineClusterInstancetype
    • GET: list objects of kind VirtualMachineClusterInstancetype
    • POST: create a new VirtualMachineClusterInstancetype
  • /apis/instancetype.kubevirt.io/v1beta1/namespaces/{namespace}/virtualmachineclusterinstancetypes/{name}
    • DELETE: delete the specified VirtualMachineClusterInstancetype
    • GET: read the specified VirtualMachineClusterInstancetype
    • PATCH: partially update the specified VirtualMachineClusterInstancetype
    • PUT: replace the specified VirtualMachineClusterInstancetype

/apis/instancetype.kubevirt.io/v1beta1/namespaces/{namespace}/virtualmachineclusterinstancetypes

HTTP method
DELETE
Description
delete collection of VirtualMachineClusterInstancetype
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind VirtualMachineClusterInstancetype
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineClusterInstancetypeList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new VirtualMachineClusterInstancetype
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyVirtualMachineClusterInstancetype schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineClusterInstancetype schema
201 - CreatedVirtualMachineClusterInstancetype schema
202 - AcceptedVirtualMachineClusterInstancetype schema
401 - UnauthorizedEmpty

/apis/instancetype.kubevirt.io/v1beta1/namespaces/{namespace}/virtualmachineclusterinstancetypes/{name}

HTTP method
DELETE
Description
delete the specified VirtualMachineClusterInstancetype
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified VirtualMachineClusterInstancetype
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineClusterInstancetype schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified VirtualMachineClusterInstancetype
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineClusterInstancetype schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified VirtualMachineClusterInstancetype
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyVirtualMachineClusterInstancetype schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineClusterInstancetype schema
201 - CreatedVirtualMachineClusterInstancetype schema
401 - UnauthorizedEmpty