The module lifecycle stageGeneral Availability
The module has requirements for installation

The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.

ClusterVirtualImage

Scope: Cluster
Version: v1alpha2

Describes a virtual disk image that can be used as a data source for new VirtualDisks or an installation image (iso) to be mounted in VirtualMachines directly. This resource type is available for all namespaces in the cluster.

This resource cannot be modified once it has been created.

With this resource in the cluster, a container image is created and stored in a dedicated Deckhouse Virtualization Container Registry (DVCR).

Note: The metadata.name field must comply with Kubernetes object naming conventions and must not exceed 48 characters.

  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.dataSource
      object

      Required value

      Origin of the image.
      • spec.dataSource.containerImage
        object
        Use an image stored in external container registry. Only registries with enabled TLS protocol are supported. To provide a custom Certificate Authority (CA) chain, use the caBundle field.
        • spec.dataSource.containerImage.caBundle
          string
          CA chain in Base64 format to verify the container registry.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          string

          Required value

          Path to the image in the container registry.

          Pattern: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Example:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          object
          • spec.dataSource.containerImage.imagePullSecret.name
            string
            Name of the secret keeping container registry credentials.
          • spec.dataSource.containerImage.imagePullSecret.namespace
            string
            Namespace where imagePullSecret is located.
      • spec.dataSource.http
        object

        Fill the image with data from an external URL. The following schemas are supported:

        • HTTP
        • HTTPS

        For HTTPS schema, there is an option to skip the TLS verification.

        • spec.dataSource.http.caBundle
          string
          CA chain in Base64 format to verify the URL.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          object
          Checksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
          • spec.dataSource.http.checksum.md5
            string

            Length: 32..32

            Pattern: ^[0-9a-fA-F]{32}$

            Example:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            string

            Length: 64..64

            Pattern: ^[0-9a-fA-F]{64}$

            Example:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          string

          Required value

          URL of the file for creating an image. The following file formats are supported:

          • qcow2
          • vmdk
          • vdi
          • iso
          • raw The file can be compressed into an archive in one of the following formats:
          • gz
          • xz

          Pattern: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Example:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        object
        Use an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
        • spec.dataSource.objectRef.kind
          string

          Required value

          Kind of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.

          Allowed values: ClusterVirtualImage, VirtualImage, VirtualDisk, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          string

          Required value

          Name of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.

          Minimal length: 1

        • spec.dataSource.objectRef.namespace
          string
          Namespace where the VirtualImage, VirtualDisk or VirtualDiskSnapshot resource is located.
      • spec.dataSource.type
        string

        Required value

        The following image sources are available for creating an image:

        • HTTP: From a file published on an HTTP/HTTPS service at a given URL.
        • ContainerImage: From another image stored in a container registry.
        • ObjectRef: From an existing resource.
        • Upload: From data uploaded by the user via a special interface.

        Allowed values: HTTP, ContainerImage, ObjectRef, Upload

  • status
    object
    • status.cdrom
      boolean
      Defines whether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.downloadSpeed
      object
      Image download speed from an external source. Appears only during the Provisioning phase.
      • status.downloadSpeed.avg
        string
        Average download speed.

        Example:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        string
        Average download speed in bytes per second.

        Example:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        string
        Current download speed.

        Example:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        string
        Current download speed in bytes per second.

        Example:

        currentBytes: 5123456
        
    • status.format
      string
      Discovered image format.
    • status.imageUploadURLs
      object
      • status.imageUploadURLs.external
        string
        Command to upload the image using Ingress from outside the cluster.
      • status.imageUploadURLs.inCluster
        string
        Command to upload the image using Service within the cluster.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Current status of the ClusterVirtualImage resource:

      • Pending: The resource has been created and is on a waiting queue.
      • Provisioning: The resource is being created: copying, downloading, or building of the image is in progress.
      • WaitForUserUpload: Waiting for the user to upload the image. The endpoint to upload the image is specified in .status.uploadCommand.
      • Ready: The resource has been created and is ready to use.
      • Failed: There was an error when creating the resource.
      • Terminating: The resource is being deleted.
      • ImageLost: The image is missing in DVCR. The resource cannot be used.

      Allowed values: Pending, Provisioning, WaitForUserUpload, Ready, Failed, Terminating, ImageLost

    • status.progress
      string
      Progress of copying an image from the source to DVCR. Appears only during the `Provisioning’ phase.
    • status.size
      object
      Discovered image size data.
      • status.size.stored
        string
        Image size in human-readable format.

        Example:

        stored: 199M
        
      • status.size.storedBytes
        string
        Image size in bytes.

        Example:

        storedBytes: 199001234
        
      • status.size.unpacked
        string
        Unpacked image size in human-readable format.

        Example:

        unpacked: 1G
        
      • status.size.unpackedBytes
        string
        Unpacked image size in bytes.

        Example:

        unpackedBytes: 1000000234
        
    • status.sourceUID
      string
      UID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the cluster virtual image.
    • status.target
      object
      • status.target.registryURL
        string
        Created image in DVCR.

        Example:

        registryURL: dvcr.<dvcr-namespace>.svc/cvi/<image-name>:latest
        
    • status.uploadCommand
      string
      Deprecated. Use imageUploadURLs instead.
    • status.usedInNamespaces
      array of strings
      Displays the list of namespaces where the image is currently used.

NodeUSBDevice

Scope: Cluster
Version: v1alpha2

Represents a USB device discovered on a specific node in the cluster. This resource is created automatically by the DRA (Dynamic Resource Allocation) system when a USB device is detected on a node.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.assignedNamespace
      string
      AssignedNamespace in which the device usage is allowed. By default, created with an empty value “”. When set, a corresponding USBDevice resource is created in this namespace.

      Default: ‘’

  • status
    object
    • status.attributes
      object
      All device attributes obtained through DRA for the device.
      • status.attributes.bcd
        string
        BCD (Binary Coded Decimal) device version.
      • status.attributes.bus
        string
        USB bus number.
      • status.attributes.deviceNumber
        string
        USB device number on the bus.
      • status.attributes.devicePath
        string
        Device path in the filesystem.
      • status.attributes.major
        integer
        Major device number.
      • status.attributes.manufacturer
        string
        Device manufacturer name.
      • status.attributes.minor
        integer
        Minor device number.
      • status.attributes.name
        string
        Device name.
      • status.attributes.nodeName
        string
        Node name where the device is located.
      • status.attributes.product
        string
        Device product name.
      • status.attributes.productID
        string
        USB product ID in hexadecimal format.
      • status.attributes.serial
        string
        Device serial number.
      • status.attributes.speed
        integer
        Device speed.
      • status.attributes.vendorID
        string
        USB vendor ID in hexadecimal format.
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.nodeName
      string
      Name of the node where the USB device is located.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.

USBDevice

Scope: Namespaced
Version: v1alpha2

Represents a USB device available for attachment to virtual machines in a given namespace.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • status
    object
    Observed state of USBDevice.
    • status.attributes
      object
      All device attributes obtained through DRA for the device.
      • status.attributes.bcd
        string
        BCD (Binary Coded Decimal) device version.
      • status.attributes.bus
        string
        USB bus number.
      • status.attributes.deviceNumber
        string
        USB device number on the bus.
      • status.attributes.devicePath
        string
        Device path in the filesystem.
      • status.attributes.major
        integer
        Major device number.
      • status.attributes.manufacturer
        string
        Device manufacturer name.
      • status.attributes.minor
        integer
        Minor device number.
      • status.attributes.name
        string
        Device name.
      • status.attributes.nodeName
        string
        Node name where the device is located.
      • status.attributes.product
        string
        Device product name.
      • status.attributes.productID
        string
        USB product ID in hexadecimal format.
      • status.attributes.serial
        string
        Device serial number.
      • status.attributes.speed
        integer
        Device speed.
      • status.attributes.vendorID
        string
        USB vendor ID in hexadecimal format.
    • status.conditions
      array of objects
      Latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.nodeName
      string
      Name of the node where the USB device is located.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.

VirtualDisk

Scope: Namespaced
Version: v1alpha2

The VirtualDisk resource describes the desired virtual machine disk configuration. A VirtualDisk can be mounted statically in the virtual machine by specifying it in the .spec.blockDeviceRefs disk list, or mounted on-the-fly using the VirtualMachineBlockDeviceAttachments resource.

Once a VirtualDisk is created, the following fields in .spec.persistentVolumeClaim can be changed: size and storageClassName. All other fields are immutable.

Note: The metadata.name field must comply with Kubernetes object naming conventions and must not exceed 60 characters.

  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.dataSource
      object
      • spec.dataSource.containerImage
        object
        Use an image stored in an external container registry. Only registries with enabled TLS are supported. To provide a custom Certificate Authority (CA) chain, use the caBundle field.
        • spec.dataSource.containerImage.caBundle
          string
          CA chain in Base64 format to verify the container registry.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          string

          Required value

          Path to the image in the container registry.

          Pattern: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Example:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          object
          • spec.dataSource.containerImage.imagePullSecret.name
            string
            Name of the secret keeping container registry credentials, which must be located in the same namespace.
      • spec.dataSource.http
        object

        Fill the image with data from an external URL. The following schemas are supported:

        • HTTP
        • HTTPS

        For HTTPS schema, there is an option to skip the TLS verification.

        • spec.dataSource.http.caBundle
          string
          CA chain in Base64 format to verify the URL.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          object
          Checksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
          • spec.dataSource.http.checksum.md5
            string

            Length: 32..32

            Pattern: ^[0-9a-fA-F]{32}$

            Example:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            string

            Length: 64..64

            Pattern: ^[0-9a-fA-F]{64}$

            Example:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          string

          Required value

          URL of the file for creating an image. The following file formats are supported:

          • qcow2
          • vmdk
          • vdi
          • iso
          • raw The file can be compressed into an archive in one of the following formats:
          • gz
          • xz

          Pattern: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Example:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        object
        Use an existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource to create a disk.
        • spec.dataSource.objectRef.kind
          string

          Required value

          Kind of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.

          Allowed values: ClusterVirtualImage, VirtualImage, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          string

          Required value

          Name of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.

          Minimal length: 1

      • spec.dataSource.type
        string

        The following image sources are available for creating an image:

        • HTTP: From a file published on an HTTP/HTTPS service at a given URL.
        • ContainerImage: From another image stored in a container registry.
        • ObjectRef: From an existing resource.
        • Upload: From data uploaded by the user via a special interface.

        Allowed values: HTTP, ContainerImage, ObjectRef, Upload

    • spec.persistentVolumeClaim
      object
      Settings for creating PVCs to store the disk.
      • spec.persistentVolumeClaim.size
        integer or string

        Desired size for PVC to store the disk. If the disk is created from an image, the size must be at least as large as the original unpacked image.

        This parameter can be omitted if the .spec.dataSource section is filled out. In this case, the controller will determine the disk size automatically, based on the size of the extracted image from the source specified in .spec.dataSource.

        Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

      • spec.persistentVolumeClaim.storageClassName
        string

        StorageClass name required by the claim. For details on using StorageClass for PVC, refer to https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.

        When creating disks, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.

        The disk features and virtual machine behavior depend on the selected StorageClass.

        The VolumeBindingMode parameter in the StorageClass affects the disk creation process. The following values are allowed:

        • Immediate: The disk will be created and becomes available for use immediately after creation.
        • WaitForFirstConsumer: The disk will be created when first used on the node where the virtual machine will be started.

        StorageClass supports multiple storage settings:

        • Creating a block device (Block) or file system (FileSystem).
        • Multiple access (ReadWriteMany) or single access (ReadWriteOnce). The ReadWriteMany disks support multiple access, which enables a “live” migration of virtual machines. In contrast, the ReadWriteOnce disks, which can be accessed from only one node, don’t have this feature.

        For known storage types, Deckhouse automatically determines the most efficient settings when creating disks (by priority, in descending order):

        1. Block + ReadWriteMany
        2. FileSystem + ReadWriteMany
        3. Block + ReadWriteOnce
        4. FileSystem + ReadWriteOnce
  • status
    object
    • status.attachedToVirtualMachines
      array of objects
      List of VirtualMachines that use the disk.

      Example:

      attachedToVirtualMachines:
      - name: VM100
      
      • status.attachedToVirtualMachines.mounted
        boolean
        Flag indicating that VirtualDisk is currently being used by this attached VirtualMachine.
      • status.attachedToVirtualMachines.name
        string
        Name of attached VirtualMachine.
    • status.capacity
      string
      Requested PVC capacity in human-readable format.

      Example:

      capacity: 50G
      
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.downloadSpeed
      object
      Image download speed from an external source. Appears only during the Provisioning phase.
      • status.downloadSpeed.avg
        string
        Average download speed.

        Example:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        string
        Average download speed in bytes per second.

        Example:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        string
        Current download speed.

        Example:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        string
        Current download speed in bytes per second.

        Example:

        currentBytes: 5123456
        
    • status.imageUploadURLs
      object
      • status.imageUploadURLs.external
        string
        Command to upload the image using Ingress from outside the cluster.
      • status.imageUploadURLs.inCluster
        string
        Command to upload the image using Service within the cluster.
    • status.migrationState
      object
      Migration information.
      • status.migrationState.endTimestamp
        string
      • status.migrationState.message
        string
      • status.migrationState.result
        string
        VirtualDiskMigrationResult is the result of the VirtualDisk migration.

        Allowed values: Succeeded, Failed

      • status.migrationState.sourcePVC
        string
        Source PersistentVolumeClaim name.
      • status.migrationState.startTimestamp
        string
      • status.migrationState.targetPVC
        string
        Target PersistentVolumeClaim name.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Current status of the VirtualDisk resource:

      • Pending: The resource has been created and is on a waiting queue.
      • Provisioning: The resource is being created: copying, downloading, loading data to the PVC, or extending the PVC.
      • WaitForUserUpload: Waiting for the user to upload the image. The endpoint to upload the image is specified in .status.uploadCommand.
      • WaitForFirstConsumer: Waiting for the virtual machine using the disk to be assigned to the node.
      • Ready: The resource has been created and is ready to use.
      • Resizing: The process of resource resizing is in progress.
      • Failed: There was an error when creating the resource.
      • PVCLost: The child PVC of the resource is missing. The resource cannot be used.
      • Exporting: The child PV of the resource is in the process of exporting.
      • Terminating: The resource is being deleted.
      • Migrating: The resource is being migrating.

      Allowed values: Pending, Provisioning, WaitForUserUpload, WaitForFirstConsumer, Ready, Resizing, Failed, PVCLost, Exporting, Terminating, Migrating

    • status.progress
      string
      Progress of copying an image from a source to PVC. Appears only during the `Provisioning’ phase.
    • status.sourceUID
      string
      UID is a type that holds unique ID values, including UUIDs. Because we don’t ONLY use UUIDs, this is an alias to string. Being a type captures intent and helps make sure that UIDs and names do not get conflated.
    • status.stats
      object
      VirtualDisk statistics.
      • status.stats.creationDuration
        object
        Waiting time for the virtual disk creation.
        • status.stats.creationDuration.dvcrProvisioning
          string
          Duration of the loading into DVCR.
        • status.stats.creationDuration.totalProvisioning
          string
          Duration of the resource creation from the moment dependencies are ready until the resource transitions to the Ready state.
        • status.stats.creationDuration.waitingForDependencies
          string
          Waiting time for dependent resources.
    • status.storageClassName
      string
      Name of the StorageClass used by the PersistentVolumeClaim if Kubernetes storage type is used.
    • status.target
      object
      • status.target.persistentVolumeClaimName
        string
        Created PersistentVolumeClaim name for the Kubernetes storage.
    • status.uploadCommand
      string
      Deprecated. Use ImageUploadURLs instead.

