This feature is actively developed. It might significantly change in the future.

ClusterVirtualMachineImage

Scope: Cluster
Version: v1alpha1

Defines remotely available images on cluster level.

  • apiVersionstring
  • kindstring
  • metadataobject
  • specobject

    The desired state of ClusterVirtualMachineImage.

    • spec.remoteobject

      The source for VirtualMachineImage, this can be HTTP, S3, Registry or an existing PVC.

      • spec.remote.blankobject

        The parameters to create a new raw blank image for the PVC.

      • spec.remote.httpobject

        Can be either an HTTP or HTTPS endpoint, with an optional basic auth username and password, and an optional ConfigMap containing additional CAs.

        • spec.remote.http.certConfigMapstring

          A ConfigMap reference, containing a Certificate Authority(CA) public key, and a Base64 encoded PEM certificate.

        • spec.remote.http.extraHeadersarray of strings

          A list of strings containing extra headers to include with HTTP transfer requests.

        • spec.remote.http.secretExtraHeadersarray of strings

          A list of Secret references, each containing an extra HTTP header that may include sensitive information.

        • spec.remote.http.secretRefstring

          A reference to the Secret.

          The Secret should contains accessKeyId (username) Base64 encoded, and secretKey (password) also Base64 encoded.

        • spec.remote.http.urlstring

          Required value

          The URL of the HTTP(S) endpoint.

      • spec.remote.pvcobject

        Parameters to create a Data Volume from an existing PVC.

        • spec.remote.pvc.namestring

          Required value

          The name of the source PVC.

        • spec.remote.pvc.namespacestring

          Required value

          The namespace of the source PVC.

      • spec.remote.registryobject

        The parameters to create a Data Volume from an S3 source.

        • spec.remote.registry.certConfigMapstring

          A reference to the Registry certs.

        • spec.remote.registry.secretRefstring

          A reference to the Secret needed to access the Registry source.

        • spec.remote.registry.urlstring

          URL is the url of the registry source (starting with the scheme: docker, oci-archive).

      • spec.remote.s3object

        Parameters to create a Data Volume from an S3 source.

        • spec.remote.s3.certConfigMapstring

          A reference to the ConfigMap, containing a Certificate Authority(CA) public key, and a Base64 encoded PEM certificate.

        • spec.remote.s3.secretRefstring

          A reference to the Secret needed to access the S3 source.

        • spec.remote.s3.urlstring

          Required value

          URL of the S3 source.

    • spec.sourceobject

      Contains enough information to let locate the typed referenced object in the cluster.

      • spec.source.apiGroupstring

        The Group for the resource being referenced.

        If it is not specified, the specified kind must be in the core API group. For any other third-party types, apiGroup is required.

      • spec.source.kindstring

        Required value

        The type of resource being referenced.

      • spec.source.namestring

        Required value

        The name of resource being referenced.

      • spec.source.namespacestring

        The Namespace of resource being referenced.

VirtualMachineDisk

Scope: Namespaced
Version: v1alpha1

The resource that defines disk for virtual machine.

  • apiVersionstring
  • kindstring
  • metadataobject
  • specobject

    The desired state of VirtualMachineDisk.

    • spec.sizeinteger or string

      The size of VirtualMachineDisk.

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

    • spec.sourceobject

      Contains enough information to let locate the typed referenced object inside the same namespace.

      • spec.source.apiGroupstring

        APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

      • spec.source.kindstring

        Required value

        The type of resource being referenced.

      • spec.source.namestring

        Required value

        The name of resource being referenced.

    • spec.storageClassNamestring

      The storage class for VirtualMachineDisk.

VirtualMachineIPAddressClaim

Scope: Namespaced
Version: v1alpha1

The resource that defines IP address claim for virtual machine.

  • apiVersionstring
  • kindstring
  • metadataobject
  • specobject

    The desired state of VirtualMachineIPAddressClaim.

    • spec.addressstring

      The requested IP address. If omittedthe next available IP address will be assigned.

    • spec.leaseNamestring

      The issued VirtualMachineIPAddressLease, managed automatically.

    • spec.staticboolean

      Represents that claim should not be removed with virtual machine after the first use.

      Default: true

VirtualMachineIPAddressLease

Scope: Cluster
Version: v1alpha1

