---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    kubevirt.io/generation: "2"
    kubevirt.io/install-strategy-identifier: 2dc5f715e9a54162bc06e47f8e4f741a60504588
    kubevirt.io/install-strategy-registry: ""
    kubevirt.io/install-strategy-version: sha256:f3434d66f6d0d99c98a9c7428ed9a85c5c83bb9c1caeb1bc3617c37b2ad2ee81
  creationTimestamp: "2025-10-29T11:53:44Z"
  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.11
    kubevirt.io: ""
  managedFields:
  - 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:categories: {}
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: virt-operator
    operation: Update
    time: "2025-10-29T11:53:44Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:categories: {}
          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"
  name: virtualmachineinstancepresets.kubevirt.io
  resourceVersion: "2145376"
  uid: 33a161bc-aea7-47ac-9a5f-aba5ce1cb57e
spec:
  conversion:
    strategy: None
  group: kubevirt.io
  names:
    categories:
    - all
    kind: VirtualMachineInstancePreset
    listKind: VirtualMachineInstancePresetList
    plural: virtualmachineinstancepresets
    shortNames:
    - vmipreset
    - vmipresets
    singular: virtualmachineinstancepreset
  scope: Namespaced
  versions:
  - deprecated: true
    deprecationWarning: kubevirt.io/v1 VirtualMachineInstancePresets is now deprecated
      and will be removed in v2.
    name: v1
    schema:
      openAPIV3Schema:
        description: |-
          Deprecated for removal in v2, please use VirtualMachineInstanceType and VirtualMachinePreference instead.

          VirtualMachineInstancePreset defines a VMI spec.domain to be applied to all VMIs that match the provided label selector
          More info: https://kubevirt.io/user-guide/virtual_machines/presets/#overrides
        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: VirtualMachineInstance Spec contains the VirtualMachineInstance
              specification.
            properties:
              domain:
                description: Domain is the same object type as contained in VirtualMachineInstanceSpec
                properties:
                  chassis:
                    description: Chassis specifies the chassis info passed to the
                      domain.
                    properties:
                      asset:
                        type: string
                      manufacturer:
                        type: string
                      serial:
                        type: string
                      sku:
                        type: string
                      version:
                        type: string
                    type: object
                  clock:
                    description: Clock sets the clock and timers of the vmi.
                    properties:
                      timer:
                        description: Timer specifies whih timers are attached to the
                          vmi.
                        properties:
                          hpet:
                            description: HPET (High Precision Event Timer) - multiple
                              timers with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup", "merge", "discard".
                                type: string
                            type: object
                          hyperv:
                            description: Hyperv (Hypervclock) - lets guests read the
                              host’s wall clock time (paravirtualized). For windows
                              guests.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                            type: object
                          kvm:
                            description: "KVM \t(KVM clock) - lets guests read the
                              host’s wall clock time (paravirtualized). For linux
                              guests."
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                            type: object
                          pit:
                            description: PIT (Programmable Interval Timer) - a timer
                              with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup", "discard".
                                type: string
                            type: object
                          rtc:
                            description: RTC (Real Time Clock) - a continuously running
                              timer with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup".
                                type: string
                              track:
                                description: Track the guest or the wall clock.
                                type: string
                            type: object
                        type: object
                      timezone:
                        description: |-
                          Timezone sets the guest clock to the specified timezone.
                          Zone name follows the TZ environment variable format (e.g. 'America/New_York').
                        type: string
                      utc:
                        description: |-
                          UTC sets the guest clock to UTC on each boot. If an offset is specified,
                          guest changes to the clock will be kept during reboots and are not reset.
                        properties:
                          offsetSeconds:
                            description: |-
                              OffsetSeconds specifies an offset in seconds, relative to UTC. If set,
                              guest changes to the clock will be kept during reboots and not reset.
                            type: integer
                        type: object
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  cpu:
                    description: CPU allow specified the detailed CPU topology inside
                      the vmi.
                    properties:
                      cores:
                        description: |-
                          Cores specifies the number of cores inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                      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
                      features:
                        description: Features specifies the CPU features list inside
                          the VMI.
                        items:
                          description: CPUFeature allows specifying a CPU feature.
                          properties:
                            name:
                              description: Name of the CPU feature
                              type: string
                            policy:
                              description: |-
                                Policy is the CPU feature attribute which can have the following attributes:
                                force    - The virtual CPU will claim the feature is supported regardless of it being supported by host CPU.
                                require  - Guest creation will fail unless the feature is supported by the host CPU or the hypervisor is able to emulate it.
                                optional - The feature will be supported by virtual CPU if and only if it is supported by host CPU.
                                disable  - The feature will not be supported by virtual CPU.
                                forbid   - Guest creation will fail if the feature is supported by host CPU.
                                Defaults to require
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      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
                      sockets:
                        description: |-
                          Sockets specifies the number of sockets inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                      threads:
                        description: |-
                          Threads specifies the number of threads inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                    type: object
                  devices:
                    description: Devices allows adding disks, network interfaces,
                      and others
                    properties:
                      autoattachGraphicsDevice:
                        description: |-
                          Whether to attach the default graphics device or not.
                          VNC will not be available if set to false. Defaults to true.
                        type: boolean
                      autoattachInputDevice:
                        description: |-
                          Whether to attach an Input Device.
                          Defaults to false.
                        type: boolean
                      autoattachMemBalloon:
                        description: |-
                          Whether to attach the Memory balloon device with default period.
                          Period can be adjusted in virt-config.
                          Defaults to true.
                        type: boolean
                      autoattachPodInterface:
                        description: Whether to attach a pod network interface. Defaults
                          to true.
                        type: boolean
                      autoattachSerialConsole:
                        description: |-
                          Whether to attach the default virtio-serial console or not.
                          Serial console access will not be available if set to false. Defaults to true.
                        type: boolean
                      autoattachVSOCK:
                        description: |-
                          Whether to attach the VSOCK CID to the VM or not.
                          VSOCK access will be available if set to true. Defaults to false.
                        type: boolean
                      blockMultiQueue:
                        description: |-
                          Whether or not to enable virtio multi-queue for block devices.
                          Defaults to false.
                        type: boolean
                      clientPassthrough:
                        description: To configure and access client devices such as
                          redirecting USB
                        type: object
                      disableHotplug:
                        description: DisableHotplug disabled the ability to hotplug
                          disks.
                        type: boolean
                      disks:
                        description: Disks describes disks, cdroms and luns which
                          are connected to the vmi.
                        items:
                          properties:
                            blockSize:
                              description: If specified, the virtual disk will be
                                presented with the given block sizes.
                              properties:
                                custom:
                                  description: CustomBlockSize represents the desired
                                    logical and physical block size for a VM disk.
                                  properties:
                                    logical:
                                      type: integer
                                    physical:
                                      type: integer
                                  required:
                                  - logical
                                  - physical
                                  type: object
                                matchVolume:
                                  description: Represents if a feature is enabled
                                    or disabled.
                                  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
                            bootOrder:
                              description: |-
                                BootOrder is an integer value > 0, used to determine ordering of boot devices.
                                Lower values take precedence.
                                Each disk or interface that has a boot order must have a unique value.
                                Disks without a boot order are not tried if a disk with a boot order exists.
                              type: integer
                            cache:
                              description: |-
                                Cache specifies which kvm disk cache mode should be used.
                                Supported values are: CacheNone, CacheWriteThrough.
                              type: string
                            cdrom:
                              description: Attach a volume as a cdrom to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi.
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to true.
                                  type: boolean
                                tray:
                                  description: |-
                                    Tray indicates if the tray of the device is open or closed.
                                    Allowed values are "open" and "closed".
                                    Defaults to closed.
                                  type: string
                              type: object
                            dedicatedIOThread:
                              description: |-
                                dedicatedIOThread indicates this disk should have an exclusive IO Thread.
                                Enabling this implies useIOThreads = true.
                                Defaults to false.
                              type: boolean
                            disk:
                              description: Attach a volume as a disk to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi, usb.
                                  type: string
                                pciAddress:
                                  description: 'If specified, the virtual disk will
                                    be placed on the guests pci address with the specified
                                    PCI address. For example: 0000:81:01.10'
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to false.
                                  type: boolean
                              type: object
                            errorPolicy:
                              description: If specified, it can change the default
                                error policy (stop) for the disk
                              type: string
                            io:
                              description: |-
                                IO specifies which QEMU disk IO mode should be used.
                                Supported values are: native, default, threads.
                              type: string
                            lun:
                              description: Attach a volume as a LUN to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi.
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to false.
                                  type: boolean
                                reservation:
                                  description: Reservation indicates if the disk needs
                                    to support the persistent reservation for the
                                    SCSI disk
                                  type: boolean
                              type: object
                            name:
                              description: Name is the device name
                              type: string
                            serial:
                              description: Serial provides the ability to specify
                                a serial number for the disk device.
                              type: string
                            shareable:
                              description: If specified the disk is made sharable
                                and multiple write from different VMs are permitted
                              type: boolean
                            tag:
                              description: If specified, disk address and its tag
                                will be provided to the guest via config drive metadata
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 256
                        type: array
                      downwardMetrics:
                        description: DownwardMetrics creates a virtio serials for
                          exposing the downward metrics to the vmi.
                        type: object
                      filesystems:
                        description: Filesystems describes filesystem which is connected
                          to the vmi.
                        items:
                          properties:
                            name:
                              description: Name is the device name
                              type: string
                            virtiofs:
                              description: Virtiofs is supported
                              type: object
                          required:
                          - name
                          - virtiofs
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      gpus:
                        description: Whether to attach a GPU device to the vmi.
                        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: Whether to attach a host device to the vmi.
                        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
                      inputs:
                        description: Inputs describe input devices
                        items:
                          properties:
                            bus:
                              description: |-
                                Bus indicates the bus of input device to emulate.
                                Supported values: virtio, usb.
                              type: string
                            name:
                              description: Name is the device name
                              type: string
                            type:
                              description: |-
                                Type indicated the type of input device.
                                Supported values: tablet.
                              type: string
                          required:
                          - name
                          - type
                          type: object
                        type: array
                      interfaces:
                        description: Interfaces describe network interfaces which
                          are added to the vmi.
                        items:
                          properties:
                            acpiIndex:
                              description: |-
                                If specified, the ACPI index is used to provide network interface device naming, that is stable across changes
                                in PCI addresses assigned to the device.
                                This value is required to be unique across all devices and be between 1 and (16*1024-1).
                              type: integer
                            binding:
                              description: |-
                                Binding specifies the binding plugin that will be used to connect the interface to the guest.
                                It provides an alternative to InterfaceBindingMethod.
                                version: 1alphav1
                              properties:
                                name:
                                  description: |-
                                    Name references to the binding name as denined in the kubevirt CR.
                                    version: 1alphav1
                                  type: string
                              required:
                              - name
                              type: object
                            bootOrder:
                              description: |-
                                BootOrder is an integer value > 0, used to determine ordering of boot devices.
                                Lower values take precedence.
                                Each interface or disk that has a boot order must have a unique value.
                                Interfaces without a boot order are not tried.
                              type: integer
                            bridge:
                              description: InterfaceBridge connects to a given network
                                via a linux bridge.
                              type: object
                            dhcpOptions:
                              description: If specified the network interface will
                                pass additional DHCP options to the VMI
                              properties:
                                bootFileName:
                                  description: If specified will pass option 67 to
                                    interface's DHCP server
                                  type: string
                                ntpServers:
                                  description: If specified will pass the configured
                                    NTP server to the VM via DHCP option 042.
                                  items:
                                    type: string
                                  type: array
                                privateOptions:
                                  description: 'If specified will pass extra DHCP
                                    options for private use, range: 224-254'
                                  items:
                                    description: DHCPExtraOptions defines Extra DHCP
                                      options for a VM.
                                    properties:
                                      option:
                                        description: |-
                                          Option is an Integer value from 224-254
                                          Required.
                                        type: integer
                                      value:
                                        description: |-
                                          Value is a String value for the Option provided
                                          Required.
                                        type: string
                                    required:
                                    - option
                                    - value
                                    type: object
                                  type: array
                                tftpServerName:
                                  description: If specified will pass option 66 to
                                    interface's DHCP server
                                  type: string
                              type: object
                            macAddress:
                              description: 'Interface MAC address. For example: de:ad:00:00:be:af
                                or DE-AD-00-00-BE-AF.'
                              type: string
                            macvtap:
                              description: |-
                                DeprecatedMacvtap is an alias to the deprecated Macvtap interface,
                                please refer to Kubevirt user guide for alternatives.
                                Deprecated: Removed in v1.3
                              type: object
                            masquerade:
                              description: InterfaceMasquerade connects to a given
                                network using netfilter rules to nat the traffic.
                              type: object
                            model:
                              description: |-
                                Interface model.
                                One of: e1000, e1000e, igb, ne2k_pci, pcnet, rtl8139, virtio.
                                Defaults to virtio.
                              type: string
                            name:
                              description: |-
                                Logical name of the interface as well as a reference to the associated networks.
                                Must match the Name of a Network.
                              type: string
                            passt:
                              description: |-
                                DeprecatedPasst is an alias to the deprecated Passt interface,
                                please refer to Kubevirt user guide for alternatives.
                                Deprecated: Removed in v1.3
                              type: object
                            pciAddress:
                              description: 'If specified, the virtual network interface
                                will be placed on the guests pci address with the
                                specified PCI address. For example: 0000:81:01.10'
                              type: string
                            ports:
                              description: List of ports to be forwarded to the virtual
                                machine.
                              items:
                                description: |-
                                  Port represents a port to expose from the virtual machine.
                                  Default protocol TCP.
                                  The port field is mandatory
                                properties:
                                  name:
                                    description: |-
                                      If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                      named port in a pod must have a unique name. Name for the port that can be
                                      referred to by services.
                                    type: string
                                  port:
                                    description: |-
                                      Number of port to expose for the virtual machine.
                                      This must be a valid port number, 0 < x < 65536.
                                    format: int32
                                    type: integer
                                  protocol:
                                    description: |-
                                      Protocol for port. Must be UDP or TCP.
                                      Defaults to "TCP".
                                    type: string
                                required:
                                - port
                                type: object
                              type: array
                            slirp:
                              description: |-
                                DeprecatedSlirp is an alias to the deprecated Slirp interface
                                Deprecated: Removed in v1.3
                              type: object
                            sriov:
                              description: InterfaceSRIOV connects to a given network
                                by passing-through an SR-IOV PCI device via vfio.
                              type: object
                            state:
                              description: |-
                                State represents the requested operational state of the interface.
                                The supported values are:
                                'absent', expressing a request to remove the interface.
                                'down', expressing a request to set the link down.
                                'up', expressing a request to set the link up.
                                Empty value functions as 'up'.
                              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:
                          - name
                          type: object
                        maxItems: 256
                        type: array
                      logSerialConsole:
                        description: |-
                          Whether to log the auto-attached default serial console or not.
                          Serial console logs will be collect to a file and then streamed from a named 'guest-console-log'.
                          Not relevant if autoattachSerialConsole is disabled.
                          Defaults to cluster wide setting on VirtualMachineOptions.
                        type: boolean
                      networkInterfaceMultiqueue:
                        description: If specified, virtual network interfaces configured
                          with a virtio bus will also enable the vhost multiqueue
                          feature for network devices. The number of queues created
                          depends on additional factors of the VirtualMachineInstance,
                          like the number of guest CPUs.
                        type: boolean
                      rng:
                        description: Whether to have random number generator from
                          host
                        type: object
                      sound:
                        description: Whether to emulate a sound device.
                        properties:
                          model:
                            description: |-
                              We only support ich9 or ac97.
                              If SoundDevice is not set: No sound card is emulated.
                              If SoundDevice is set but Model is not: ich9
                            type: string
                          name:
                            description: User's defined name for this sound device
                            type: string
                        required:
                        - name
                        type: object
                      tpm:
                        description: Whether to emulate a TPM device.
                        properties:
                          enabled:
                            description: |-
                              Enabled allows a user to explictly disable the vTPM even when one is enabled by a preference referenced by the VirtualMachine
                              Defaults to True
                            type: boolean
                          persistent:
                            description: |-
                              Persistent indicates the state of the TPM device should be kept accross reboots
                              Defaults to false
                            type: boolean
                        type: object
                      useVirtioTransitional:
                        description: |-
                          Fall back to legacy virtio 0.9 support if virtio bus is selected on devices.
                          This is helpful for old machines like CentOS6 or RHEL6 which
                          do not understand virtio_non_transitional (virtio 1.0).
                        type: boolean
                      watchdog:
                        description: Watchdog describes a watchdog device which can
                          be added to the vmi.
                        properties:
                          diag288:
                            description: diag288 watchdog device (specific to s390x
                              architecture).
                            properties:
                              action:
                                description: |-
                                  The action to take. Valid values are poweroff, reset, shutdown.
                                  Defaults to reset.
                                type: string
                            type: object
                          i6300esb:
                            description: i6300esb watchdog device.
                            properties:
                              action:
                                description: |-
                                  The action to take. Valid values are poweroff, reset, shutdown.
                                  Defaults to reset.
                                type: string
                            type: object
                          name:
                            description: Name of the watchdog.
                            type: string
                        required:
                        - name
                        type: object
                    type: object
                  features:
                    description: Features like acpi, apic, hyperv, smm.
                    properties:
                      acpi:
                        description: |-
                          ACPI enables/disables ACPI inside the guest.
                          Defaults to enabled.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                        type: object
                      apic:
                        description: Defaults to the machine type setting.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                          endOfInterrupt:
                            description: |-
                              EndOfInterrupt enables the end of interrupt notification in the guest.
                              Defaults to false.
                            type: boolean
                        type: object
                      hyperv:
                        description: Defaults to the machine type setting.
                        properties:
                          evmcs:
                            description: |-
                              EVMCS Speeds up L2 vmexits, but disables other virtualization features. Requires vapic.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          frequencies:
                            description: |-
                              Frequencies improves the TSC clock source handling for Hyper-V on KVM.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          ipi:
                            description: |-
                              IPI improves performances in overcommited environments. Requires vpindex.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          reenlightenment:
                            description: |-
                              Reenlightenment enables the notifications on TSC frequency changes.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          relaxed:
                            description: |-
                              Relaxed instructs the guest OS to disable watchdog timeouts.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          reset:
                            description: |-
                              Reset enables Hyperv reboot/reset for the vmi. Requires synic.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          runtime:
                            description: |-
                              Runtime improves the time accounting to improve scheduling in the guest.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          spinlocks:
                            description: Spinlocks allows to configure the spinlock
                              retry attempts.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                              spinlocks:
                                description: |-
                                  Retries indicates the number of retries.
                                  Must be a value greater or equal 4096.
                                  Defaults to 4096.
                                format: int32
                                type: integer
                            type: object
                          synic:
                            description: |-
                              SyNIC enables the Synthetic Interrupt Controller.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          synictimer:
                            description: |-
                              SyNICTimer enables Synthetic Interrupt Controller Timers, reducing CPU load.
                              Defaults to the machine type setting.
                            properties:
                              direct:
                                description: Represents if a feature is enabled or
                                  disabled.
                                properties:
                                  enabled:
                                    description: |-
                                      Enabled determines if the feature should be enabled or disabled on the guest.
                                      Defaults to true.
                                    type: boolean
                                type: object
                              enabled:
                                type: boolean
                            type: object
                          tlbflush:
                            description: |-
                              TLBFlush improves performances in overcommited environments. Requires vpindex.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          vapic:
                            description: |-
                              VAPIC improves the paravirtualized handling of interrupts.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          vendorid:
                            description: |-
                              VendorID allows setting the hypervisor vendor id.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                              vendorid:
                                description: |-
                                  VendorID sets the hypervisor vendor id, visible to the vmi.
                                  String up to twelve characters.
                                type: string
                            type: object
                          vpindex:
                            description: |-
                              VPIndex enables the Virtual Processor Index to help windows identifying virtual processors.
                              Defaults to the machine type setting.
                            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
                      hypervPassthrough:
                        description: |-
                          This enables all supported hyperv flags automatically.
                          Bear in mind that if this enabled hyperV features cannot
                          be enabled explicitly. In addition, a Virtual Machine
                          using it will be non-migratable.
                        properties:
                          enabled:
                            type: boolean
                        type: object
                      kvm:
                        description: Configure how KVM presence is exposed to the
                          guest.
                        properties:
                          hidden:
                            description: |-
                              Hide the KVM hypervisor from standard MSR based discovery.
                              Defaults to false
                            type: boolean
                        type: object
                      pvspinlock:
                        description: |-
                          Notify the guest that the host supports paravirtual spinlocks.
                          For older kernels this feature should be explicitly disabled.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                        type: object
                      smm:
                        description: |-
                          SMM enables/disables System Management Mode.
                          TSEG not yet implemented.
                        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
                  firmware:
                    description: Firmware.
                    properties:
                      acpi:
                        description: Information that can be set in the ACPI table
                        properties:
                          slicNameRef:
                            description: |-
                              SlicNameRef should match the volume name of a secret object. The data in the secret should
                              be a binary blob that follows the ACPI SLIC standard, see:
                              https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)
                            type: string
                        type: object
                      bootloader:
                        description: Settings to control the bootloader that is used.
                        properties:
                          bios:
                            description: If set (default), BIOS will be used.
                            properties:
                              useSerial:
                                description: If set, the BIOS output will be transmitted
                                  over serial
                                type: boolean
                            type: object
                          efi:
                            description: If set, EFI will be used instead of BIOS.
                            properties:
                              persistent:
                                description: |-
                                  If set to true, Persistent will persist the EFI NVRAM across reboots.
                                  Defaults to false
                                type: boolean
                              secureBoot:
                                description: |-
                                  If set, SecureBoot will be enabled and the OVMF roms will be swapped for
                                  SecureBoot-enabled ones.
                                  Requires SMM to be enabled.
                                  Defaults to true
                                type: boolean
                            type: object
                        type: object
                      kernelBoot:
                        description: Settings to set the kernel for booting.
                        properties:
                          container:
                            description: Container defines the container that containes
                              kernel artifacts
                            properties:
                              image:
                                description: Image that contains initrd / kernel files.
                                type: string
                              imagePullPolicy:
                                description: |-
                                  Image pull policy.
                                  One of Always, Never, IfNotPresent.
                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                                  Cannot be updated.
                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
                                type: string
                              imagePullSecret:
                                description: ImagePullSecret is the name of the Docker
                                  registry secret required to pull the image. The
                                  secret must already exist.
                                type: string
                              initrdPath:
                                description: the fully-qualified path to the ramdisk
                                  image in the host OS
                                type: string
                              kernelPath:
                                description: The fully-qualified path to the kernel
                                  image in the host OS
                                type: string
                            required:
                            - image
                            type: object
                          kernelArgs:
                            description: Arguments to be passed to the kernel at boot
                              time
                            type: string
                        type: object
                      serial:
                        description: The system-serial-number in SMBIOS
                        type: string
                      uuid:
                        description: |-
                          UUID reported by the vmi bios.
                          Defaults to a random generated uid.
                        type: string
                    type: object
                  ioThreads:
                    description: IOThreads specifies the IOThreads options.
                    properties:
                      supplementalPoolThreadCount:
                        description: SupplementalPoolThreadCount specifies how many
                          iothreads are allocated for the supplementalPool policy.
                        format: int32
                        type: integer
                    type: object
                  ioThreadsPolicy:
                    description: |-
                      Controls whether or not disks will share IOThreads.
                      Omitting IOThreadsPolicy disables use of IOThreads.
                      One of: shared, auto, supplementalPool
                    type: string
                  launchSecurity:
                    description: Launch Security setting of the vmi.
                    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
                  machine:
                    description: Machine type.
                    properties:
                      type:
                        description: QEMU machine type is the actual chipset of the
                          VirtualMachineInstance.
                        type: string
                    type: object
                  memory:
                    description: Memory allow specifying the VMI memory features.
                    properties:
                      guest:
                        anyOf:
                        - type: integer
                        - type: string
                        description: |-
                          Guest allows to specifying the amount of memory which is visible inside the Guest OS.
                          The Guest must lie between Requests and Limits from the resources section.
                          Defaults to the requested memory in the resources section if not specified.
                        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: Hugepages allow to use 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
                    type: object
                  resources:
                    description: Resources describes the Compute Resources required
                      by this vmi.
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: |-
                          Limits describes the maximum amount of compute resources allowed.
                          Valid resource keys are "memory" and "cpu".
                        type: object
                      overcommitGuestOverhead:
                        description: |-
                          Don't ask the scheduler to take the guest-management overhead into account. Instead
                          put the overhead only into the container's memory limit. This can lead to crashes if
                          all memory is in use on a node. Defaults to false.
                        type: boolean
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: |-
                          Requests is a description of the initial vmi resources.
                          Valid resource keys are "memory" and "cpu".
                        type: object
                    type: object
                required:
                - devices
                type: object
              selector:
                description: |-
                  Selector is a label query over a set of VMIs.
                  Required.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: |-
                        A label selector requirement is a selector that contains values, a key, and an operator that
                        relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: |-
                            operator represents a key's relationship to a set of values.
                            Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          description: |-
                            values is an array of string values. If the operator is In or NotIn,
                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                            the values array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: |-
                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                    type: object
                type: object
                x-kubernetes-map-type: atomic
            required:
            - selector
            type: object
        type: object
    served: true
    storage: false
  - deprecated: true
    deprecationWarning: kubevirt.io/v1alpha3 VirtualMachineInstancePresets is now
      deprecated and will be removed in v2.
    name: v1alpha3
    schema:
      openAPIV3Schema:
        description: |-
          Deprecated for removal in v2, please use VirtualMachineInstanceType and VirtualMachinePreference instead.

          VirtualMachineInstancePreset defines a VMI spec.domain to be applied to all VMIs that match the provided label selector
          More info: https://kubevirt.io/user-guide/virtual_machines/presets/#overrides
        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: VirtualMachineInstance Spec contains the VirtualMachineInstance
              specification.
            properties:
              domain:
                description: Domain is the same object type as contained in VirtualMachineInstanceSpec
                properties:
                  chassis:
                    description: Chassis specifies the chassis info passed to the
                      domain.
                    properties:
                      asset:
                        type: string
                      manufacturer:
                        type: string
                      serial:
                        type: string
                      sku:
                        type: string
                      version:
                        type: string
                    type: object
                  clock:
                    description: Clock sets the clock and timers of the vmi.
                    properties:
                      timer:
                        description: Timer specifies whih timers are attached to the
                          vmi.
                        properties:
                          hpet:
                            description: HPET (High Precision Event Timer) - multiple
                              timers with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup", "merge", "discard".
                                type: string
                            type: object
                          hyperv:
                            description: Hyperv (Hypervclock) - lets guests read the
                              host’s wall clock time (paravirtualized). For windows
                              guests.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                            type: object
                          kvm:
                            description: "KVM \t(KVM clock) - lets guests read the
                              host’s wall clock time (paravirtualized). For linux
                              guests."
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                            type: object
                          pit:
                            description: PIT (Programmable Interval Timer) - a timer
                              with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup", "discard".
                                type: string
                            type: object
                          rtc:
                            description: RTC (Real Time Clock) - a continuously running
                              timer with periodic interrupts.
                            properties:
                              present:
                                description: |-
                                  Enabled set to false makes sure that the machine type or a preset can't add the timer.
                                  Defaults to true.
                                type: boolean
                              tickPolicy:
                                description: |-
                                  TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest.
                                  One of "delay", "catchup".
                                type: string
                              track:
                                description: Track the guest or the wall clock.
                                type: string
                            type: object
                        type: object
                      timezone:
                        description: |-
                          Timezone sets the guest clock to the specified timezone.
                          Zone name follows the TZ environment variable format (e.g. 'America/New_York').
                        type: string
                      utc:
                        description: |-
                          UTC sets the guest clock to UTC on each boot. If an offset is specified,
                          guest changes to the clock will be kept during reboots and are not reset.
                        properties:
                          offsetSeconds:
                            description: |-
                              OffsetSeconds specifies an offset in seconds, relative to UTC. If set,
                              guest changes to the clock will be kept during reboots and not reset.
                            type: integer
                        type: object
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  cpu:
                    description: CPU allow specified the detailed CPU topology inside
                      the vmi.
                    properties:
                      cores:
                        description: |-
                          Cores specifies the number of cores inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                      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
                      features:
                        description: Features specifies the CPU features list inside
                          the VMI.
                        items:
                          description: CPUFeature allows specifying a CPU feature.
                          properties:
                            name:
                              description: Name of the CPU feature
                              type: string
                            policy:
                              description: |-
                                Policy is the CPU feature attribute which can have the following attributes:
                                force    - The virtual CPU will claim the feature is supported regardless of it being supported by host CPU.
                                require  - Guest creation will fail unless the feature is supported by the host CPU or the hypervisor is able to emulate it.
                                optional - The feature will be supported by virtual CPU if and only if it is supported by host CPU.
                                disable  - The feature will not be supported by virtual CPU.
                                forbid   - Guest creation will fail if the feature is supported by host CPU.
                                Defaults to require
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      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
                      sockets:
                        description: |-
                          Sockets specifies the number of sockets inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                      threads:
                        description: |-
                          Threads specifies the number of threads inside the vmi.
                          Must be a value greater or equal 1.
                        format: int32
                        type: integer
                    type: object
                  devices:
                    description: Devices allows adding disks, network interfaces,
                      and others
                    properties:
                      autoattachGraphicsDevice:
                        description: |-
                          Whether to attach the default graphics device or not.
                          VNC will not be available if set to false. Defaults to true.
                        type: boolean
                      autoattachInputDevice:
                        description: |-
                          Whether to attach an Input Device.
                          Defaults to false.
                        type: boolean
                      autoattachMemBalloon:
                        description: |-
                          Whether to attach the Memory balloon device with default period.
                          Period can be adjusted in virt-config.
                          Defaults to true.
                        type: boolean
                      autoattachPodInterface:
                        description: Whether to attach a pod network interface. Defaults
                          to true.
                        type: boolean
                      autoattachSerialConsole:
                        description: |-
                          Whether to attach the default virtio-serial console or not.
                          Serial console access will not be available if set to false. Defaults to true.
                        type: boolean
                      autoattachVSOCK:
                        description: |-
                          Whether to attach the VSOCK CID to the VM or not.
                          VSOCK access will be available if set to true. Defaults to false.
                        type: boolean
                      blockMultiQueue:
                        description: |-
                          Whether or not to enable virtio multi-queue for block devices.
                          Defaults to false.
                        type: boolean
                      clientPassthrough:
                        description: To configure and access client devices such as
                          redirecting USB
                        type: object
                      disableHotplug:
                        description: DisableHotplug disabled the ability to hotplug
                          disks.
                        type: boolean
                      disks:
                        description: Disks describes disks, cdroms and luns which
                          are connected to the vmi.
                        items:
                          properties:
                            blockSize:
                              description: If specified, the virtual disk will be
                                presented with the given block sizes.
                              properties:
                                custom:
                                  description: CustomBlockSize represents the desired
                                    logical and physical block size for a VM disk.
                                  properties:
                                    logical:
                                      type: integer
                                    physical:
                                      type: integer
                                  required:
                                  - logical
                                  - physical
                                  type: object
                                matchVolume:
                                  description: Represents if a feature is enabled
                                    or disabled.
                                  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
                            bootOrder:
                              description: |-
                                BootOrder is an integer value > 0, used to determine ordering of boot devices.
                                Lower values take precedence.
                                Each disk or interface that has a boot order must have a unique value.
                                Disks without a boot order are not tried if a disk with a boot order exists.
                              type: integer
                            cache:
                              description: |-
                                Cache specifies which kvm disk cache mode should be used.
                                Supported values are: CacheNone, CacheWriteThrough.
                              type: string
                            cdrom:
                              description: Attach a volume as a cdrom to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi.
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to true.
                                  type: boolean
                                tray:
                                  description: |-
                                    Tray indicates if the tray of the device is open or closed.
                                    Allowed values are "open" and "closed".
                                    Defaults to closed.
                                  type: string
                              type: object
                            dedicatedIOThread:
                              description: |-
                                dedicatedIOThread indicates this disk should have an exclusive IO Thread.
                                Enabling this implies useIOThreads = true.
                                Defaults to false.
                              type: boolean
                            disk:
                              description: Attach a volume as a disk to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi, usb.
                                  type: string
                                pciAddress:
                                  description: 'If specified, the virtual disk will
                                    be placed on the guests pci address with the specified
                                    PCI address. For example: 0000:81:01.10'
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to false.
                                  type: boolean
                              type: object
                            errorPolicy:
                              description: If specified, it can change the default
                                error policy (stop) for the disk
                              type: string
                            io:
                              description: |-
                                IO specifies which QEMU disk IO mode should be used.
                                Supported values are: native, default, threads.
                              type: string
                            lun:
                              description: Attach a volume as a LUN to the vmi.
                              properties:
                                bus:
                                  description: |-
                                    Bus indicates the type of disk device to emulate.
                                    supported values: virtio, sata, scsi.
                                  type: string
                                readonly:
                                  description: |-
                                    ReadOnly.
                                    Defaults to false.
                                  type: boolean
                                reservation:
                                  description: Reservation indicates if the disk needs
                                    to support the persistent reservation for the
                                    SCSI disk
                                  type: boolean
                              type: object
                            name:
                              description: Name is the device name
                              type: string
                            serial:
                              description: Serial provides the ability to specify
                                a serial number for the disk device.
                              type: string
                            shareable:
                              description: If specified the disk is made sharable
                                and multiple write from different VMs are permitted
                              type: boolean
                            tag:
                              description: If specified, disk address and its tag
                                will be provided to the guest via config drive metadata
                              type: string
                          required:
                          - name
                          type: object
                        maxItems: 256
                        type: array
                      downwardMetrics:
                        description: DownwardMetrics creates a virtio serials for
                          exposing the downward metrics to the vmi.
                        type: object
                      filesystems:
                        description: Filesystems describes filesystem which is connected
                          to the vmi.
                        items:
                          properties:
                            name:
                              description: Name is the device name
                              type: string
                            virtiofs:
                              description: Virtiofs is supported
                              type: object
                          required:
                          - name
                          - virtiofs
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      gpus:
                        description: Whether to attach a GPU device to the vmi.
                        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: Whether to attach a host device to the vmi.
                        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
                      inputs:
                        description: Inputs describe input devices
                        items:
                          properties:
                            bus:
                              description: |-
                                Bus indicates the bus of input device to emulate.
                                Supported values: virtio, usb.
                              type: string
                            name:
                              description: Name is the device name
                              type: string
                            type:
                              description: |-
                                Type indicated the type of input device.
                                Supported values: tablet.
                              type: string
                          required:
                          - name
                          - type
                          type: object
                        type: array
                      interfaces:
                        description: Interfaces describe network interfaces which
                          are added to the vmi.
                        items:
                          properties:
                            acpiIndex:
                              description: |-
                                If specified, the ACPI index is used to provide network interface device naming, that is stable across changes
                                in PCI addresses assigned to the device.
                                This value is required to be unique across all devices and be between 1 and (16*1024-1).
                              type: integer
                            binding:
                              description: |-
                                Binding specifies the binding plugin that will be used to connect the interface to the guest.
                                It provides an alternative to InterfaceBindingMethod.
                                version: 1alphav1
                              properties:
                                name:
                                  description: |-
                                    Name references to the binding name as denined in the kubevirt CR.
                                    version: 1alphav1
                                  type: string
                              required:
                              - name
                              type: object
                            bootOrder:
                              description: |-
                                BootOrder is an integer value > 0, used to determine ordering of boot devices.
                                Lower values take precedence.
                                Each interface or disk that has a boot order must have a unique value.
                                Interfaces without a boot order are not tried.
                              type: integer
                            bridge:
                              description: InterfaceBridge connects to a given network
                                via a linux bridge.
                              type: object
                            dhcpOptions:
                              description: If specified the network interface will
                                pass additional DHCP options to the VMI
                              properties:
                                bootFileName:
                                  description: If specified will pass option 67 to
                                    interface's DHCP server
                                  type: string
                                ntpServers:
                                  description: If specified will pass the configured
                                    NTP server to the VM via DHCP option 042.
                                  items:
                                    type: string
                                  type: array
                                privateOptions:
                                  description: 'If specified will pass extra DHCP
                                    options for private use, range: 224-254'
                                  items:
                                    description: DHCPExtraOptions defines Extra DHCP
                                      options for a VM.
                                    properties:
                                      option:
                                        description: |-
                                          Option is an Integer value from 224-254
                                          Required.
                                        type: integer
                                      value:
                                        description: |-
                                          Value is a String value for the Option provided
                                          Required.
                                        type: string
                                    required:
                                    - option
                                    - value
                                    type: object
                                  type: array
                                tftpServerName:
                                  description: If specified will pass option 66 to
                                    interface's DHCP server
                                  type: string
                              type: object
                            macAddress:
                              description: 'Interface MAC address. For example: de:ad:00:00:be:af
                                or DE-AD-00-00-BE-AF.'
                              type: string
                            macvtap:
                              description: |-
                                DeprecatedMacvtap is an alias to the deprecated Macvtap interface,
                                please refer to Kubevirt user guide for alternatives.
                                Deprecated: Removed in v1.3
                              type: object
                            masquerade:
                              description: InterfaceMasquerade connects to a given
                                network using netfilter rules to nat the traffic.
                              type: object
                            model:
                              description: |-
                                Interface model.
                                One of: e1000, e1000e, igb, ne2k_pci, pcnet, rtl8139, virtio.
                                Defaults to virtio.
                              type: string
                            name:
                              description: |-
                                Logical name of the interface as well as a reference to the associated networks.
                                Must match the Name of a Network.
                              type: string
                            passt:
                              description: |-
                                DeprecatedPasst is an alias to the deprecated Passt interface,
                                please refer to Kubevirt user guide for alternatives.
                                Deprecated: Removed in v1.3
                              type: object
                            pciAddress:
                              description: 'If specified, the virtual network interface
                                will be placed on the guests pci address with the
                                specified PCI address. For example: 0000:81:01.10'
                              type: string
                            ports:
                              description: List of ports to be forwarded to the virtual
                                machine.
                              items:
                                description: |-
                                  Port represents a port to expose from the virtual machine.
                                  Default protocol TCP.
                                  The port field is mandatory
                                properties:
                                  name:
                                    description: |-
                                      If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
                                      named port in a pod must have a unique name. Name for the port that can be
                                      referred to by services.
                                    type: string
                                  port:
                                    description: |-
                                      Number of port to expose for the virtual machine.
                                      This must be a valid port number, 0 < x < 65536.
                                    format: int32
                                    type: integer
                                  protocol:
                                    description: |-
                                      Protocol for port. Must be UDP or TCP.
                                      Defaults to "TCP".
                                    type: string
                                required:
                                - port
                                type: object
                              type: array
                            slirp:
                              description: |-
                                DeprecatedSlirp is an alias to the deprecated Slirp interface
                                Deprecated: Removed in v1.3
                              type: object
                            sriov:
                              description: InterfaceSRIOV connects to a given network
                                by passing-through an SR-IOV PCI device via vfio.
                              type: object
                            state:
                              description: |-
                                State represents the requested operational state of the interface.
                                The supported values are:
                                'absent', expressing a request to remove the interface.
                                'down', expressing a request to set the link down.
                                'up', expressing a request to set the link up.
                                Empty value functions as 'up'.
                              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:
                          - name
                          type: object
                        maxItems: 256
                        type: array
                      logSerialConsole:
                        description: |-
                          Whether to log the auto-attached default serial console or not.
                          Serial console logs will be collect to a file and then streamed from a named 'guest-console-log'.
                          Not relevant if autoattachSerialConsole is disabled.
                          Defaults to cluster wide setting on VirtualMachineOptions.
                        type: boolean
                      networkInterfaceMultiqueue:
                        description: If specified, virtual network interfaces configured
                          with a virtio bus will also enable the vhost multiqueue
                          feature for network devices. The number of queues created
                          depends on additional factors of the VirtualMachineInstance,
                          like the number of guest CPUs.
                        type: boolean
                      rng:
                        description: Whether to have random number generator from
                          host
                        type: object
                      sound:
                        description: Whether to emulate a sound device.
                        properties:
                          model:
                            description: |-
                              We only support ich9 or ac97.
                              If SoundDevice is not set: No sound card is emulated.
                              If SoundDevice is set but Model is not: ich9
                            type: string
                          name:
                            description: User's defined name for this sound device
                            type: string
                        required:
                        - name
                        type: object
                      tpm:
                        description: Whether to emulate a TPM device.
                        properties:
                          enabled:
                            description: |-
                              Enabled allows a user to explictly disable the vTPM even when one is enabled by a preference referenced by the VirtualMachine
                              Defaults to True
                            type: boolean
                          persistent:
                            description: |-
                              Persistent indicates the state of the TPM device should be kept accross reboots
                              Defaults to false
                            type: boolean
                        type: object
                      useVirtioTransitional:
                        description: |-
                          Fall back to legacy virtio 0.9 support if virtio bus is selected on devices.
                          This is helpful for old machines like CentOS6 or RHEL6 which
                          do not understand virtio_non_transitional (virtio 1.0).
                        type: boolean
                      watchdog:
                        description: Watchdog describes a watchdog device which can
                          be added to the vmi.
                        properties:
                          diag288:
                            description: diag288 watchdog device (specific to s390x
                              architecture).
                            properties:
                              action:
                                description: |-
                                  The action to take. Valid values are poweroff, reset, shutdown.
                                  Defaults to reset.
                                type: string
                            type: object
                          i6300esb:
                            description: i6300esb watchdog device.
                            properties:
                              action:
                                description: |-
                                  The action to take. Valid values are poweroff, reset, shutdown.
                                  Defaults to reset.
                                type: string
                            type: object
                          name:
                            description: Name of the watchdog.
                            type: string
                        required:
                        - name
                        type: object
                    type: object
                  features:
                    description: Features like acpi, apic, hyperv, smm.
                    properties:
                      acpi:
                        description: |-
                          ACPI enables/disables ACPI inside the guest.
                          Defaults to enabled.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                        type: object
                      apic:
                        description: Defaults to the machine type setting.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                          endOfInterrupt:
                            description: |-
                              EndOfInterrupt enables the end of interrupt notification in the guest.
                              Defaults to false.
                            type: boolean
                        type: object
                      hyperv:
                        description: Defaults to the machine type setting.
                        properties:
                          evmcs:
                            description: |-
                              EVMCS Speeds up L2 vmexits, but disables other virtualization features. Requires vapic.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          frequencies:
                            description: |-
                              Frequencies improves the TSC clock source handling for Hyper-V on KVM.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          ipi:
                            description: |-
                              IPI improves performances in overcommited environments. Requires vpindex.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          reenlightenment:
                            description: |-
                              Reenlightenment enables the notifications on TSC frequency changes.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          relaxed:
                            description: |-
                              Relaxed instructs the guest OS to disable watchdog timeouts.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          reset:
                            description: |-
                              Reset enables Hyperv reboot/reset for the vmi. Requires synic.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          runtime:
                            description: |-
                              Runtime improves the time accounting to improve scheduling in the guest.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          spinlocks:
                            description: Spinlocks allows to configure the spinlock
                              retry attempts.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                              spinlocks:
                                description: |-
                                  Retries indicates the number of retries.
                                  Must be a value greater or equal 4096.
                                  Defaults to 4096.
                                format: int32
                                type: integer
                            type: object
                          synic:
                            description: |-
                              SyNIC enables the Synthetic Interrupt Controller.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          synictimer:
                            description: |-
                              SyNICTimer enables Synthetic Interrupt Controller Timers, reducing CPU load.
                              Defaults to the machine type setting.
                            properties:
                              direct:
                                description: Represents if a feature is enabled or
                                  disabled.
                                properties:
                                  enabled:
                                    description: |-
                                      Enabled determines if the feature should be enabled or disabled on the guest.
                                      Defaults to true.
                                    type: boolean
                                type: object
                              enabled:
                                type: boolean
                            type: object
                          tlbflush:
                            description: |-
                              TLBFlush improves performances in overcommited environments. Requires vpindex.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          vapic:
                            description: |-
                              VAPIC improves the paravirtualized handling of interrupts.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                            type: object
                          vendorid:
                            description: |-
                              VendorID allows setting the hypervisor vendor id.
                              Defaults to the machine type setting.
                            properties:
                              enabled:
                                description: |-
                                  Enabled determines if the feature should be enabled or disabled on the guest.
                                  Defaults to true.
                                type: boolean
                              vendorid:
                                description: |-
                                  VendorID sets the hypervisor vendor id, visible to the vmi.
                                  String up to twelve characters.
                                type: string
                            type: object
                          vpindex:
                            description: |-
                              VPIndex enables the Virtual Processor Index to help windows identifying virtual processors.
                              Defaults to the machine type setting.
                            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
                      hypervPassthrough:
                        description: |-
                          This enables all supported hyperv flags automatically.
                          Bear in mind that if this enabled hyperV features cannot
                          be enabled explicitly. In addition, a Virtual Machine
                          using it will be non-migratable.
                        properties:
                          enabled:
                            type: boolean
                        type: object
                      kvm:
                        description: Configure how KVM presence is exposed to the
                          guest.
                        properties:
                          hidden:
                            description: |-
                              Hide the KVM hypervisor from standard MSR based discovery.
                              Defaults to false
                            type: boolean
                        type: object
                      pvspinlock:
                        description: |-
                          Notify the guest that the host supports paravirtual spinlocks.
                          For older kernels this feature should be explicitly disabled.
                        properties:
                          enabled:
                            description: |-
                              Enabled determines if the feature should be enabled or disabled on the guest.
                              Defaults to true.
                            type: boolean
                        type: object
                      smm:
                        description: |-
                          SMM enables/disables System Management Mode.
                          TSEG not yet implemented.
                        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
                  firmware:
                    description: Firmware.
                    properties:
                      acpi:
                        description: Information that can be set in the ACPI table
                        properties:
                          slicNameRef:
                            description: |-
                              SlicNameRef should match the volume name of a secret object. The data in the secret should
                              be a binary blob that follows the ACPI SLIC standard, see:
                              https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)
                            type: string
                        type: object
                      bootloader:
                        description: Settings to control the bootloader that is used.
                        properties:
                          bios:
                            description: If set (default), BIOS will be used.
                            properties:
                              useSerial:
                                description: If set, the BIOS output will be transmitted
                                  over serial
                                type: boolean
                            type: object
                          efi:
                            description: If set, EFI will be used instead of BIOS.
                            properties:
                              persistent:
                                description: |-
                                  If set to true, Persistent will persist the EFI NVRAM across reboots.
                                  Defaults to false
                                type: boolean
                              secureBoot:
                                description: |-
                                  If set, SecureBoot will be enabled and the OVMF roms will be swapped for
                                  SecureBoot-enabled ones.
                                  Requires SMM to be enabled.
                                  Defaults to true
                                type: boolean
                            type: object
                        type: object
                      kernelBoot:
                        description: Settings to set the kernel for booting.
                        properties:
                          container:
                            description: Container defines the container that containes
                              kernel artifacts
                            properties:
                              image:
                                description: Image that contains initrd / kernel files.
                                type: string
                              imagePullPolicy:
                                description: |-
                                  Image pull policy.
                                  One of Always, Never, IfNotPresent.
                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
                                  Cannot be updated.
                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
                                type: string
                              imagePullSecret:
                                description: ImagePullSecret is the name of the Docker
                                  registry secret required to pull the image. The
                                  secret must already exist.
                                type: string
                              initrdPath:
                                description: the fully-qualified path to the ramdisk
                                  image in the host OS
                                type: string
                              kernelPath:
                                description: The fully-qualified path to the kernel
                                  image in the host OS
                                type: string
                            required:
                            - image
                            type: object
                          kernelArgs:
                            description: Arguments to be passed to the kernel at boot
                              time
                            type: string
                        type: object
                      serial:
                        description: The system-serial-number in SMBIOS
                        type: string
                      uuid:
                        description: |-
                          UUID reported by the vmi bios.
                          Defaults to a random generated uid.
                        type: string
                    type: object
                  ioThreads:
                    description: IOThreads specifies the IOThreads options.
                    properties:
                      supplementalPoolThreadCount:
                        description: SupplementalPoolThreadCount specifies how many
                          iothreads are allocated for the supplementalPool policy.
                        format: int32
                        type: integer
                    type: object
                  ioThreadsPolicy:
                    description: |-
                      Controls whether or not disks will share IOThreads.
                      Omitting IOThreadsPolicy disables use of IOThreads.
                      One of: shared, auto, supplementalPool
                    type: string
                  launchSecurity:
                    description: Launch Security setting of the vmi.
                    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
                  machine:
                    description: Machine type.
                    properties:
                      type:
                        description: QEMU machine type is the actual chipset of the
                          VirtualMachineInstance.
                        type: string
                    type: object
                  memory:
                    description: Memory allow specifying the VMI memory features.
                    properties:
                      guest:
                        anyOf:
                        - type: integer
                        - type: string
                        description: |-
                          Guest allows to specifying the amount of memory which is visible inside the Guest OS.
                          The Guest must lie between Requests and Limits from the resources section.
                          Defaults to the requested memory in the resources section if not specified.
                        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: Hugepages allow to use 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
                    type: object
                  resources:
                    description: Resources describes the Compute Resources required
                      by this vmi.
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: |-
                          Limits describes the maximum amount of compute resources allowed.
                          Valid resource keys are "memory" and "cpu".
                        type: object
                      overcommitGuestOverhead:
                        description: |-
                          Don't ask the scheduler to take the guest-management overhead into account. Instead
                          put the overhead only into the container's memory limit. This can lead to crashes if
                          all memory is in use on a node. Defaults to false.
                        type: boolean
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: |-
                          Requests is a description of the initial vmi resources.
                          Valid resource keys are "memory" and "cpu".
                        type: object
                    type: object
                required:
                - devices
                type: object
              selector:
                description: |-
                  Selector is a label query over a set of VMIs.
                  Required.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: |-
                        A label selector requirement is a selector that contains values, a key, and an operator that
                        relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: |-
                            operator represents a key's relationship to a set of values.
                            Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          description: |-
                            values is an array of string values. If the operator is In or NotIn,
                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                            the values array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: |-
                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                    type: object
                type: object
                x-kubernetes-map-type: atomic
            required:
            - selector
            type: object
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    categories:
    - all
    kind: VirtualMachineInstancePreset
    listKind: VirtualMachineInstancePresetList
    plural: virtualmachineinstancepresets
    shortNames:
    - vmipreset
    - vmipresets
    singular: virtualmachineinstancepreset
  conditions:
  - lastTransitionTime: "2025-10-29T11:53:44Z"
    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:
  - v1alpha3