VirtualDiskSnapshot

Scope: Namespaced
Version: v1alpha2

Provides a resource for creating snapshots of existing virtual disks, which can be used as data sources for generating new virtual disks.

When running, a VolumeSnapshot resource is created.

  • spec
    object
    • spec.requiredConsistency
      boolean

      Create a snapshot of a connected virtual machine’s disk only if it is possible to freeze the machine through the agent.

      If set to True, a virtual disk snapshot will be created when at least one of the following conditions is met:

      • The virtual disk is not connected to any virtual machine.
      • The virtual disk is connected to a powered-off virtual machine.
      • The virtual disk is connected to a virtual machine with an agent, and the freeze operation was successful.

      Default: true

    • spec.virtualDiskName
      string

      Required value

      Virtual disk name the snapshot is created for.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      Last confirmed status of the resource.
      • status.conditions.lastTransitionTime
        string
        Last time the condition transitioned from one status to another.
      • status.conditions.message
        string
        Human-readable message with details about the last transition.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        .metadata.generation the condition was based upon. For instance, if .metadata.generation is currently 12 but .status.conditions[x].observedGeneration is 9, the condition is considered outdated.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Brief reason for the condition’s last transition.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Condition status. Possible values: True, False, or Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.consistent
      boolean
      Virtual disk snapshot is consistent.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Current status of the VirtualDiskSnapshot resource:

      • Pending: The resource has been created and is on a waiting queue.
      • InProgress: The virtual disk snapshot is being created.
      • Ready: The virtual disk snapshot has been created successfully and is now available to use.
      • Failed: There was an error when creating the virtual disk snapshot.
      • Terminating: The resource is being deleted.

      Allowed values: Pending, InProgress, Ready, Failed, Terminating

    • status.volumeSnapshotName
      string
      Name of the created VolumeSnapshot resource.

VirtualImage

Scope: Namespaced
Version: v1alpha2

This resource describes a virtual disk image to use as a data source for new VirtualDisk resources or an installation image (iso) that can be mounted into the VirtualMachine resource.

This resource cannot be modified once it has been created.

With this resource in the cluster, a container image is created and stored in a dedicated Deckhouse Virtualization Container Registry (DVCR) or PVC, with the data filled in from the source.