The resource that defines fact of issued lease for VirtualMachineIPAddressClaim.

  • apiVersionstring
  • kindstring
  • metadataobject
  • specobject

    The desired state of VirtualMachineIPAddressLease.

    • spec.claimRefobject

      The link to existing VirtualMachineIPAddressClaim.

      • spec.claimRef.namestring

        Required value

        The name of the referenced VirtualMachineIPAddressClaim.

      • spec.claimRef.namespacestring

        Required value

        The Namespace of the referenced VirtualMachineIPAddressClaim.

VirtualMachine

Scope: Namespaced
Version: v1alpha1

Defines virtual machine.

  • apiVersionstring
  • kindstring
  • metadataobject
  • specobject

    The desired state of VirtualMachine.

    • spec.affinityobject

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

      If the parameter is omitted, it will be determined automatically.

      Format: the standard affinity rules. Instance pods inherit this field as is.

      • spec.affinity.nodeAffinityobject
        • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecutionarray of objects
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preferenceobject

            Required value

            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressionsarray of objects
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.keystring

                Required value

              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operatorstring

                Required value

              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.valuesarray of strings
            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFieldsarray of objects
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.keystring

                Required value

              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operatorstring

                Required value

              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.valuesarray of strings
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weightinteger

            Required value

        • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecutionobject
          • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTermsarray of objects

            Required value

            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressionsarray of objects
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.keystring

                Required value

              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operatorstring

                Required value

              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.valuesarray of strings
            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFieldsarray of objects
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.keystring

                Required value

              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operatorstring

                Required value

              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.valuesarray of strings
      • spec.affinity.podAffinityobject
        • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecutionarray of objects
          • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTermobject

            Required value

            • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelectorobject
              • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressionsarray of objects
                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.keystring

                  Required value

                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operatorstring

                  Required value

                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.valuesarray of strings
              • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabelsobject
            • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelectorobject
              • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressionsarray of objects
                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.keystring

                  Required value

                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operatorstring

                  Required value

                • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.valuesarray of strings
              • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabelsobject
            • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespacesarray of strings
            • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKeystring

              Required value

          • spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.weightinteger

            Required value

        • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecutionarray of objects
          • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelectorobject
            • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressionsarray of objects
              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.keystring

                Required value

              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operatorstring

                Required value

              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.valuesarray of strings
            • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabelsobject
          • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelectorobject
            • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressionsarray of objects
              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.keystring

                Required value

              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operatorstring

                Required value

              • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.valuesarray of strings
            • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabelsobject
          • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespacesarray of strings
          • spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeystring

            Required value

      • spec.affinity.podAntiAffinityobject
        • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecutionarray of objects
          • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTermobject

            Required value

            • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelectorobject
              • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressionsarray of objects
                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.keystring

                  Required value

                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operatorstring

                  Required value

                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.valuesarray of strings
              • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabelsobject
            • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelectorobject
              • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressionsarray of objects
                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.keystring

                  Required value

                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operatorstring

                  Required value

                • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.valuesarray of strings
              • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabelsobject
            • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespacesarray of strings
            • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKeystring

              Required value

          • spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weightinteger

            Required value

        • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecutionarray of objects
          • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelectorobject
            • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressionsarray of objects
              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.keystring

                Required value

              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operatorstring

                Required value

              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.valuesarray of strings
            • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabelsobject
          • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelectorobject
            • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressionsarray of objects
              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.keystring

                Required value

              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operatorstring

                Required value

              • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.valuesarray of strings
            • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabelsobject
          • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespacesarray of strings
          • spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeystring

            Required value

    • spec.bootDiskobject

      The boot disk for virtual machine.

      • spec.bootDisk.autoDeleteboolean

        Enables automatic removal of associated boot disk after removing the virtual machine.

      • spec.bootDisk.busstring

        The type of disk device to emulate.

        Supported values: virtio, sata, scsi, usb.

      • spec.bootDisk.namestring

        Name for virtual machine boot disk.

        If not specified defaults to {vm name}-boot.

      • spec.bootDisk.sizeinteger or string

        Required value

        The size for newly created disk.

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

      • spec.bootDisk.sourceobject

        The source of a boot disk.

        If specified, the new disk will be created.

        • spec.bootDisk.source.apiGroupstring

          APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

        • spec.bootDisk.source.kindstring

          Required value

          The type of resource being referenced.

        • spec.bootDisk.source.namestring

          Required value

          The name of resource being referenced.

      • spec.bootDisk.storageClassNamestring

        The storage class for newly created disk.

    • spec.cloudInitobject

      A cloud-init nocloud user data source. More info…

      • spec.cloudInit.networkDatastring

        Contains NoCloud inline cloud-init networkdata.

      • spec.cloudInit.networkDataBase64string

        Contains NoCloud cloud-init networkdata as a Base64 encoded string.

      • spec.cloudInit.networkDataSecretRefobject

        References a K8s secret that contains NoCloud networkdata.

        • spec.cloudInit.networkDataSecretRef.namestring

          Name of the referent. More info…

      • spec.cloudInit.secretRefobject

        References a K8s secret that contains NoCloud userdata.

        • spec.cloudInit.secretRef.namestring

          Name of the referent. More info…

      • spec.cloudInit.userDatastring

        Contains NoCloud inline cloud-init userdata.

      • spec.cloudInit.userDataBase64string

        Contains NoCloud cloud-init userdata as a Base64 encoded string.

    • spec.diskAttachmentsarray of objects

      Represents a lits of additional disks that should be attached to the virtual machine.

      The source of existing disk.

      • spec.diskAttachments.busstring

        The type of disk device to emulate.

        Supported values: virtio, sata, scsi, usb.

      • spec.diskAttachments.hotpluggableboolean

        Indicates whether the volume can be hotplugged and hotunplugged.

      • spec.diskAttachments.namestring

        Required value

        The name of the Disk in the same Namespace.

    • spec.ipAddressClaimNamestring

      The name for associated VirtualMahcineIPAddressClaim resource.

      If not specified, defaults to {vm name}.

    • spec.nodeSelectorobject

      The same as in the pods spec.nodeSelector parameter in Kubernetes.

      If the parameter is omitted, it will be determined automatically.

      Format: the standard nodeSelector list. Instance pods inherit this field as is.

    • spec.priorityClassNamestring

      Indicates the pod’s priority of virtual machine.

    • spec.resourcesobject

      A set of (resource name, quantity) pairs.

    • spec.runningboolean

      The requested running state of the VirtualMachineInstance mutually exclusive with Running.

    • spec.sshPublicKeystring

      The SSH public key that should be automatically added to user inside the VM.

      This option requires cloud-init in the virtual machine.

    • spec.tolerationsarray of objects

      The same as in the pods spec.tolerations parameter in Kubernetes;

      If the parameter is omitted, it will be determined automatically.

      Format: the standard toleration list. Instance pods inherit this field as is.

      • spec.tolerations.effectstring
      • spec.tolerations.keystring
      • spec.tolerations.operatorstring
      • spec.tolerations.tolerationSecondsinteger
      • spec.tolerations.valuestring
    • spec.topologySpreadConstraintsarray of objects

      The same as in the pods spec.topologySpreadConstraints parameter in Kubernetes;

      If the parameter is omitted, it will be determined automatically.

      Format: the standard topologySpreadConstraint list. Instance pods inherit this field as is.

      • spec.topologySpreadConstraints.labelSelectorobject
        • spec.topologySpreadConstraints.labelSelector.matchExpressionsarray of objects
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.keystring

            Required value

          • spec.topologySpreadConstraints.labelSelector.matchExpressions.operatorstring

            Required value

          • spec.topologySpreadConstraints.labelSelector.matchExpressions.valuesarray of strings
        • spec.topologySpreadConstraints.labelSelector.matchLabelsobject
      • spec.topologySpreadConstraints.matchLabelKeysarray of strings
      • spec.topologySpreadConstraints.maxSkewinteger

        Required value

      • spec.topologySpreadConstraints.minDomainsinteger
      • spec.topologySpreadConstraints.nodeAffinityPolicystring
      • spec.topologySpreadConstraints.nodeTaintsPolicystring
      • spec.topologySpreadConstraints.topologyKeystring

        Required value

      • spec.topologySpreadConstraints.whenUnsatisfiablestring

        Required value

    • spec.userNamestring

      The username that should be automatically created inside the VM.

      This option requires cloud-init in the virtual machine.