apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    kubevirt.io/generation: "3"
    kubevirt.io/install-strategy-identifier: 5dc642dcafc20b388aac8893d36db44393e586b9
    kubevirt.io/install-strategy-registry: ""
    kubevirt.io/install-strategy-version: sha256:031a34ff7b451f8588ed2960c576d6a835a749de7c168e88eaec45d180be6a21
  creationTimestamp: "2025-10-29T11:53:45Z"
  generation: 1
  labels:
    app.kubernetes.io/component: compute
    app.kubernetes.io/managed-by: virt-operator
    app.kubernetes.io/part-of: hyperconverged-cluster
    app.kubernetes.io/version: 4.19.12
    kubevirt.io: ""
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:conditions:
          k:{"type":"Established"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"NamesAccepted"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
    manager: kube-apiserver
    operation: Update
    subresource: status
    time: "2025-10-29T11:53:45Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:kubevirt.io/generation: {}
          f:kubevirt.io/install-strategy-identifier: {}
          f:kubevirt.io/install-strategy-registry: {}
          f:kubevirt.io/install-strategy-version: {}
        f:labels:
          .: {}
          f:app.kubernetes.io/component: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:kubevirt.io: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: virt-operator
    operation: Update
    time: "2025-10-29T13:20:45Z"
  name: virtualmachineclusterinstancetypes.instancetype.kubevirt.io
  resourceVersion: "2228633"
  uid: b4b44ecf-cec0-45c7-81f2-86b57975d86a
spec:
  conversion:
    strategy: None
  group: instancetype.kubevirt.io
  names:
    kind: VirtualMachineClusterInstancetype
    listKind: VirtualMachineClusterInstancetypeList
    plural: virtualmachineclusterinstancetypes
    shortNames:
    - vmclusterinstancetype
    - vmclusterinstancetypes
    - vmcf
    - vmcfs
    singular: virtualmachineclusterinstancetype
  scope: Cluster
  versions:
  - deprecated: true
    deprecationWarning: instancetype.kubevirt.io/v1alpha1 VirtualMachineClusterInstanceTypes
      is now deprecated and will be removed in v1.
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: VirtualMachineClusterInstancetype is a cluster scoped version
          of VirtualMachineInstancetype resource.
        properties:
          apiVersion:
            description: |-
              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
            type: string
          kind:
            description: |-
              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
            type: string
          metadata:
            type: object
          spec:
            description: Required spec describing the instancetype
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Optionally defines the required Annotations to be used
                  by the instance type and applied to the VirtualMachineInstance
                type: object
              cpu:
                description: Required CPU related attributes of the instancetype.
                properties:
                  dedicatedCPUPlacement:
                    description: |-
                      DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node
                      with enough dedicated pCPUs and pin the vCPUs to it.
                    type: boolean
                  guest:
                    description: |-
                      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
                    type: integer
                  isolateEmulatorThread:
                    description: |-
                      IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place
                      the emulator thread on it.
                    type: boolean
                  maxSockets:
                    description: MaxSockets specifies the maximum amount of sockets
                      that can be hotplugged
                    format: int32
                    type: integer
                  model:
                    description: |-
                      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.
                    type: string
                  numa:
                    description: NUMA allows specifying settings for the guest NUMA
                      topology
                    properties:
                      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
                    type: object
                  realtime:
                    description: Realtime instructs the virt-launcher to tune the
                      VMI for lower latency, optional for real time workloads
                    properties:
                      mask:
                        description: |-
                          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"
                        type: string
                    type: object
                required:
                - guest
                type: object
              gpus:
                description: Optionally defines any GPU devices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      type: string
                    name:
                      description: Name of the GPU device as exposed by a device plugin
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                    virtualGPUOptions:
                      properties:
                        display:
                          properties:
                            enabled:
                              description: |-
                                Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest.
                                Defaults to true.
                              type: boolean
                            ramFB:
                              description: |-
                                Enables a boot framebuffer, until the guest OS loads a real GPU driver
                                Defaults to true.
                              properties:
                                enabled:
                                  description: |-
                                    Enabled determines if the feature should be enabled or disabled on the guest.
                                    Defaults to true.
                                  type: boolean
                              type: object
                          type: object
                      type: object
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              hostDevices:
                description: Optionally defines any HostDevices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      description: DeviceName is the resource name of the host device
                        exposed by a device plugin
                      type: string
                    name:
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              ioThreadsPolicy:
                description: Optionally defines the IOThreadsPolicy to be used by
                  the instancetype.
                type: string
              launchSecurity:
                description: Optionally defines the LaunchSecurity to be used by the
                  instancetype.
                properties:
                  sev:
                    description: AMD Secure Encrypted Virtualization (SEV).
                    properties:
                      attestation:
                        description: If specified, run the attestation process for
                          a vmi.
                        type: object
                      dhCert:
                        description: Base64 encoded guest owner's Diffie-Hellman key.
                        type: string
                      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.
                        properties:
                          encryptedState:
                            description: |-
                              SEV-ES is required.
                              Defaults to false.
                            type: boolean
                        type: object
                      session:
                        description: Base64 encoded session blob.
                        type: string
                    type: object
                type: object
              memory:
                description: Required Memory related attributes of the instancetype.
                properties:
                  guest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: Required amount of memory which is visible inside
                      the guest OS.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  hugepages:
                    description: Optionally enables the use of hugepages for the VirtualMachineInstance
                      instead of regular memory.
                    properties:
                      pageSize:
                        description: PageSize specifies the hugepage size, for x86_64
                          architecture valid values are 1Gi and 2Mi.
                        type: string
                    type: object
                  maxGuest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: |-
                      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.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  overcommitPercent:
                    description: |-
                      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
                    maximum: 100
                    minimum: 0
                    type: integer
                required:
                - guest
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                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
              schedulerName:
                description: |-
                  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.
                type: string
            required:
            - cpu
            - memory
            type: object
        required:
        - spec
        type: object
    served: true
    storage: false
  - deprecated: true
    deprecationWarning: instancetype.kubevirt.io/v1alpha2 VirtualMachineClusterInstanceTypes
      is now deprecated and will be removed in v1.
    name: v1alpha2
    schema:
      openAPIV3Schema:
        description: VirtualMachineClusterInstancetype is a cluster scoped version
          of VirtualMachineInstancetype resource.
        properties:
          apiVersion:
            description: |-
              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
            type: string
          kind:
            description: |-
              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
            type: string
          metadata:
            type: object
          spec:
            description: Required spec describing the instancetype
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Optionally defines the required Annotations to be used
                  by the instance type and applied to the VirtualMachineInstance
                type: object
              cpu:
                description: Required CPU related attributes of the instancetype.
                properties:
                  dedicatedCPUPlacement:
                    description: |-
                      DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node
                      with enough dedicated pCPUs and pin the vCPUs to it.
                    type: boolean
                  guest:
                    description: |-
                      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
                    type: integer
                  isolateEmulatorThread:
                    description: |-
                      IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place
                      the emulator thread on it.
                    type: boolean
                  maxSockets:
                    description: MaxSockets specifies the maximum amount of sockets
                      that can be hotplugged
                    format: int32
                    type: integer
                  model:
                    description: |-
                      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.
                    type: string
                  numa:
                    description: NUMA allows specifying settings for the guest NUMA
                      topology
                    properties:
                      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
                    type: object
                  realtime:
                    description: Realtime instructs the virt-launcher to tune the
                      VMI for lower latency, optional for real time workloads
                    properties:
                      mask:
                        description: |-
                          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"
                        type: string
                    type: object
                required:
                - guest
                type: object
              gpus:
                description: Optionally defines any GPU devices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      type: string
                    name:
                      description: Name of the GPU device as exposed by a device plugin
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                    virtualGPUOptions:
                      properties:
                        display:
                          properties:
                            enabled:
                              description: |-
                                Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest.
                                Defaults to true.
                              type: boolean
                            ramFB:
                              description: |-
                                Enables a boot framebuffer, until the guest OS loads a real GPU driver
                                Defaults to true.
                              properties:
                                enabled:
                                  description: |-
                                    Enabled determines if the feature should be enabled or disabled on the guest.
                                    Defaults to true.
                                  type: boolean
                              type: object
                          type: object
                      type: object
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              hostDevices:
                description: Optionally defines any HostDevices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      description: DeviceName is the resource name of the host device
                        exposed by a device plugin
                      type: string
                    name:
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              ioThreadsPolicy:
                description: Optionally defines the IOThreadsPolicy to be used by
                  the instancetype.
                type: string
              launchSecurity:
                description: Optionally defines the LaunchSecurity to be used by the
                  instancetype.
                properties:
                  sev:
                    description: AMD Secure Encrypted Virtualization (SEV).
                    properties:
                      attestation:
                        description: If specified, run the attestation process for
                          a vmi.
                        type: object
                      dhCert:
                        description: Base64 encoded guest owner's Diffie-Hellman key.
                        type: string
                      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.
                        properties:
                          encryptedState:
                            description: |-
                              SEV-ES is required.
                              Defaults to false.
                            type: boolean
                        type: object
                      session:
                        description: Base64 encoded session blob.
                        type: string
                    type: object
                type: object
              memory:
                description: Required Memory related attributes of the instancetype.
                properties:
                  guest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: Required amount of memory which is visible inside
                      the guest OS.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  hugepages:
                    description: Optionally enables the use of hugepages for the VirtualMachineInstance
                      instead of regular memory.
                    properties:
                      pageSize:
                        description: PageSize specifies the hugepage size, for x86_64
                          architecture valid values are 1Gi and 2Mi.
                        type: string
                    type: object
                  maxGuest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: |-
                      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.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  overcommitPercent:
                    description: |-
                      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
                    maximum: 100
                    minimum: 0
                    type: integer
                required:
                - guest
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                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
              schedulerName:
                description: |-
                  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.
                type: string
            required:
            - cpu
            - memory
            type: object
        required:
        - spec
        type: object
    served: true
    storage: false
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: VirtualMachineClusterInstancetype is a cluster scoped version
          of VirtualMachineInstancetype resource.
        properties:
          apiVersion:
            description: |-
              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
            type: string
          kind:
            description: |-
              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
            type: string
          metadata:
            type: object
          spec:
            description: Required spec describing the instancetype
            properties:
              annotations:
                additionalProperties:
                  type: string
                description: Optionally defines the required Annotations to be used
                  by the instance type and applied to the VirtualMachineInstance
                type: object
              cpu:
                description: Required CPU related attributes of the instancetype.
                properties:
                  dedicatedCPUPlacement:
                    description: |-
                      DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node
                      with enough dedicated pCPUs and pin the vCPUs to it.
                    type: boolean
                  guest:
                    description: |-
                      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
                    type: integer
                  isolateEmulatorThread:
                    description: |-
                      IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place
                      the emulator thread on it.
                    type: boolean
                  maxSockets:
                    description: MaxSockets specifies the maximum amount of sockets
                      that can be hotplugged
                    format: int32
                    type: integer
                  model:
                    description: |-
                      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.
                    type: string
                  numa:
                    description: NUMA allows specifying settings for the guest NUMA
                      topology
                    properties:
                      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
                    type: object
                  realtime:
                    description: Realtime instructs the virt-launcher to tune the
                      VMI for lower latency, optional for real time workloads
                    properties:
                      mask:
                        description: |-
                          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"
                        type: string
                    type: object
                required:
                - guest
                type: object
              gpus:
                description: Optionally defines any GPU devices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      type: string
                    name:
                      description: Name of the GPU device as exposed by a device plugin
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                    virtualGPUOptions:
                      properties:
                        display:
                          properties:
                            enabled:
                              description: |-
                                Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest.
                                Defaults to true.
                              type: boolean
                            ramFB:
                              description: |-
                                Enables a boot framebuffer, until the guest OS loads a real GPU driver
                                Defaults to true.
                              properties:
                                enabled:
                                  description: |-
                                    Enabled determines if the feature should be enabled or disabled on the guest.
                                    Defaults to true.
                                  type: boolean
                              type: object
                          type: object
                      type: object
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              hostDevices:
                description: Optionally defines any HostDevices associated with the
                  instancetype.
                items:
                  properties:
                    deviceName:
                      description: DeviceName is the resource name of the host device
                        exposed by a device plugin
                      type: string
                    name:
                      type: string
                    tag:
                      description: If specified, the virtual network interface address
                        and its tag will be provided to the guest via config drive
                      type: string
                  required:
                  - deviceName
                  - name
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              ioThreadsPolicy:
                description: Optionally defines the IOThreadsPolicy to be used by
                  the instancetype.
                type: string
              launchSecurity:
                description: Optionally defines the LaunchSecurity to be used by the
                  instancetype.
                properties:
                  sev:
                    description: AMD Secure Encrypted Virtualization (SEV).
                    properties:
                      attestation:
                        description: If specified, run the attestation process for
                          a vmi.
                        type: object
                      dhCert:
                        description: Base64 encoded guest owner's Diffie-Hellman key.
                        type: string
                      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.
                        properties:
                          encryptedState:
                            description: |-
                              SEV-ES is required.
                              Defaults to false.
                            type: boolean
                        type: object
                      session:
                        description: Base64 encoded session blob.
                        type: string
                    type: object
                type: object
              memory:
                description: Required Memory related attributes of the instancetype.
                properties:
                  guest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: Required amount of memory which is visible inside
                      the guest OS.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  hugepages:
                    description: Optionally enables the use of hugepages for the VirtualMachineInstance
                      instead of regular memory.
                    properties:
                      pageSize:
                        description: PageSize specifies the hugepage size, for x86_64
                          architecture valid values are 1Gi and 2Mi.
                        type: string
                    type: object
                  maxGuest:
                    anyOf:
                    - type: integer
                    - type: string
                    description: |-
                      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.
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  overcommitPercent:
                    description: |-
                      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
                    maximum: 100
                    minimum: 0
                    type: integer
                required:
                - guest
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                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
              schedulerName:
                description: |-
                  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.
                type: string
            required:
            - cpu
            - memory
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: VirtualMachineClusterInstancetype
    listKind: VirtualMachineClusterInstancetypeList
    plural: virtualmachineclusterinstancetypes
    shortNames:
    - vmclusterinstancetype
    - vmclusterinstancetypes
    - vmcf
    - vmcfs
    singular: virtualmachineclusterinstancetype
  conditions:
  - lastTransitionTime: "2025-10-29T11:53:45Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-29T11:53:45Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1beta1