Note: The metadata.name field must comply with Kubernetes object naming conventions and must not exceed 49 characters.

  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.dataSource
      object

      Required value

      • spec.dataSource.containerImage
        object
        Use an image stored in an external container registry. Only registries with enabled TLS protocol are supported. To provide a custom Certificate Authority (CA) chain, use the caBundle field.
        • spec.dataSource.containerImage.caBundle
          string
          CA chain in Base64 format to verify the container registry.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          string

          Required value

          Path to the image in the container registry.

          Pattern: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Example:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          object
          • spec.dataSource.containerImage.imagePullSecret.name
            string
            Name of the secret keeping container registry credentials, which must be located in the same namespace.
      • spec.dataSource.http
        object

        Fill the image with data from an external URL. The following schemas are supported:

        • HTTP
        • HTTPS

        For HTTPS schema, there is an option to skip the TLS verification.

        • spec.dataSource.http.caBundle
          string
          CA chain in Base64 format to verify the URL.

          Example:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          object
          Checksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
          • spec.dataSource.http.checksum.md5
            string

            Length: 32..32

            Pattern: ^[0-9a-fA-F]{32}$

            Example:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            string

            Length: 64..64

            Pattern: ^[0-9a-fA-F]{64}$

            Example:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          string

          Required value

          URL of the file for creating an image. The following file formats are supported:

          • qcow2
          • vmdk
          • vdi
          • iso
          • raw The file can be compressed into an archive in one of the following formats:
          • gz
          • xz

          Pattern: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Example:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        object
        Use an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
        • spec.dataSource.objectRef.kind
          string

          Required value

          Kind of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.

          Allowed values: ClusterVirtualImage, VirtualImage, VirtualDisk, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          string

          Required value

          Name of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.

          Minimal length: 1

      • spec.dataSource.type
        string

        The following image sources are available for creating an image:

        • HTTP: From a file published on an HTTP/HTTPS service at a given URL.
        • ContainerImage: From another image stored in a container registry.
        • ObjectRef: From an existing resource.
        • Upload: From data uploaded by the user via a special interface.

        Allowed values: HTTP, ContainerImage, ObjectRef, Upload

    • spec.persistentVolumeClaim
      object
      Settings for creating PVCs to store an image with the storage type PersistentVolumeClaim.
      • spec.persistentVolumeClaim.storageClassName
        string

        Name of the StorageClass required by the claim. For details on using StorageClass for PVC, refer to — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.

        When creating an image with the PersistentVolumeClaim storage type, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.

    • spec.storage
      string

      Required value

      Storage type to keep the image for the current virtualization setup.

      • ContainerRegistry: Use the DVCR container registry. In this case, images are downloaded to a container and then to DVCR (shipped with the virtualization module).
      • PersistentVolumeClaim: Use a PVC.
      • Kubernetes: A deprecated storage type. Not recommended for use and may be removed in future versions. Use PersistentVolumeClaim instead.

      Default: ContainerRegistry

      Allowed values: ContainerRegistry, Kubernetes, PersistentVolumeClaim

  • status
    object
    • status.cdrom
      boolean
      Whether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.downloadSpeed
      object
      Image download speed from an external source. Appears only during the Provisioning phase.
      • status.downloadSpeed.avg
        string
        Average download speed.

        Example:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        string
        Average download speed in bytes per second.

        Example:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        string
        Current download speed.

        Example:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        string
        Current download speed in bytes per second.

        Example:

        currentBytes: 5123456
        
    • status.format
      string
      Discovered image format.
    • status.imageUploadURLs
      object
      • status.imageUploadURLs.external
        string
        Command to upload the image using Ingress from outside the cluster.
      • status.imageUploadURLs.inCluster
        string
        Command to upload the image using Service within the cluster.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Current status of the ClusterVirtualImage resource:

      • Pending: The resource has been created and is on a waiting queue.
      • Provisioning: The resource is being created: copying, downloading, or building the image.
      • WaitForUserUpload: Waiting for the user to upload the image. The endpoint to upload the image is specified in .status.uploadCommand.
      • Ready: The resource has been created and is ready to use.
      • Failed: There was an error when creating the resource.
      • Terminating: The resource is being deleted.
      • ImageLost: The image is missing in DVCR. The resource cannot be used.
      • PVCLost: The child PVC of the resource is missing. The resource cannot be used.

      Allowed values: Pending, Provisioning, WaitForUserUpload, Ready, Failed, Terminating, ImageLost, PVCLost

    • status.progress
      string
      Progress of copying an image from a source to DVCR.
    • status.size
      object
      Discovered image size data.
      • status.size.stored
        string
        Image size in human-readable format.

        Example:

        stored: 199M
        
      • status.size.storedBytes
        string
        Image size in bytes.

        Example:

        storedBytes: 199001234
        
      • status.size.unpacked
        string
        Unpacked image size in human-readable format.

        Example:

        unpacked: 1G
        
      • status.size.unpackedBytes
        string
        Unpacked image size in bytes.

        Example:

        unpackedBytes: 1000000234
        
    • status.sourceUID
      string
      UID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the virtual image.
    • status.storageClassName
      string
      Name of the StorageClass used by the PersistentVolumeClaim if Kubernetes storage type is used.
    • status.target
      object
      • status.target.persistentVolumeClaimName
        string
        Created PersistentVolumeClaim name for the PersistentVolumeClaim storage.
      • status.target.registryURL
        string
        Created image in DVCR.

        Example:

        registryURL: dvcr.<dvcr-namespace>.svc/vi/<image-namespace>/<image-name>:latest
        
    • status.uploadCommand
      string
      Deprecated. Use imageUploadURLs instead.

VirtualMachineBlockDeviceAttachment

Scope: Namespaced
Version: v1alpha2

VirtualMachineBlockDeviceAttachment provides a hot plug for attaching a disk to a virtual machine.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.blockDeviceRef
      object

      Required value

      Block device that will be connected to the VM as a hot-plug disk.
      • spec.blockDeviceRef.kind
        string

        Block device type. Available options:

        • VirtualDisk: Use VirtualDisk as the disk. This type is always mounted in RW mode.
        • VirtualImage: Use VirtualImage as the disk. This type is always mounted in RO mode.
        • ClusterVirtualImage: Use ClusterVirtualImage as the disk. This type is always mounted in RO mode.

        Allowed values: VirtualDisk, VirtualImage, ClusterVirtualImage

      • spec.blockDeviceRef.name
        string
        Name of the block device to attach.

        Minimal length: 1

    • spec.virtualMachineName
      string

      Required value

      Virtual machine name the disk or image should be attached to.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      Contains details of the current API resource state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      BlockDeviceAttachmentPhase defines the current status of the resource:

      • Pending: The resource has been created and is on a waiting queue.
      • InProgress: The disk is being attached to the VM.
      • Attached: The disk has been attached to the VM.
      • Failed: There was an error when attaching the disk.
      • Terminating: The resource is being deleted.

      Allowed values: Pending, InProgress, Attached, Failed, Terminating

    • status.virtualMachineName
      string
      Name of the virtual machine the disk is attached to.

VirtualMachineClass

Scope: Cluster

VirtualMachineClass resource describes CPU requirements, node placement, and sizing policy for VM resources. A resource cannot be deleted as long as it is used in one of the VMs.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.cpu
      object

      Required value

      CPU defines the requirements for the virtual CPU model.
      • spec.cpu.discovery
        object
        Create a CPU model based on intersecting CPU features for selected nodes.
        • spec.cpu.discovery.nodeSelector
          object
          A selection of nodes to be used as the basis for creating a universal CPU model.
          • spec.cpu.discovery.nodeSelector.matchExpressions
            array of objects
            matchExpressions is a list of label selector requirements. The requirements are ANDed.
            • spec.cpu.discovery.nodeSelector.matchExpressions.key
              string
              key is the label key that the selector applies to.
            • spec.cpu.discovery.nodeSelector.matchExpressions.operator
              string
              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
            • spec.cpu.discovery.nodeSelector.matchExpressions.values
              array of strings
              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.
          • spec.cpu.discovery.nodeSelector.matchLabels
            object
            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.
      • spec.cpu.features
        array of strings
        List of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.

        Example:

        features:
        - mmx
        - vmx
        - sse2
        
      • spec.cpu.model
        string
        CPU model name. For more information about CPU models and topology, refer to the libvirt docs.

        Minimal length: 1

        Example:

        model: IvyBridge
        
      • spec.cpu.type
        string

        Required value

        CPUType defines the CPU type, the following options are supported:

        • Host: Uses a virtual CPU with an instruction set closely matching the platform node’s CPU. This provides high performance and functionality, as well as compatibility with “live” migration for nodes with similar processor types. For example, VM migration between nodes with Intel and AMD processors will not work. This is also true for different CPU generations, as their instruction set is different.
        • HostPassthrough: Uses the platform node’s physical CPU directly, without any modifications. When using this class, the guest VM can only be transferred to a target node with a CPU exactly matching the source node’s CPU.
        • Discovery: Create a virtual CPU based on instruction sets of physical CPUs for a selected set of nodes.
        • Model: CPU model. A CPU model is a named and previously defined set of supported CPU instructions.
        • Features: A required set of supported instructions for the CPU.

        Allowed values: Host, HostPassthrough, Discovery, Model, Features

    • spec.nodeSelector
      object
      NodeSelector defines the nodes targeted for VM scheduling.
      • spec.nodeSelector.matchExpressions
        array of objects
        A list of node selector requirements by node’s labels.
        • spec.nodeSelector.matchExpressions.key
          string
          The label key that the selector applies to.
        • spec.nodeSelector.matchExpressions.operator
          string
          Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
        • spec.nodeSelector.matchExpressions.values
          array of strings
          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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
      • spec.nodeSelector.matchLabels
        object
        A map of {key,value} pairs. A single {key,value} pair in the matchLabels map is equivalent to an element of matchExpressions whose key field is “key”, operator is “In”, and the value array contains only “value”. The requirements are ANDed.
    • spec.sizingPolicies
      array of objects
      • spec.sizingPolicies.coreFractions
        array of strings
        Allowed values of the coreFraction parameter in percentages (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
        • spec.sizingPolicies.coreFractions.Element of the array
          string
          CoreFractionValue represents CPU core fraction as a percentage string (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
      • spec.sizingPolicies.cores
        object
        The policy applies for a specified range of the number of CPU cores.
        • spec.sizingPolicies.cores.max
          integer

          Required value

          Maximum number of CPU cores.

          Allowed values: X <= 1024

          Example:

          max: 10
          
        • spec.sizingPolicies.cores.min
          integer

          Required value

          Minimum number of CPU cores.

          Allowed values: 1 <= X

          Example:

          min: 1
          
        • spec.sizingPolicies.cores.step
          integer
          Discretization step for the CPU core number. For example, the combination of min=2, max=10, and step=4 allows to set the number of virtual machine CPU cores to 2, 6, or 10.

          Allowed values: 1 <= X

          Example:

          step: 1
          
      • spec.sizingPolicies.dedicatedCores
        array of booleans
        Allowed values of the dedicatedCores parameter.
      • spec.sizingPolicies.defaultCoreFraction
        string
        A default CoreFraction value for a VirtualMachine if it is not provided.
      • spec.sizingPolicies.memory
        object
        Memory sizing policy.
        • spec.sizingPolicies.memory.max
          integer or string
          Maximum amount of memory.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          max: 8Gi
          
        • spec.sizingPolicies.memory.min
          integer or string
          Minimum amount of memory.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          min: 1Gi
          
        • spec.sizingPolicies.memory.perCore
          object
          Amount of memory per CPU core.
          • spec.sizingPolicies.memory.perCore.max
            integer or string
            Maximum amount of memory.

            Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Example:

            max: 8Gi
            
          • spec.sizingPolicies.memory.perCore.min
            integer or string
            Minimum amount of memory.

            Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Example:

            min: 1Gi
            
        • spec.sizingPolicies.memory.step
          integer or string
          Memory size discretization step. For example, the combination of min=2Gi, max=4Giandstep=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          step: 512Mi
          
    • spec.tolerations
      array of objects
      Tolerations are the same as spec.tolerations for pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.
      • spec.tolerations.effect
        string
        Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
      • spec.tolerations.key
        string
        Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
      • spec.tolerations.operator
        string
        Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
      • spec.tolerations.tolerationSeconds
        integer
        TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
      • spec.tolerations.value
        string
        Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  • status
    object
    • status.availableNodes
      array of strings
      List of nodes that support this CPU model. It is not displayed for the following types: Host, HostPassthrough.

      Example:

      availableNodes:
      - node-1
      - node-2
      
    • status.conditions
      array of objects
      The latest detailed observations of the VirtualMachineClass resource.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.cpuFeatures
      object
      CpuFeatures Information on CPU features supported by this model. Shown only for Features or Discovery types.
      • status.cpuFeatures.enabled
        array of strings
        List of CPU features for this model.

        Example:

        enabled:
        - mmx
        - vmx
        - sse2
        
      • status.cpuFeatures.notEnabledCommon
        array of strings
        List of unused processor features additionally available for a given group of nodes.

        Example:

        notEnabledCommon:
        - ssse3
        - vme
        
    • status.maxAllocatableResources
      object
      Maximum amount of free CPU and memory resources observed among all available nodes.

      Example:

      maxAllocatableResources:
      - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}'
      
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      VirtualMachineClassPhase defines the current resource status:

      • Pending: The resource is not ready and waits until the suitable nodes supporting the required CPU model are available.
      • Ready: The resource is ready and available for use.
      • Terminating: The resource is terminating.

      Allowed values: Pending, Ready, Terminating

VirtualMachineClass resource describes CPU requirements, node placement, and sizing policy for VM resources. A resource cannot be deleted as long as it is used in one of the VMs.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.cpu
      object

      Required value

      CPU defines the requirements for the virtual CPU model.
      • spec.cpu.discovery
        object
        Create a CPU model based on intersecting CPU features for selected nodes.
        • spec.cpu.discovery.nodeSelector
          object
          A selection of nodes to be used as the basis for creating a universal CPU model.
          • spec.cpu.discovery.nodeSelector.matchExpressions
            array of objects
            matchExpressions is a list of label selector requirements. The requirements are ANDed.
            • spec.cpu.discovery.nodeSelector.matchExpressions.key
              string
              key is the label key that the selector applies to.
            • spec.cpu.discovery.nodeSelector.matchExpressions.operator
              string
              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
            • spec.cpu.discovery.nodeSelector.matchExpressions.values
              array of strings
              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.
          • spec.cpu.discovery.nodeSelector.matchLabels
            object
            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.
      • spec.cpu.features
        array of strings
        List of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.

        Example:

        features:
        - mmx
        - vmx
        - sse2
        
      • spec.cpu.model
        string
        CPU model name. For more information about CPU models and topology, refer to the libvirt docs.

        Minimal length: 1

        Example:

        model: IvyBridge
        
      • spec.cpu.type
        string

        Required value

        CPUType defines the CPU type, the following options are supported:

        • Host: Uses a virtual CPU with an instruction set closely matching the platform node’s CPU. This provides high performance and functionality, as well as compatibility with “live” migration for nodes with similar processor types. For example, VM migration between nodes with Intel and AMD processors will not work. This is also true for different CPU generations, as their instruction set is different.
        • HostPassthrough: Uses the platform node’s physical CPU directly, without any modifications. When using this class, the guest VM can only be transferred to a target node with a CPU exactly matching the source node’s CPU.
        • Discovery: Create a virtual CPU based on instruction sets of physical CPUs for a selected set of nodes.
        • Model: CPU model. A CPU model is a named and previously defined set of supported CPU instructions.
        • Features: A required set of supported instructions for the CPU.

        Allowed values: Host, HostPassthrough, Discovery, Model, Features

    • spec.nodeSelector
      object
      NodeSelector defines the nodes targeted for VM scheduling.
      • spec.nodeSelector.matchExpressions
        array of objects
        A list of node selector requirements by node’s labels.
        • spec.nodeSelector.matchExpressions.key
          string
          The label key that the selector applies to.
        • spec.nodeSelector.matchExpressions.operator
          string
          Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
        • spec.nodeSelector.matchExpressions.values
          array of strings
          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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
      • spec.nodeSelector.matchLabels
        object
        A map of {key,value} pairs. A single {key,value} pair in the matchLabels map is equivalent to an element of matchExpressions whose key field is “key”, operator is “In”, and the value array contains only “value”. The requirements are ANDed.
    • spec.sizingPolicies
      array of objects
      • spec.sizingPolicies.coreFractions
        array of integers
        Allowed values of the coreFraction parameter.
        • spec.sizingPolicies.coreFractions.Element of the array
          integer

          Allowed values: 1 <= X <= 100

      • spec.sizingPolicies.cores
        object
        The policy applies for a specified range of the number of CPU cores.
        • spec.sizingPolicies.cores.max
          integer

          Required value

          Maximum number of CPU cores.

          Allowed values: X <= 1024

          Example:

          max: 10
          
        • spec.sizingPolicies.cores.min
          integer

          Required value

          Minimum number of CPU cores.

          Allowed values: 1 <= X

          Example:

          min: 1
          
        • spec.sizingPolicies.cores.step
          integer
          Discretization step for the CPU core number. For example, the combination of min=2, max=10, and step=4 allows to set the number of virtual machine CPU cores to 2, 6, or 10.

          Allowed values: 1 <= X

          Example:

          step: 1
          
      • spec.sizingPolicies.dedicatedCores
        array of booleans
        Allowed values of the dedicatedCores parameter.
      • spec.sizingPolicies.defaultCoreFraction
        integer
        A default CoreFraction value for a VirtualMachine if it is not provided.

        Allowed values: 1 <= X <= 100

      • spec.sizingPolicies.memory
        object
        Memory sizing policy.
        • spec.sizingPolicies.memory.max
          integer or string
          Maximum amount of memory.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          max: 8Gi
          
        • spec.sizingPolicies.memory.min
          integer or string
          Minimum amount of memory.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          min: 1Gi
          
        • spec.sizingPolicies.memory.perCore
          object
          Amount of memory per CPU core.
          • spec.sizingPolicies.memory.perCore.max
            integer or string
            Maximum amount of memory.

            Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Example:

            max: 8Gi
            
          • spec.sizingPolicies.memory.perCore.min
            integer or string
            Minimum amount of memory.

            Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Example:

            min: 1Gi
            
        • spec.sizingPolicies.memory.step
          integer or string
          Memory size discretization step. For example, the combination of min=2Gi, max=4Giandstep=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Example:

          step: 512Mi
          
    • spec.tolerations
      array of objects
      Tolerations are the same as spec.tolerations for pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.
      • spec.tolerations.effect
        string
        Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
      • spec.tolerations.key
        string
        Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
      • spec.tolerations.operator
        string
        Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
      • spec.tolerations.tolerationSeconds
        integer
        TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
      • spec.tolerations.value
        string
        Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  • status
    object
    • status.availableNodes
      array of strings
      List of nodes that support this CPU model. It is not displayed for the following types: Host, HostPassthrough.

      Example:

      availableNodes:
      - node-1
      - node-2
      
    • status.conditions
      array of objects
      The latest detailed observations of the VirtualMachineClass resource.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.cpuFeatures
      object
      CpuFeatures Information on CPU features supported by this model. Shown only for Features or Discovery types.
      • status.cpuFeatures.enabled
        array of strings
        List of CPU features for this model.

        Example:

        enabled:
        - mmx
        - vmx
        - sse2
        
      • status.cpuFeatures.notEnabledCommon
        array of strings
        List of unused processor features additionally available for a given group of nodes.

        Example:

        notEnabledCommon:
        - ssse3
        - vme
        
    • status.maxAllocatableResources
      object
      Maximum amount of free CPU and memory resources observed among all available nodes.

      Example:

      maxAllocatableResources:
      - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}'
      
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      VirtualMachineClassPhase defines the current resource status:

      • Pending: The resource is not ready and waits until the suitable nodes supporting the required CPU model are available.
      • Ready: The resource is ready and available for use.
      • Terminating: The resource is terminating.

      Allowed values: Pending, Ready, Terminating

VirtualMachineIPAddress

Scope: Namespaced
Version: v1alpha2

Defines the IP address for a virtual machine.
  • apiVersion
    string
  • kind
    string
  • metadata
    object
  • spec
    object
    VirtualMachineIPAddress settings.
    • spec.staticIP
      string
      Requested static IP address to assign to the virtual machine. This field is required only if type is set to ‘Static’.
    • spec.type
      string

      Required value

      Specifies the IP address assigning mode. Possible values:

      • Auto: For assigning the IP address automatically.
      • Static: For assigning a specific IP address.

      Allowed values: Auto, Static

  • status
    object
    • status.address
      string
      Assigned IP address.
    • status.conditions
      array of objects
      Last confirmed status of the resource.
      • status.conditions.lastTransitionTime
        string
        Last time the condition transitioned from one status to another.
      • status.conditions.message
        string
        Human-readable message with details about the last transition.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        .metadata.generation the condition was based upon. For instance, if .metadata.generation is currently 12 but .status.conditions[x].observedGeneration is 9, the condition is considered outdated.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Brief reason for the condition’s last transition.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Condition status. Possible values: True, False, or Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Represents the current state of the VirtualMachineIPAddress resource.

      • Pending: The resource is being created.
      • Bound: The VirtualMachineIPAddress has been bound to the VirtualMachineIPAddressLease resource.
      • Attached: The VirtualMachineIPAddress is attached to the VirtualMachine resource.

      Allowed values: Pending, Bound, Attached

    • status.virtualMachineName
      string
      Virtual machine name that is currently using the IP address.

VirtualMachineIPAddressLease

Scope: Cluster
Version: v1alpha2

Resource confirming the issued lease for VirtualMachineIPAddress.
  • apiVersion
    string
  • kind
    string
  • metadata
    object
  • spec
    object
    VirtualMachineIPAddressLease configuration parameter.
    • spec.virtualMachineIPAddressRef
      object
      Link to the existing VirtualMachineIPAddress resources.
      • spec.virtualMachineIPAddressRef.name
        string

        Required value

        Name of the reference VirtualMachineIPAddress resource.
      • spec.virtualMachineIPAddressRef.namespace
        string

        Required value

        Namespace of the reference VirtualMachineIPAddress resource.
  • status
    object
    • status.conditions
      array of objects
      Last confirmed status of the resource.
      • status.conditions.lastTransitionTime
        string
        Last time the condition transitioned from one status to another.
      • status.conditions.message
        string
        Human-readable message with details about the last transition.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        .metadata.generation the condition was based upon. For instance, if .metadata.generation is currently 12 but .status.conditions[x].observedGeneration is 9, the condition is considered outdated.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Brief reason for the condition’s last transition.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Condition status. Possible values: True, False, or Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Represents the current state of the VirtualMachineIPAddressLease resource.

      • Bound: The VirtualMachineIPAddressLease has been bound to the VirtualMachineIPAddress resource.
      • Released: The VirtualMachineIPAddressLease resource is available for binding to the new VirtualMachineIPAddress resource.

      Allowed values: Bound, Released

VirtualMachineMACAddress

Scope: Namespaced
Version: v1alpha2

The resource is used to assign a MAC address to a virtual machine’s network interface.
  • apiVersion
    string
  • kind
    string
  • metadata
    object
  • spec
    object
    The desired state of VirtualMachineMACAddress.
    • spec.address
      string
      The requested MAC address to be assigned to the virtual machine’s network interface. If the field is empty, the MAC address is generated automatically according to the following principle: the first three octets (OUI) are formed based on the cluster UID, and the last three octets are randomly selected from the range 00:00:00 to FF:FF:FF.

      Pattern: ^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$

  • status
    object
    • status.address
      string
      The assigned MAC address.
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string

        type of condition in CamelCase or in foo.example.com/CamelCase.

        Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      The generation last processed by the controller.
    • status.phase
      string

      Represents the current state of MAC address.

      • Pending - the process of creating is in progress.
      • Bound - the MAC address is bound to MAC address lease.
      • Attached - the MAC address is attached to VirtualMachine.

      Allowed values: Pending, Bound, Attached

    • status.virtualMachineName
      string
      Represents the virtual machine that currently uses this MAC address.

VirtualMachineMACAddressLease

Scope: Cluster
Version: v1alpha2

The resource reserves a MAC address for a virtual machine’s network interface. It prevents multiple allocations for one address in the cluster scope.
  • apiVersion
    string
  • kind
    string
  • metadata
    object
  • spec
    object
    The desired state of VirtualMachineMACAddressLease.
    • spec.virtualMachineMACAddressRef
      object
      The link to existing VirtualMachineMACAddress.
      • spec.virtualMachineMACAddressRef.name
        string

        Required value

        The name of the referenced VirtualMachineMACAddress.
      • spec.virtualMachineMACAddressRef.namespace
        string

        Required value

        The Namespace of the referenced VirtualMachineMACAddress.
  • status
    object
    • status.conditions
      array of objects
      The latest available observations of an object’s current state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string

        type of condition in CamelCase or in foo.example.com/CamelCase.

        Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      The generation last processed by the controller.
    • status.phase
      string

      Represents the current state of issued MAC address lease.

      • Bound - the MAC address lease is bound to MAC address.

      Allowed values: Bound

VirtualMachineOperation

Scope: Namespaced
Version: v1alpha2

VirtualMachineOperation enables declarative management of virtual machine state changes.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.clone
      object
      Clone defines the clone operation.
      • spec.clone.customization
        object
        Customization defines customization options for cloning.
        • spec.clone.customization.namePrefix
          string
          NamePrefix adds a prefix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
        • spec.clone.customization.nameSuffix
          string
          NameSuffix adds a suffix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
      • spec.clone.mode
        string

        Required value

        SnapshotOperationMode defines the kind of the clone operation.

        • DryRun: DryRun run without any changes. Compatibility shows in status.
        • Strict: Strict clone as is in the snapshot.
        • BestEffort: BestEffort process without deleted external missing dependencies.

        Allowed values: DryRun, Strict, BestEffort

      • spec.clone.nameReplacement
        array of objects
        NameReplacement defines rules for renaming resources during cloning.
        • spec.clone.nameReplacement.from
          object
          Selector to choose resources for name replacement.
          • spec.clone.nameReplacement.from.kind
            string
            Kind of a resource to rename.

            Minimal length: 1

          • spec.clone.nameReplacement.from.name
            string

            Required value

            Current name of a resource to rename.

            Minimal length: 1

        • spec.clone.nameReplacement.to
          string
          New resource name.

          Minimal length: 1

    • spec.force
      boolean

      Force execution of an operation.

      • Effect on Restart and Stop: operation performs immediately.
      • Effect on Evict and Migrate: enable the AutoConverge feature to force migration via CPU throttling if the PreferSafe or PreferForced policies are used for live migration.
    • spec.migrate
      object
      Defines the virtual machine migration operation.
      • spec.migrate.nodeSelector
        object

        Node selector for scheduling the VM onto a node. Must match the target node’s labels. Same as the Pod spec.nodeSelector field in Kubernetes.

        The nodeSelector field is not available in the Community Edition.

    • spec.restore
      object
      Restore defines the restore operation.
      • spec.restore.mode
        string

        Required value

        SnapshotOperationMode defines the kind of the clone operation.

        • DryRun: DryRun run without any changes. Compatibility shows in status.
        • Strict: Strict clone as is in the snapshot.
        • BestEffort: BestEffort process without deleted external missing dependencies.

        Allowed values: DryRun, Strict, BestEffort

      • spec.restore.virtualMachineSnapshotName
        string

        Required value

        VirtualMachineSnapshotName defines the source of the restore operation.

        Minimal length: 1

    • spec.type
      string

      Required value

      Type of the operation to execute on a virtual machine:

      • Start: Start the virtual machine.
      • Stop: Stop the virtual machine.
      • Restart: Restart the virtual machine.
      • Migrate: Migrate the virtual machine to another node where it can run.
      • Evict: Evict the virtual machine to another node where it can run.
      • Restore: Restore the virtual machine from a snapshot.
      • Clone: Clone the virtual machine to a new virtual machine.

      Allowed values: Restart, Start, Stop, Migrate, Evict, Restore, Clone

    • spec.virtualMachineName
      string

      Required value

      Name of the virtual machine the operation is performed for.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      The latest detailed observations of the VirtualMachineOperation resource.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      Current phase of the resource:

      • Pending: The operation is queued for execution.
      • InProgress: The operation is in progress.
      • Completed: The operation has been completed successfully.
      • Failed: The operation failed. For details, refer to the conditions field and events.
      • Terminating: The operation is being deleted.

      Allowed values: Pending, InProgress, Completed, Failed, Terminating

    • status.resources
      array of objects
      Resources contains the list of resources that are affected by the snapshot operation.
      • status.resources.apiVersion
        string
        API version of the resource.
      • status.resources.kind
        string
        Kind of the resource.
      • status.resources.message
        string
        Message about the resource.
      • status.resources.name
        string
        Name of the resource.
      • status.resources.status
        string
        Status of the resource.

        Allowed values: InProgress, Completed, Failed

VirtualMachineRestore

Scope: Namespaced
Version: v1alpha2

VirtualMachineRestore provides a resource for restoring a virtual machine and all associated resources from a snapshot.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.nameReplacements
      array of objects
      Renaming conventions for virtual machine resources.
      • spec.nameReplacements.from
        object
        Selector to choose resources for name replacement.
        • spec.nameReplacements.from.kind
          string
          Kind of a resource to rename.

          Minimal length: 1

        • spec.nameReplacements.from.name
          string

          Required value

          Current name of a resource to rename.

          Minimal length: 1

      • spec.nameReplacements.to
        string
        New resource name.

        Minimal length: 1

    • spec.restoreMode
      string

      Virtual machine restore mode:

      • Safe — in this mode, the virtual machine will not be restored if unresolvable conflicts are detected during the restoration process.
      • Forced — in this mode, the virtual machine configuration will be updated and all associated resources will be recreated. The virtual machine may malfunction if the recovery process fails. Use the mode when you need to restore the virtual machine despite conflicts.

      Default: Safe

      Allowed values: Safe, Forced

    • spec.virtualMachineSnapshotName
      string

      Required value

      Snapshot name to restore a virtual machine from.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      Contains details of the current API resource state.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      VirtualMachineRestorePhase defines the current status of a resource:

      • Pending: The resource has been created and is on a waiting queue.
      • InProgress: A virtual machine is being restored from a snapshot.
      • Ready: A virtual machine has been successfully restored from a snapshot.
      • Failed: An error occurred when restoring a virtual machine from a snapshot.
      • Terminating: The resource is being deleted.

      Allowed values: Pending, InProgress, Ready, Failed, Terminating

VirtualMachine

Scope: Namespaced
Version: v1alpha2

Describes the configuration and status of a virtual machine (VM). On a running VM, changed parameters can only be applied after rebooting, except for the following parameters that are applied on the fly:

  • .metadata.labels
  • .metadata.annotations
  • .spec.disruptions.restartApprovalMode
  • .spec.runPolicy.

Note: The metadata.name field must comply with Kubernetes object naming conventions and must not exceed 63 characters.

  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.affinity
      object

      The same as in the pod parameter spec.affinity in Kubernetes;

      The affinity setting details are exactly matching the documentation source above. The only difference are the names of several parameters. The following alternative names are used:

      • podAffinity -> virtualMachineAndPodAffinity
      • podAffinityTerm -> virtualMachineAndPodAffinityTerm
      • spec.affinity.nodeAffinity
        object
        Describes node affinity scheduling rules for a VM.
        • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
          array of objects
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
            object
            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
              array of objects
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
                string
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
                string
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
                array of strings
                • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Element of the array
                  string
            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
              array of objects
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
                string
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
                string
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
                array of strings
                • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Element of the array
                  string
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            integer

            Allowed values: 1 <= X <= 100

        • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
          object
          • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
            array of objects

            Required value

            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
              array of objects
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
                string
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
                string
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
                array of strings
                • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Element of the array
                  string
            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
              array of objects
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
                string
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
                string
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
                array of strings
                • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Element of the array
                  string
      • spec.affinity.virtualMachineAndPodAffinity
        object
        Describes pod and VM affinity scheduling rules.
        • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
          array of objects
          • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
            object
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
              object
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
                array of objects
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
                  string
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
                  string
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
                  array of strings
                  • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
                    string
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
                object
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
              array of strings
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
              array of strings
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
              object
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
                array of objects
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
                  string
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
                  string
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
                  array of strings
                  • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
                    string
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
                object
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
              array of strings
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
              string

              Required value

          • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            integer

            Allowed values: 1 <= X <= 100

        • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
          array of objects
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
            object
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
              array of objects
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
                string
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
                string
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
                array of strings
                • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
                  string
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
              object
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
            array of strings
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
            array of strings
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
            object
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
              array of objects
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
                string
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
                string
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
                array of strings
                • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
                  string
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
              object
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
            array of strings
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
            string
      • spec.affinity.virtualMachineAndPodAntiAffinity
        object
        Describes pod and VM anti-affinity scheduling rules.
        • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
          array of objects
          • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
            object
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
              object
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
                array of objects
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
                  string
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
                  string
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
                  array of strings
                  • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
                    string
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
                object
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
              array of strings
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
              array of strings
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
              object
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
                array of objects
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
                  string
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
                  string
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
                  array of strings
                  • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
                    string
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
                object
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
              array of strings
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
                string
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
              string

              Required value

          • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            integer

            Allowed values: 1 <= X <= 100

        • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
          array of objects
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
            object
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
              array of objects
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
                string
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
                string
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
                array of strings
                • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
                  string
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
              object
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
            array of strings
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
            array of strings
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
            object
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
              array of objects
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
                string
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
                string
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
                array of strings
                • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
                  string
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
              object
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
            array of strings
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
              string
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
            string
    • spec.blockDeviceRefs
      array of objects

      Required value

      List of block devices connected to the VM.
      • spec.blockDeviceRefs.kind
        string

        Supported block device types:

        • ClusterVirtualImage: Use ClusterVirtualImage as the disk. This type is always mounted in ReadOnly mode. An ISO image will be mounted as a CD-ROM device.
        • VirtualImage: Use VirtualImage as the disk. This type is always mounted in ReadOnly mode. An ISO image will be mounted as a CD-ROM device.
        • VirtualDisk: Use VirtualDisk as the disk. This type is always mounted in ReadWrite mode.

        Allowed values: ClusterVirtualImage, VirtualImage, VirtualDisk

      • spec.blockDeviceRefs.name
        string
        Name of the attached resource.

        Minimal length: 1

    • spec.bootloader
      string

      Defines a bootloader for a VM.

      • BIOS: Use BIOS.
      • EFI: Use Unified Extensible Firmware (EFI/UEFI).
      • EFIWithSecureBoot: Use UEFI/EFI with the Secure Boot support.

      Default: BIOS

      Allowed values: BIOS, EFI, EFIWithSecureBoot

    • spec.cpu
      object

      Required value

      Section describing the CPU settings for a VM.
      • spec.cpu.coreFraction
        string
        Guaranteed share of CPU time allocated to the VM. Specified as a percentage. The allowed range is defined by sizePolicy in the selected VirtualMachineClass. If sizePolicy is not set, use values in the 1–100% range. If the parameter is not specified, the default value from the class sizePolicy is used. If no default is set in the class, 100% is applied.

        Pattern: ^(100|[1-9][0-9]?|[1-9])%$

      • spec.cpu.cores
        integer

        Required value

        Number of cores.

        Allowed values: 1 <= X

    • spec.disruptions
      object

      Describes the policy for applying changes that require rebooting the VM.

      Changes to some VM configuration settings require a VM reboot to be applied. This policy lets you specify the behavior defining how the VM reacts to such changes.

      Default: { "restartApprovalMode": "Manual" }

      • spec.disruptions.restartApprovalMode
        string

        Approval mode for changes that require rebooting the VM:

        • Manual: Changes won’t be applied until the user manually reboots the VM.
        • Automatic: The VM will be rebooted immediately after the parameters requiring the reboot are saved.

        Allowed values: Manual, Automatic

    • spec.enableParavirtualization
      boolean

      Use the virtio bus for connecting virtual devices of a VM. To disable virtio for a VM, set this parameter to False.

      Note: To use the paravirtualization mode, some operating systems require installing the corresponding drivers.

      Default: true

    • spec.liveMigrationPolicy
      string

      Defines policy for live migration process:

      • AlwaysSafe — use Safe options for automatic and VMOP migrations. Do not enable CPU throttling.
      • PreferSafe — use Safe options for automatic migrations. CPU throttling can be enabled with force=true in VMOP.
      • AlwaysForced — enable CPU throttling for automatic and VMOP migrations. No way to disable CPU throttling.
      • PreferForced — enable CPU throttling for automatic migrations. CPU throttling can be disabled with force=false in VMOP.

      Default: PreferSafe

      Allowed values: AlwaysSafe, PreferSafe, AlwaysForced, PreferForced

    • spec.memory
      object

      Required value

      Section specifying the RAM settings for the VM.
      • spec.memory.size
        string

        Required value

        RAM amount.

        Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

    • spec.networks
      array of objects

      List of network interface configurations. If not specified, the VM uses only the main cluster network (Main).

      The sdn module is required only when additional networks (Network or ClusterNetwork) are specified in .spec.networks. If only the main network (Main) is specified, the module is not required.

      • spec.networks.id
        integer
        The ID of the network interface.
      • spec.networks.name
        string
        The name of the network interface.

        Minimal length: 1

      • spec.networks.type
        string

        The type of the network interface.

        Supported types:

        • Main — primary network interface that is always present (default network).
        • Network — a subnet at the namespace level.
        • ClusterNetwork — a subnet at the cluster level.

        Allowed values: Main, Network, ClusterNetwork

      • spec.networks.virtualMachineMACAddressName
        string
        The name of the VirtualMachineMACAddress resource that is associated with the network interface.

        Minimal length: 1

    • spec.nodeSelector
      object
      The same as in the pod parameter spec.nodeSelector in Kubernetes.
    • spec.osType
      string

      Lets you select the type of a used OS that will be used to create a VM with an optimal set of required virtual devices and parameters.

      • Windows: For an operating system from the Microsoft Windows family.
      • Generic: For other operating systems.

      Default: Generic

      Allowed values: Windows, Generic

    • spec.priorityClassName
      string
      The same as in the pod parameter spec.priorityClassName in Kubernetes.

      Minimal length: 1

    • spec.provisioning
      object
      Section describing a VM initial provisioning scenario.
      • spec.provisioning.sysprepRef
        object

        Link to an existing resource with the Windows automation scenario.

        A resource structure for the SysprepRef type:

        • .data.autounattend.xml
        • .data.unattend.xml
        • spec.provisioning.sysprepRef.kind
          string

          Required value

          Kind of the resource. Use a secret of the following type: provisioning.virtualization.deckhouse.io/sysprep.

          Default: Secret

          Allowed values: Secret

        • spec.provisioning.sysprepRef.name
          string

          Required value

          Secret name.

          Minimal length: 1

      • spec.provisioning.type
        string

        Required value

        Supported parameters for using the provisioning scenario:

        • UserData: Use the cloud-init scenario in the .spec.provisioning.UserData section.
        • UserDataRef: Use the cloud-init scenario located in a different resource.
        • SysprepRef: Use the automatic Windows installation scenario located in a different resource.

        Allowed values: UserData, UserDataRef, SysprepRef

      • spec.provisioning.userData
        string
      • spec.provisioning.userDataRef
        object

        Link to an existing resource with the cloud-init scenario.

        A resource structure for the userDataRef type:

        • .data.userData.
        • spec.provisioning.userDataRef.kind
          string

          Required value

          Kind of the resource.

          Default: Secret

          Allowed values: Secret

        • spec.provisioning.userDataRef.name
          string

          Required value

          Name of the resource with the cloud-init scenario.

          Minimal length: 1

    • spec.runPolicy
      string

      Defines the VM startup policy:

      • AlwaysOn: Once created, the VM is always in a running state, even if shut down by the OS.
      • AlwaysOff: Once created, the VM is always in a powered-off state.
      • Manual: Once created, the VM is switched off. Switching on and off is controlled via API services or the OS.
      • AlwaysOnUnlessStoppedManually: Once created, the VM is always in a running state. It can be switched off by the OS or using the following command for the d8 utility: d8 v stop <vm_name>.

      Default: AlwaysOnUnlessStoppedManually

      Allowed values: AlwaysOn, AlwaysOff, Manual, AlwaysOnUnlessStoppedManually

    • spec.terminationGracePeriodSeconds
      integer
      Grace period after sending a SIGTERM signal to shut down a VM. Once the grace period expires, the VM is forcibly terminated.

      Default: 60

    • spec.tolerations
      array of objects
      The same as in the pod parameter spec.tolerations in Kubernetes.
      • spec.tolerations.effect
        string
      • spec.tolerations.key
        string
      • spec.tolerations.operator
        string
      • spec.tolerations.tolerationSeconds
        integer
      • spec.tolerations.value
        string
    • spec.topologySpreadConstraints
      array of objects
      The same as in the pod parameter spec.topologySpreadConstraints in Kubernetes.
      • spec.topologySpreadConstraints.labelSelector
        object
        • spec.topologySpreadConstraints.labelSelector.matchExpressions
          array of objects
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.key
            string
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.operator
            string
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.values
            array of strings
            • spec.topologySpreadConstraints.labelSelector.matchExpressions.values.Element of the array
              string
        • spec.topologySpreadConstraints.labelSelector.matchLabels
          object
      • spec.topologySpreadConstraints.maxSkew
        integer
      • spec.topologySpreadConstraints.topologyKey
        string
      • spec.topologySpreadConstraints.whenUnsatisfiable
        string
    • spec.usbDevices
      array of objects
      List of USB devices to attach to the virtual machine. Devices are referenced by name of USBDevice resource in the same namespace.
      • spec.usbDevices.name
        string
        The name of USBDevice resource in the same namespace.

        Minimal length: 1

    • spec.virtualMachineClassName
      string

      Required value

      Name of the VirtualMachineClass resource describing the requirements for a virtual CPU, memory, and the resource allocation policy.

      Minimal length: 1

    • spec.virtualMachineIPAddressName
      string

      Name for the associated virtualMachineIPAddress resource.

      Specified when it is necessary to use a previously created IP address of a VM.

      If not explicitly specified, by default a virtualMachineIPAddress resource is created with a name similar to the VM resource (.metadata.name).

      Minimal length: 1

  • status
    object
    • status.blockDeviceRefs
      array of objects
      List of block devices attached to the VM.
      • status.blockDeviceRefs.attached
        boolean
        Block device is attached to the virtual machine.
      • status.blockDeviceRefs.hotplugged
        boolean
        Block device is attached via a hot-plug connection.
      • status.blockDeviceRefs.kind
        string
        Block device type.

        Allowed values: ClusterVirtualImage, VirtualImage, VirtualDisk

      • status.blockDeviceRefs.name
        string
        Name of the existing resource.
      • status.blockDeviceRefs.size
        string
        Size of the attached block device.
      • status.blockDeviceRefs.target
        string
        Name of the attached block device.

        Example:

        target: sda
        
      • status.blockDeviceRefs.virtualMachineBlockDeviceAttachmentName
        string
        Name of the VirtualMachineBlockDeviceAttachment resource that defines the hot-plug disk connection to the VM.
    • status.conditions
      array of objects
      State of the running virtual machine.
      • status.conditions.lastTransitionTime
        string
        Last time the condition transitioned from one status to another.
      • status.conditions.message
        string
        Human-readable message with details about the last transition.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        .metadata.generation the condition was based upon. For instance, if .metadata.generation is currently 12 but .status.conditions[x].observedGeneration is 9, the condition is considered outdated.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Brief reason for the condition’s last transition.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Condition status. Possible values: True, False, or Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.guestOSInfo
      object

      Guest OS information obtained from the QEMU Guest Agent. The agent must installed in advance.

      More about the agent: https://www.qemu.org/docs/master/interop/qemu-ga.html.

    • status.ipAddress
      string
      IP address of the VM.
    • status.migrationState
      object
      Details on the VM migration.
      • status.migrationState.endTimestamp
        string
        Time when the migration ends.
      • status.migrationState.result
        string
        Migration result: Succeeded or Failed.

        Allowed values: ‘’, Succeeded, Failed

      • status.migrationState.source
        object
        • status.migrationState.source.node
          string
          Name of the node where the VM is currently running.
        • status.migrationState.source.pod
          string
          Name of the pod where the VM is currently running.
      • status.migrationState.startTimestamp
        string
        Time when the migration starts.
      • status.migrationState.target
        object
        • status.migrationState.target.node
          string
          Name of the node where the VM is currently migrating to.
        • status.migrationState.target.pod
          string
          Name of the module where the VM is currently migrating to."
    • status.networks
      array of objects
      List of network interfaces attached to the VM.
      • status.networks.id
        integer
        The ID of the network interface.
      • status.networks.macAddress
        string
        The MAC address of the network interface.
      • status.networks.name
        string
        The name of the network interface.
      • status.networks.type
        string
        The type of the network interface.
      • status.networks.virtualMachineMACAddressName
        string
        The name of the VirtualMachineMACAddress resource that is associated with the network interface.
    • status.nodeName
      string
      Name of the node where the VM is currently running.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      The current phase of a virtual machine:

      • Scheduling: The VM has been scheduled for provisioning on cluster nodes.
      • Pending: The VM startup is in progress.
      • Running: The VM is running.
      • Degraded: An error occurred during the VM startup or while it was running.
      • Terminating: The VM is currently shutting down.
      • Stopped: The VM is stopped.

      Allowed values: Pending, Running, Degraded, Terminating, Stopped, Stopping, Starting, Migrating, Pause

    • status.resources
      object
      Statistics on used resources.
      • status.resources.cpu
        object
        Statistics on used CPU resources.
        • status.resources.cpu.coreFraction
          string
          Current value of coreFraction.
        • status.resources.cpu.cores
          integer

          Required value

          Current number of the VM cores.
        • status.resources.cpu.requestedCores
          integer or string
          Requested cores.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.cpu.runtimeOverhead
          integer or string
          CPU overhead required by the runtime.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.cpu.topology
          object
          Information on the current CPU topology.
          • status.resources.cpu.topology.coresPerSocket
            integer

            Required value

            Current number of CPU cores per socket.
          • status.resources.cpu.topology.sockets
            integer

            Required value

            Current number of CPU sockets.
      • status.resources.memory
        object
        Memory usage statistics.
        • status.resources.memory.runtimeOverhead
          integer or string
          Memory overhead required by the runtime.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.memory.size
          integer or string

          Required value

          Current size of the VM memory.

          Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

    • status.restartAwaitingChanges
      array of objects
      List of configuration changes that require a VM reboot to be applied.
    • status.stats
      object
      Virtual machine statistics.
      • status.stats.launchTimeDuration
        object
        Details on the launch.
        • status.stats.launchTimeDuration.guestOSAgentStarting
          string
          Waiting time for the guestOsAgent to start. running -> running with guestOSAgent.
        • status.stats.launchTimeDuration.virtualMachineStarting
          string
          Waiting time for the virtual machine to start. starting -> running.
        • status.stats.launchTimeDuration.waitingForDependencies
          string
          Waiting time for dependent resources. pending -> starting.
      • status.stats.phasesTransitions
        array of objects
        Phase history.
        • status.stats.phasesTransitions.phase
          string
          Virtual machine phase.

          Allowed values: Pending, Running, Degraded, Terminating, Stopped, Stopping, Starting, Migrating, Pause

        • status.stats.phasesTransitions.timestamp
          string
          Time of transition to this phase.
    • status.usbDevices
      array of objects
      List of USB devices attached to the virtual machine.
      • status.usbDevices.address
        object
        USB address inside the virtual machine.
        • status.usbDevices.address.bus
          integer
          USB bus number (always 0 for the main USB controller).
        • status.usbDevices.address.port
          integer
          USB port number on the selected bus.
      • status.usbDevices.attached
        boolean
        The USB device is attached to the virtual machine.
      • status.usbDevices.hotplugged
        boolean
        USB device is attached via hot plug connection.
      • status.usbDevices.name
        string
        The name of USBDevice resource.
      • status.usbDevices.ready
        boolean
        USB device is ready to use.
    • status.versions
      object
      Hypervisor versions.
      • status.versions.libvirt
        string
        Libvirt version.
      • status.versions.qemu
        string
        Qemu version.
    • status.virtualMachineIPAddressName
      string
      Name of the VirtualMachineIPAddressName resource with an IP address of the VM.
    • status.virtualMachinePods
      array of objects
      List of virtual machine pods.
      • status.virtualMachinePods.active
        boolean
        Current working pod.
      • status.virtualMachinePods.name
        string
        Pod name.

VirtualMachineSnapshotOperation

Scope: Namespaced
Version: v1alpha2

VirtualMachineSnapshotOperation enables declarative management of virtual machine snapshot state changes.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.createVirtualMachine
      object
      CreateVirtualMachine defines the clone operation.
      • spec.createVirtualMachine.customization
        object
        Customization defines customization options for cloning.
        • spec.createVirtualMachine.customization.namePrefix
          string
          NamePrefix adds a prefix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
        • spec.createVirtualMachine.customization.nameSuffix
          string
          NameSuffix adds a suffix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
      • spec.createVirtualMachine.mode
        string

        Required value

        SnapshotOperationMode defines the kind of the clone operation.

        • DryRun: DryRun run without any changes. Compatibility shows in status.
        • Strict: Strict clone as is in the snapshot.
        • BestEffort: BestEffort process without deleted external missing dependencies.

        Allowed values: DryRun, Strict, BestEffort

      • spec.createVirtualMachine.nameReplacement
        array of objects
        NameReplacement defines rules for renaming resources during cloning.
        • spec.createVirtualMachine.nameReplacement.from
          object
          Selector to choose resources for name replacement.
          • spec.createVirtualMachine.nameReplacement.from.kind
            string
            Kind of a resource to rename.

            Minimal length: 1

          • spec.createVirtualMachine.nameReplacement.from.name
            string

            Required value

            Current name of a resource to rename.

            Minimal length: 1

        • spec.createVirtualMachine.nameReplacement.to
          string
          New resource name.

          Minimal length: 1

    • spec.type
      string

      Required value

      Type of the operation to execute on a virtual machine:

      • CreateVirtualMachine: CreateVirtualMachine the virtual machine to a new virtual machine.

      Allowed values: CreateVirtualMachine

    • spec.virtualMachineSnapshotName
      string

      Required value

      Name of the virtual machine snapshot the operation is performed for.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      The latest detailed observations of the VirtualMachineSnapshotOperation resource.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      Current phase of the resource:

      • Pending: The operation is queued for execution.
      • InProgress: The operation is in progress.
      • Completed: The operation has been completed successfully.
      • Failed: The operation failed. For details, refer to the conditions field and events.
      • Terminating: The operation is being deleted.

      Allowed values: Pending, InProgress, Completed, Failed, Terminating

    • status.resources
      array of objects
      Resources contains the list of resources that are affected by the snapshot operation.
      • status.resources.apiVersion
        string
        API version of the resource.
      • status.resources.kind
        string
        Kind of the resource.
      • status.resources.message
        string
        Message about the resource.
      • status.resources.name
        string
        Name of the resource.
      • status.resources.status
        string
        Status of the resource.

        Allowed values: InProgress, Completed, Failed

VirtualMachineSnapshot

Scope: Namespaced
Version: v1alpha2

VirtualMachineSnapshot provides a resource for creating snapshots of virtual machines.
  • apiVersion
    string
    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    string
    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    object
  • spec
    object
    • spec.keepIPAddress
      string

      Required value

      KeepIPAddress defines whether to keep the IP address of a virtual machine or not:

      • Always: When creating a snapshot, the virtual machine’s IP address will be converted from Auto to Static and saved.
      • Never: When creating a snapshot, the virtual machine’s IP address will not be converted.

      Default: Always

      Allowed values: Always, Never

    • spec.requiredConsistency
      boolean

      Required value

      Create a snapshot of a virtual machine only if it is possible to freeze the machine through the agent.

      If set to true, the virtual machine snapshot will be created only in the following cases:

      • When the virtual machine is powered off.
      • When the virtual machine has an agent, and the freeze operation was successful.

      Default: true

    • spec.virtualMachineName
      string

      Required value

      Name of the virtual machine to take a snapshot of.

      Minimal length: 1

  • status
    object
    • status.conditions
      array of objects
      The latest detailed observations of the VirtualMachineSnapshot resource.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Length: 1..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.consistent
      boolean
      Whether a virtual machine snapshot is consistent.
    • status.observedGeneration
      integer
      Resource generation last processed by the controller.
    • status.phase
      string

      Required value

      VirtualMachineSnapshotPhase defines the current status of a resource:

      • Pending: The resource has been created and is on a waiting queue.
      • InProgress: A virtual machine snapshot is being created.
      • Ready: A snapshot has been created successfully, and now it’s available to use.
      • Failed: An error occurred when creating a virtual machine snapshot.
      • Terminating: The resource is being deleted.

      Allowed values: Pending, InProgress, Ready, Failed, Terminating

    • status.resources
      array of objects
      List of snapshot resources.
      • status.resources.apiVersion
        string
        API version of the resource.
      • status.resources.kind
        string
        Kind of the resource.
      • status.resources.name
        string
        Name of the resource.
    • status.virtualDiskSnapshotNames
      array of strings
      List of VirtualDiskSnapshot names for the snapshots taken from the virtual disks of the associated virtual machine.
    • status.virtualMachineSnapshotSecretName
      string
      Name of the underlying Secret created for virtual machine snapshotting.