The module lifecycle stage: General 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.
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.dataSource
Required value
Origin of the image.-
objectspec.dataSource.containerImageUse 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
caBundlefield.-
stringspec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg== -
stringspec.dataSource.containerImage.image
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 -
objectspec.dataSource.containerImage.imagePullSecret
-
stringspec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials.
-
stringspec.dataSource.containerImage.imagePullSecret.namespaceNamespace where
imagePullSecretis located.
-
-
-
objectspec.dataSource.http
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.
-
stringspec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg== -
objectspec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
stringspec.dataSource.http.checksum.md5
Length:
32..32Pattern:
^[0-9a-fA-F]{32}$Example:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
stringspec.dataSource.http.checksum.sha256
Length:
64..64Pattern:
^[0-9a-fA-F]{64}$Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
stringspec.dataSource.http.url
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
-
objectspec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
-
stringspec.dataSource.objectRef.kind
Required value
Kind of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot -
stringspec.dataSource.objectRef.name
Required value
Name of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Minimal length:
1 -
stringspec.dataSource.objectRef.namespaceNamespace where the VirtualImage, VirtualDisk or VirtualDiskSnapshot resource is located.
-
-
stringspec.dataSource.type
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
-
-
-
objectstatus
-
booleanstatus.cdromDefines whether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
-
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.downloadSpeedImage download speed from an external source. Appears only during the
Provisioningphase.-
stringstatus.downloadSpeed.avgAverage download speed.
Example:
avg: 1 Mbps -
stringstatus.downloadSpeed.avgBytesAverage download speed in bytes per second.
Example:
avgBytes: 1012345 -
stringstatus.downloadSpeed.currentCurrent download speed.
Example:
current: 5 Mbps -
stringstatus.downloadSpeed.currentBytesCurrent download speed in bytes per second.
Example:
currentBytes: 5123456
-
-
stringstatus.formatDiscovered image format.
-
objectstatus.imageUploadURLs
-
stringstatus.imageUploadURLs.externalCommand to upload the image using
Ingressfrom outside the cluster. -
stringstatus.imageUploadURLs.inClusterCommand to upload the image using
Servicewithin the cluster.
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.progressProgress of copying an image from the source to DVCR. Appears only during the `Provisioning’ phase.
-
objectstatus.sizeDiscovered image size data.
-
stringstatus.size.storedImage size in human-readable format.
Example:
stored: 199M -
stringstatus.size.storedBytesImage size in bytes.
Example:
storedBytes: 199001234 -
stringstatus.size.unpackedUnpacked image size in human-readable format.
Example:
unpacked: 1G -
stringstatus.size.unpackedBytesUnpacked image size in bytes.
Example:
unpackedBytes: 1000000234
-
-
stringstatus.sourceUIDUID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the cluster virtual image.
-
objectstatus.target
-
stringstatus.target.registryURLCreated image in DVCR.
Example:
registryURL: dvcr.<dvcr-namespace>.svc/cvi/<image-name>:latest
-
-
stringstatus.uploadCommandDeprecated. Use
imageUploadURLsinstead. -
array of stringsstatus.usedInNamespacesDisplays the list of namespaces where the image is currently used.
-
NodeUSBDevice
Scope: Cluster
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
stringspec.assignedNamespaceAssignedNamespace 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:
‘’
-
-
objectstatus
-
objectstatus.attributesAll device attributes obtained through DRA for the device.
-
stringstatus.attributes.bcdBCD (Binary Coded Decimal) device version.
-
stringstatus.attributes.busUSB bus number.
-
stringstatus.attributes.deviceNumberUSB device number on the bus.
-
stringstatus.attributes.devicePathDevice path in the filesystem.
-
integerstatus.attributes.majorMajor device number.
-
stringstatus.attributes.manufacturerDevice manufacturer name.
-
integerstatus.attributes.minorMinor device number.
-
stringstatus.attributes.nameDevice name.
-
stringstatus.attributes.nodeNameNode name where the device is located.
-
stringstatus.attributes.productDevice product name.
-
stringstatus.attributes.productIDUSB product ID in hexadecimal format.
-
stringstatus.attributes.serialDevice serial number.
-
integerstatus.attributes.speedDevice speed.
-
stringstatus.attributes.vendorIDUSB vendor ID in hexadecimal format.
-
-
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
stringstatus.nodeNameName of the node where the USB device is located.
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
USBDevice
Scope: Namespaced
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectstatusObserved state of
USBDevice.-
objectstatus.attributesAll device attributes obtained through DRA for the device.
-
stringstatus.attributes.bcdBCD (Binary Coded Decimal) device version.
-
stringstatus.attributes.busUSB bus number.
-
stringstatus.attributes.deviceNumberUSB device number on the bus.
-
stringstatus.attributes.devicePathDevice path in the filesystem.
-
integerstatus.attributes.majorMajor device number.
-
stringstatus.attributes.manufacturerDevice manufacturer name.
-
integerstatus.attributes.minorMinor device number.
-
stringstatus.attributes.nameDevice name.
-
stringstatus.attributes.nodeNameNode name where the device is located.
-
stringstatus.attributes.productDevice product name.
-
stringstatus.attributes.productIDUSB product ID in hexadecimal format.
-
stringstatus.attributes.serialDevice serial number.
-
integerstatus.attributes.speedDevice speed.
-
stringstatus.attributes.vendorIDUSB vendor ID in hexadecimal format.
-
-
array of objectsstatus.conditionsLatest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
stringstatus.nodeNameName of the node where the USB device is located.
-
integerstatus.observedGenerationResource 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.
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.dataSource
-
objectspec.dataSource.containerImageUse 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
caBundlefield.-
stringspec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg== -
stringspec.dataSource.containerImage.image
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 -
objectspec.dataSource.containerImage.imagePullSecret
-
stringspec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials, which must be located in the same namespace.
-
-
-
objectspec.dataSource.http
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.
-
stringspec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg== -
objectspec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
stringspec.dataSource.http.checksum.md5
Length:
32..32Pattern:
^[0-9a-fA-F]{32}$Example:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
stringspec.dataSource.http.checksum.sha256
Length:
64..64Pattern:
^[0-9a-fA-F]{64}$Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
stringspec.dataSource.http.url
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
-
objectspec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource to create a disk.
-
stringspec.dataSource.objectRef.kind
Required value
Kind of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDiskSnapshot -
stringspec.dataSource.objectRef.name
Required value
Name of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.Minimal length:
1
-
-
stringspec.dataSource.type
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
-
-
objectspec.persistentVolumeClaimSettings for creating PVCs to store the disk.
-
integer or stringspec.persistentVolumeClaim.size
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.dataSourcesection 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]+))))?$ -
stringspec.persistentVolumeClaim.storageClassName
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
VolumeBindingModeparameter 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). TheReadWriteManydisks support multiple access, which enables a “live” migration of virtual machines. In contrast, theReadWriteOncedisks, 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):
Block+ReadWriteManyFileSystem+ReadWriteManyBlock+ReadWriteOnceFileSystem+ReadWriteOnce
-
-
-
objectstatus
-
array of objectsstatus.attachedToVirtualMachinesList of VirtualMachines that use the disk.
Example:
attachedToVirtualMachines: - name: VM100-
booleanstatus.attachedToVirtualMachines.mountedFlag indicating that VirtualDisk is currently being used by this attached VirtualMachine.
-
stringstatus.attachedToVirtualMachines.nameName of attached VirtualMachine.
-
-
stringstatus.capacityRequested PVC capacity in human-readable format.
Example:
capacity: 50G -
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.downloadSpeedImage download speed from an external source. Appears only during the
Provisioningphase.-
stringstatus.downloadSpeed.avgAverage download speed.
Example:
avg: 1 Mbps -
stringstatus.downloadSpeed.avgBytesAverage download speed in bytes per second.
Example:
avgBytes: 1012345 -
stringstatus.downloadSpeed.currentCurrent download speed.
Example:
current: 5 Mbps -
stringstatus.downloadSpeed.currentBytesCurrent download speed in bytes per second.
Example:
currentBytes: 5123456
-
-
objectstatus.imageUploadURLs
-
stringstatus.imageUploadURLs.externalCommand to upload the image using
Ingressfrom outside the cluster. -
stringstatus.imageUploadURLs.inClusterCommand to upload the image using
Servicewithin the cluster.
-
-
objectstatus.migrationStateMigration information.
-
stringstatus.migrationState.endTimestamp
-
stringstatus.migrationState.message
-
stringstatus.migrationState.resultVirtualDiskMigrationResult is the result of the VirtualDisk migration.
Allowed values:
Succeeded,Failed -
stringstatus.migrationState.sourcePVCSource PersistentVolumeClaim name.
-
stringstatus.migrationState.startTimestamp
-
stringstatus.migrationState.targetPVCTarget PersistentVolumeClaim name.
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.progressProgress of copying an image from a source to PVC. Appears only during the `Provisioning’ phase.
-
stringstatus.sourceUIDUID 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.
-
objectstatus.statsVirtualDisk statistics.
-
objectstatus.stats.creationDurationWaiting time for the virtual disk creation.
-
stringstatus.stats.creationDuration.dvcrProvisioningDuration of the loading into DVCR.
-
stringstatus.stats.creationDuration.totalProvisioningDuration of the resource creation from the moment dependencies are ready until the resource transitions to the Ready state.
-
stringstatus.stats.creationDuration.waitingForDependenciesWaiting time for dependent resources.
-
-
-
stringstatus.storageClassNameName of the StorageClass used by the PersistentVolumeClaim if
Kubernetesstorage type is used. -
objectstatus.target
-
stringstatus.target.persistentVolumeClaimNameCreated PersistentVolumeClaim name for the Kubernetes storage.
-
-
stringstatus.uploadCommandDeprecated. Use
ImageUploadURLsinstead.
-
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.
-
objectspec
-
booleanspec.requiredConsistency
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 -
stringspec.virtualDiskName
Required value
Virtual disk name the snapshot is created for.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsLast confirmed status of the resource.
-
stringstatus.conditions.lastTransitionTimeLast time the condition transitioned from one status to another.
-
stringstatus.conditions.messageHuman-readable message with details about the last transition.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
.metadata.generationthe condition was based upon. For instance, if.metadata.generationis currently12but.status.conditions[x].observedGenerationis9, the condition is considered outdated.Allowed values:
0 <= X -
stringstatus.conditions.reasonBrief reason for the condition’s last transition.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusCondition status. Possible values:
True,False, orUnknown.Allowed values:
True,False,Unknown -
stringstatus.conditions.typeCondition type.
Maximum length:
316Pattern:
^([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])$
-
-
booleanstatus.consistentVirtual disk snapshot is consistent.
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.volumeSnapshotNameName 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.
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.dataSource
Required value
-
objectspec.dataSource.containerImageUse 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
caBundlefield.-
stringspec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg== -
stringspec.dataSource.containerImage.image
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 -
objectspec.dataSource.containerImage.imagePullSecret
-
stringspec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials, which must be located in the same namespace.
-
-
-
objectspec.dataSource.http
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.
-
stringspec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg== -
objectspec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
stringspec.dataSource.http.checksum.md5
Length:
32..32Pattern:
^[0-9a-fA-F]{32}$Example:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
stringspec.dataSource.http.checksum.sha256
Length:
64..64Pattern:
^[0-9a-fA-F]{64}$Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
stringspec.dataSource.http.url
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
-
objectspec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
-
stringspec.dataSource.objectRef.kind
Required value
Kind of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot -
stringspec.dataSource.objectRef.name
Required value
Name of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Minimal length:
1
-
-
stringspec.dataSource.type
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
-
-
objectspec.persistentVolumeClaimSettings for creating PVCs to store an image with the storage type
PersistentVolumeClaim.-
stringspec.persistentVolumeClaim.storageClassName
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
PersistentVolumeClaimstorage type, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.
-
-
stringspec.storage
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. UsePersistentVolumeClaiminstead.
Default:
ContainerRegistryAllowed values:
ContainerRegistry,Kubernetes,PersistentVolumeClaim
-
-
objectstatus
-
booleanstatus.cdromWhether the image is in a format that needs to be mounted as a CD-ROM drive, such as iso and so on.
-
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.downloadSpeedImage download speed from an external source. Appears only during the
Provisioningphase.-
stringstatus.downloadSpeed.avgAverage download speed.
Example:
avg: 1 Mbps -
stringstatus.downloadSpeed.avgBytesAverage download speed in bytes per second.
Example:
avgBytes: 1012345 -
stringstatus.downloadSpeed.currentCurrent download speed.
Example:
current: 5 Mbps -
stringstatus.downloadSpeed.currentBytesCurrent download speed in bytes per second.
Example:
currentBytes: 5123456
-
-
stringstatus.formatDiscovered image format.
-
objectstatus.imageUploadURLs
-
stringstatus.imageUploadURLs.externalCommand to upload the image using
Ingressfrom outside the cluster. -
stringstatus.imageUploadURLs.inClusterCommand to upload the image using
Servicewithin the cluster.
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.progressProgress of copying an image from a source to DVCR.
-
objectstatus.sizeDiscovered image size data.
-
stringstatus.size.storedImage size in human-readable format.
Example:
stored: 199M -
stringstatus.size.storedBytesImage size in bytes.
Example:
storedBytes: 199001234 -
stringstatus.size.unpackedUnpacked image size in human-readable format.
Example:
unpacked: 1G -
stringstatus.size.unpackedBytesUnpacked image size in bytes.
Example:
unpackedBytes: 1000000234
-
-
stringstatus.sourceUIDUID of the source (VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot) used when creating the virtual image.
-
stringstatus.storageClassNameName of the StorageClass used by the PersistentVolumeClaim if
Kubernetesstorage type is used. -
objectstatus.target
-
stringstatus.target.persistentVolumeClaimNameCreated PersistentVolumeClaim name for the PersistentVolumeClaim storage.
-
stringstatus.target.registryURLCreated image in DVCR.
Example:
registryURL: dvcr.<dvcr-namespace>.svc/vi/<image-namespace>/<image-name>:latest
-
-
stringstatus.uploadCommandDeprecated. Use
imageUploadURLsinstead.
-
VirtualMachineBlockDeviceAttachment
Scope: Namespaced
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.blockDeviceRef
Required value
Block device that will be connected to the VM as a hot-plug disk.-
stringspec.blockDeviceRef.kind
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 -
stringspec.blockDeviceRef.nameName of the block device to attach.
Minimal length:
1
-
-
stringspec.virtualMachineName
Required value
Virtual machine name the disk or image should be attached to.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsContains details of the current API resource state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.virtualMachineNameName of the virtual machine the disk is attached to.
-
VirtualMachineClass
Scope: Cluster
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.cpu
Required value
CPU defines the requirements for the virtual CPU model.-
objectspec.cpu.discoveryCreate a CPU model based on intersecting CPU features for selected nodes.
-
objectspec.cpu.discovery.nodeSelectorA selection of nodes to be used as the basis for creating a universal CPU model.
-
array of objectsspec.cpu.discovery.nodeSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
stringspec.cpu.discovery.nodeSelector.matchExpressions.keykey is the label key that the selector applies to.
-
stringspec.cpu.discovery.nodeSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
array of stringsspec.cpu.discovery.nodeSelector.matchExpressions.valuesvalues 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.
-
-
objectspec.cpu.discovery.nodeSelector.matchLabelsmatchLabels 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.
-
-
-
array of stringsspec.cpu.featuresList of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.
Example:
features: - mmx - vmx - sse2 -
stringspec.cpu.modelCPU model name. For more information about CPU models and topology, refer to the libvirt docs.
Minimal length:
1Example:
model: IvyBridge -
stringspec.cpu.type
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
-
-
objectspec.nodeSelectorNodeSelector defines the nodes targeted for VM scheduling.
-
array of objectsspec.nodeSelector.matchExpressionsA list of node selector requirements by node’s labels.
-
stringspec.nodeSelector.matchExpressions.keyThe label key that the selector applies to.
-
stringspec.nodeSelector.matchExpressions.operatorRepresents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
-
array of stringsspec.nodeSelector.matchExpressions.valuesAn 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.
-
-
objectspec.nodeSelector.matchLabelsA 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.
-
-
array of objectsspec.sizingPolicies
-
array of stringsspec.sizingPolicies.coreFractionsAllowed values of the
coreFractionparameter in percentages (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).-
stringspec.sizingPolicies.coreFractions.Element of the arrayCoreFractionValue represents CPU core fraction as a percentage string (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
-
-
objectspec.sizingPolicies.coresThe policy applies for a specified range of the number of CPU cores.
-
integerspec.sizingPolicies.cores.max
Required value
Maximum number of CPU cores.Allowed values:
X <= 1024Example:
max: 10 -
integerspec.sizingPolicies.cores.min
Required value
Minimum number of CPU cores.Allowed values:
1 <= XExample:
min: 1 -
integerspec.sizingPolicies.cores.stepDiscretization step for the CPU core number. For example, the combination of
min=2,max=10, andstep=4allows to set the number of virtual machine CPU cores to 2, 6, or 10.Allowed values:
1 <= XExample:
step: 1
-
-
array of booleansspec.sizingPolicies.dedicatedCoresAllowed values of the
dedicatedCoresparameter. -
stringspec.sizingPolicies.defaultCoreFractionA default
CoreFractionvalue for aVirtualMachineif it is not provided. -
objectspec.sizingPolicies.memoryMemory sizing policy.
-
integer or stringspec.sizingPolicies.memory.maxMaximum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
max: 8Gi -
integer or stringspec.sizingPolicies.memory.minMinimum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
min: 1Gi -
objectspec.sizingPolicies.memory.perCoreAmount of memory per CPU core.
-
integer or stringspec.sizingPolicies.memory.perCore.maxMaximum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
max: 8Gi -
integer or stringspec.sizingPolicies.memory.perCore.minMinimum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
min: 1Gi
-
-
integer or stringspec.sizingPolicies.memory.stepMemory 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
-
-
-
array of objectsspec.tolerationsTolerations are the same as
spec.tolerationsfor pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.-
stringspec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
stringspec.tolerations.keyKey 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.
-
stringspec.tolerations.operatorOperator 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.
-
integerspec.tolerations.tolerationSecondsTolerationSeconds 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.
-
stringspec.tolerations.valueValue is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
-
-
-
objectstatus
-
array of stringsstatus.availableNodesList of nodes that support this CPU model. It is not displayed for the following types:
Host,HostPassthrough.Example:
availableNodes: - node-1 - node-2 -
array of objectsstatus.conditionsThe latest detailed observations of the VirtualMachineClass resource.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.cpuFeaturesCpuFeatures Information on CPU features supported by this model. Shown only for
FeaturesorDiscoverytypes.-
array of stringsstatus.cpuFeatures.enabledList of CPU features for this model.
Example:
enabled: - mmx - vmx - sse2 -
array of stringsstatus.cpuFeatures.notEnabledCommonList of unused processor features additionally available for a given group of nodes.
Example:
notEnabledCommon: - ssse3 - vme
-
-
objectstatus.maxAllocatableResourcesMaximum amount of free CPU and memory resources observed among all available nodes.
Example:
maxAllocatableResources: - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}' -
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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
-
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.cpu
Required value
CPU defines the requirements for the virtual CPU model.-
objectspec.cpu.discoveryCreate a CPU model based on intersecting CPU features for selected nodes.
-
objectspec.cpu.discovery.nodeSelectorA selection of nodes to be used as the basis for creating a universal CPU model.
-
array of objectsspec.cpu.discovery.nodeSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
stringspec.cpu.discovery.nodeSelector.matchExpressions.keykey is the label key that the selector applies to.
-
stringspec.cpu.discovery.nodeSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
array of stringsspec.cpu.discovery.nodeSelector.matchExpressions.valuesvalues 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.
-
-
objectspec.cpu.discovery.nodeSelector.matchLabelsmatchLabels 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.
-
-
-
array of stringsspec.cpu.featuresList of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.
Example:
features: - mmx - vmx - sse2 -
stringspec.cpu.modelCPU model name. For more information about CPU models and topology, refer to the libvirt docs.
Minimal length:
1Example:
model: IvyBridge -
stringspec.cpu.type
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
-
-
objectspec.nodeSelectorNodeSelector defines the nodes targeted for VM scheduling.
-
array of objectsspec.nodeSelector.matchExpressionsA list of node selector requirements by node’s labels.
-
stringspec.nodeSelector.matchExpressions.keyThe label key that the selector applies to.
-
stringspec.nodeSelector.matchExpressions.operatorRepresents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
-
array of stringsspec.nodeSelector.matchExpressions.valuesAn 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.
-
-
objectspec.nodeSelector.matchLabelsA 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.
-
-
array of objectsspec.sizingPolicies
-
array of integersspec.sizingPolicies.coreFractionsAllowed values of the
coreFractionparameter.-
integerspec.sizingPolicies.coreFractions.Element of the array
Allowed values:
1 <= X <= 100
-
-
objectspec.sizingPolicies.coresThe policy applies for a specified range of the number of CPU cores.
-
integerspec.sizingPolicies.cores.max
Required value
Maximum number of CPU cores.Allowed values:
X <= 1024Example:
max: 10 -
integerspec.sizingPolicies.cores.min
Required value
Minimum number of CPU cores.Allowed values:
1 <= XExample:
min: 1 -
integerspec.sizingPolicies.cores.stepDiscretization step for the CPU core number. For example, the combination of
min=2,max=10, andstep=4allows to set the number of virtual machine CPU cores to 2, 6, or 10.Allowed values:
1 <= XExample:
step: 1
-
-
array of booleansspec.sizingPolicies.dedicatedCoresAllowed values of the
dedicatedCoresparameter. -
integerspec.sizingPolicies.defaultCoreFractionA default
CoreFractionvalue for aVirtualMachineif it is not provided.Allowed values:
1 <= X <= 100 -
objectspec.sizingPolicies.memoryMemory sizing policy.
-
integer or stringspec.sizingPolicies.memory.maxMaximum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
max: 8Gi -
integer or stringspec.sizingPolicies.memory.minMinimum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
min: 1Gi -
objectspec.sizingPolicies.memory.perCoreAmount of memory per CPU core.
-
integer or stringspec.sizingPolicies.memory.perCore.maxMaximum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
max: 8Gi -
integer or stringspec.sizingPolicies.memory.perCore.minMinimum amount of memory.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
min: 1Gi
-
-
integer or stringspec.sizingPolicies.memory.stepMemory 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
-
-
-
array of objectsspec.tolerationsTolerations are the same as
spec.tolerationsfor pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.-
stringspec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
stringspec.tolerations.keyKey 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.
-
stringspec.tolerations.operatorOperator 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.
-
integerspec.tolerations.tolerationSecondsTolerationSeconds 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.
-
stringspec.tolerations.valueValue is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
-
-
-
objectstatus
-
array of stringsstatus.availableNodesList of nodes that support this CPU model. It is not displayed for the following types:
Host,HostPassthrough.Example:
availableNodes: - node-1 - node-2 -
array of objectsstatus.conditionsThe latest detailed observations of the VirtualMachineClass resource.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.cpuFeaturesCpuFeatures Information on CPU features supported by this model. Shown only for
FeaturesorDiscoverytypes.-
array of stringsstatus.cpuFeatures.enabledList of CPU features for this model.
Example:
enabled: - mmx - vmx - sse2 -
array of stringsstatus.cpuFeatures.notEnabledCommonList of unused processor features additionally available for a given group of nodes.
Example:
notEnabledCommon: - ssse3 - vme
-
-
objectstatus.maxAllocatableResourcesMaximum amount of free CPU and memory resources observed among all available nodes.
Example:
maxAllocatableResources: - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}' -
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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
-
stringapiVersion
-
stringkind
-
objectmetadata
-
objectspecVirtualMachineIPAddress settings.
-
stringspec.staticIPRequested static IP address to assign to the virtual machine. This field is required only if
typeis set to ‘Static’. -
stringspec.type
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
-
-
objectstatus
-
stringstatus.addressAssigned IP address.
-
array of objectsstatus.conditionsLast confirmed status of the resource.
-
stringstatus.conditions.lastTransitionTimeLast time the condition transitioned from one status to another.
-
stringstatus.conditions.messageHuman-readable message with details about the last transition.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
.metadata.generationthe condition was based upon. For instance, if.metadata.generationis currently12but.status.conditions[x].observedGenerationis9, the condition is considered outdated.Allowed values:
0 <= X -
stringstatus.conditions.reasonBrief reason for the condition’s last transition.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusCondition status. Possible values:
True,False, orUnknown.Allowed values:
True,False,Unknown -
stringstatus.conditions.typeCondition type.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.virtualMachineNameVirtual machine name that is currently using the IP address.
-
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
-
stringapiVersion
-
stringkind
-
objectmetadata
-
objectspecVirtualMachineIPAddressLease configuration parameter.
-
objectspec.virtualMachineIPAddressRefLink to the existing VirtualMachineIPAddress resources.
-
stringspec.virtualMachineIPAddressRef.name
Required value
Name of the reference VirtualMachineIPAddress resource. -
stringspec.virtualMachineIPAddressRef.namespace
Required value
Namespace of the reference VirtualMachineIPAddress resource.
-
-
-
objectstatus
-
array of objectsstatus.conditionsLast confirmed status of the resource.
-
stringstatus.conditions.lastTransitionTimeLast time the condition transitioned from one status to another.
-
stringstatus.conditions.messageHuman-readable message with details about the last transition.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
.metadata.generationthe condition was based upon. For instance, if.metadata.generationis currently12but.status.conditions[x].observedGenerationis9, the condition is considered outdated.Allowed values:
0 <= X -
stringstatus.conditions.reasonBrief reason for the condition’s last transition.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusCondition status. Possible values:
True,False, orUnknown.Allowed values:
True,False,Unknown -
stringstatus.conditions.typeCondition type.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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
-
stringapiVersion
-
stringkind
-
objectmetadata
-
objectspecThe desired state of
VirtualMachineMACAddress.-
stringspec.addressThe 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}$
-
-
objectstatus
-
stringstatus.addressThe assigned MAC address.
-
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
observedGenerationrepresents 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
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:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationThe generation last processed by the controller.
-
stringstatus.phase
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 -
stringstatus.virtualMachineNameRepresents the virtual machine that currently uses this MAC address.
-
VirtualMachineMACAddressLease
Scope: Cluster
Version: v1alpha2
-
stringapiVersion
-
stringkind
-
objectmetadata
-
objectspecThe desired state of
VirtualMachineMACAddressLease.-
objectspec.virtualMachineMACAddressRefThe link to existing
VirtualMachineMACAddress.-
stringspec.virtualMachineMACAddressRef.name
Required value
The name of the referencedVirtualMachineMACAddress. -
stringspec.virtualMachineMACAddressRef.namespace
Required value
The Namespace of the referencedVirtualMachineMACAddress.
-
-
-
objectstatus
-
array of objectsstatus.conditionsThe latest available observations of an object’s current state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.type
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:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationThe generation last processed by the controller.
-
stringstatus.phase
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
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.cloneClone defines the clone operation.
-
objectspec.clone.customizationCustomization defines customization options for cloning.
-
stringspec.clone.customization.namePrefixNamePrefix adds a prefix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
-
stringspec.clone.customization.nameSuffixNameSuffix adds a suffix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
-
-
stringspec.clone.mode
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 -
array of objectsspec.clone.nameReplacementNameReplacement defines rules for renaming resources during cloning.
-
objectspec.clone.nameReplacement.fromSelector to choose resources for name replacement.
-
stringspec.clone.nameReplacement.from.kindKind of a resource to rename.
Minimal length:
1 -
stringspec.clone.nameReplacement.from.name
Required value
Current name of a resource to rename.Minimal length:
1
-
-
stringspec.clone.nameReplacement.toNew resource name.
Minimal length:
1
-
-
-
booleanspec.force
Force execution of an operation.
- Effect on
RestartandStop: operation performs immediately. - Effect on
EvictandMigrate: enable the AutoConverge feature to force migration via CPU throttling if thePreferSafeorPreferForcedpolicies are used for live migration.
- Effect on
-
objectspec.migrateDefines the virtual machine migration operation.
-
objectspec.migrate.nodeSelector
Node selector for scheduling the VM onto a node. Must match the target node’s labels. Same as the Pod
spec.nodeSelectorfield in Kubernetes.The
nodeSelectorfield is not available in the Community Edition.
-
-
objectspec.restoreRestore defines the restore operation.
-
stringspec.restore.mode
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 -
stringspec.restore.virtualMachineSnapshotName
Required value
VirtualMachineSnapshotName defines the source of the restore operation.Minimal length:
1
-
-
stringspec.type
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 -
stringspec.virtualMachineName
Required value
Name of the virtual machine the operation is performed for.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsThe latest detailed observations of the VirtualMachineOperation resource.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 theconditionsfield and events.Terminating: The operation is being deleted.
Allowed values:
Pending,InProgress,Completed,Failed,Terminating -
array of objectsstatus.resourcesResources contains the list of resources that are affected by the snapshot operation.
-
stringstatus.resources.apiVersionAPI version of the resource.
-
stringstatus.resources.kindKind of the resource.
-
stringstatus.resources.messageMessage about the resource.
-
stringstatus.resources.nameName of the resource.
-
stringstatus.resources.statusStatus of the resource.
Allowed values:
InProgress,Completed,Failed
-
-
VirtualMachineRestore
Scope: Namespaced
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
array of objectsspec.nameReplacementsRenaming conventions for virtual machine resources.
-
objectspec.nameReplacements.fromSelector to choose resources for name replacement.
-
stringspec.nameReplacements.from.kindKind of a resource to rename.
Minimal length:
1 -
stringspec.nameReplacements.from.name
Required value
Current name of a resource to rename.Minimal length:
1
-
-
stringspec.nameReplacements.toNew resource name.
Minimal length:
1
-
-
stringspec.restoreMode
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:
SafeAllowed values:
Safe,Forced -
stringspec.virtualMachineSnapshotName
Required value
Snapshot name to restore a virtual machine from.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsContains details of the current API resource state.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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.
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.affinity
The same as in the pod parameter
spec.affinityin Kubernetes;The
affinitysetting details are exactly matching the documentation source above. The only difference are the names of several parameters. The following alternative names are used:podAffinity->virtualMachineAndPodAffinitypodAffinityTerm->virtualMachineAndPodAffinityTerm
-
objectspec.affinity.nodeAffinityDescribes node affinity scheduling rules for a VM.
-
array of objectsspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
objectspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
-
array of objectsspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
-
array of stringsspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Element of the array
-
-
-
array of objectsspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
-
array of stringsspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
-
stringspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Element of the array
-
-
-
-
integerspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
objectspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
array of objectsspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
Required value
-
array of objectsspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
-
array of stringsspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Element of the array
-
-
-
array of objectsspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
-
array of stringsspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
-
stringspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Element of the array
-
-
-
-
-
-
objectspec.affinity.virtualMachineAndPodAffinityDescribes pod and VM affinity scheduling rules.
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
objectspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
objectspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
-
-
objectspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
-
-
stringspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Required value
-
-
integerspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
objectspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
-
-
objectspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
array of objectsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
-
-
stringspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinityDescribes pod and VM anti-affinity scheduling rules.
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
-
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Required value
-
-
integerspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
array of objectsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
array of stringsspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
-
-
stringspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
array of objectsspec.blockDeviceRefs
Required value
List of block devices connected to the VM.-
stringspec.blockDeviceRefs.kind
Supported block device types:
ClusterVirtualImage: Use ClusterVirtualImage as the disk. This type is always mounted inReadOnlymode. An ISO image will be mounted as a CD-ROM device.VirtualImage: Use VirtualImage as the disk. This type is always mounted inReadOnlymode. An ISO image will be mounted as a CD-ROM device.VirtualDisk: Use VirtualDisk as the disk. This type is always mounted inReadWritemode.
Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDisk -
stringspec.blockDeviceRefs.nameName of the attached resource.
Minimal length:
1
-
-
stringspec.bootloader
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:
BIOSAllowed values:
BIOS,EFI,EFIWithSecureBoot -
objectspec.cpu
Required value
Section describing the CPU settings for a VM.-
stringspec.cpu.coreFractionGuaranteed share of CPU time allocated to the VM. Specified as a percentage. The allowed range is defined by
sizePolicyin the selected VirtualMachineClass. IfsizePolicyis not set, use values in the1–100%range. If the parameter is not specified, the default value from the classsizePolicyis used. If no default is set in the class,100%is applied.Pattern:
^(100|[1-9][0-9]?|[1-9])%$ -
integerspec.cpu.cores
Required value
Number of cores.Allowed values:
1 <= X
-
-
objectspec.disruptions
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" }-
stringspec.disruptions.restartApprovalMode
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
-
-
booleanspec.enableParavirtualization
Use the
virtiobus for connecting virtual devices of a VM. To disablevirtiofor a VM, set this parameter toFalse.Note: To use the paravirtualization mode, some operating systems require installing the corresponding drivers.
Default:
true -
stringspec.liveMigrationPolicy
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 withforce=truein 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 withforce=falsein VMOP.
Default:
PreferSafeAllowed values:
AlwaysSafe,PreferSafe,AlwaysForced,PreferForced -
objectspec.memory
Required value
Section specifying the RAM settings for the VM.-
stringspec.memory.size
Required value
RAM amount.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
array of objectsspec.networks
List of network interface configurations. If not specified, the VM uses only the main cluster network (
Main).The
sdnmodule is required only when additional networks (NetworkorClusterNetwork) are specified in.spec.networks. If only the main network (Main) is specified, the module is not required.-
integerspec.networks.idThe ID of the network interface.
-
stringspec.networks.nameThe name of the network interface.
Minimal length:
1 -
stringspec.networks.type
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 -
stringspec.networks.virtualMachineMACAddressNameThe name of the
VirtualMachineMACAddressresource that is associated with the network interface.Minimal length:
1
-
-
stringspec.osType
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:
GenericAllowed values:
Windows,Generic -
stringspec.priorityClassNameThe same as in the pod parameter
spec.priorityClassNamein Kubernetes.Minimal length:
1 -
objectspec.provisioningSection describing a VM initial provisioning scenario.
-
objectspec.provisioning.sysprepRef
Link to an existing resource with the Windows automation scenario.
A resource structure for the
SysprepReftype:.data.autounattend.xml.data.unattend.xml
-
stringspec.provisioning.sysprepRef.kind
Required value
Kind of the resource. Use a secret of the following type:provisioning.virtualization.deckhouse.io/sysprep.Default:
SecretAllowed values:
Secret -
stringspec.provisioning.sysprepRef.name
Required value
Secret name.Minimal length:
1
-
stringspec.provisioning.type
Required value
Supported parameters for using the provisioning scenario:
UserData: Use thecloud-initscenario in the.spec.provisioning.UserDatasection.UserDataRef: Use thecloud-initscenario located in a different resource.SysprepRef: Use the automatic Windows installation scenario located in a different resource.
Allowed values:
UserData,UserDataRef,SysprepRef -
stringspec.provisioning.userData
cloud-initscenario content.More information about
cloud-initand configuration examples. -
objectspec.provisioning.userDataRef
Link to an existing resource with the
cloud-initscenario.A resource structure for the
userDataReftype:.data.userData.
-
stringspec.provisioning.userDataRef.kind
Required value
Kind of the resource.Default:
SecretAllowed values:
Secret -
stringspec.provisioning.userDataRef.name
Required value
Name of the resource with thecloud-initscenario.Minimal length:
1
-
-
stringspec.runPolicy
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:
AlwaysOnUnlessStoppedManuallyAllowed values:
AlwaysOn,AlwaysOff,Manual,AlwaysOnUnlessStoppedManually -
integerspec.terminationGracePeriodSecondsGrace period after sending a
SIGTERMsignal to shut down a VM. Once the grace period expires, the VM is forcibly terminated.Default:
60 -
-
stringspec.tolerations.effect
-
stringspec.tolerations.key
-
stringspec.tolerations.operator
-
integerspec.tolerations.tolerationSeconds
-
stringspec.tolerations.value
-
-
array of objectsspec.topologySpreadConstraintsThe same as in the pod parameter
spec.topologySpreadConstraintsin Kubernetes.-
objectspec.topologySpreadConstraints.labelSelector
-
array of objectsspec.topologySpreadConstraints.labelSelector.matchExpressions
-
stringspec.topologySpreadConstraints.labelSelector.matchExpressions.key
-
stringspec.topologySpreadConstraints.labelSelector.matchExpressions.operator
-
array of stringsspec.topologySpreadConstraints.labelSelector.matchExpressions.values
-
stringspec.topologySpreadConstraints.labelSelector.matchExpressions.values.Element of the array
-
-
-
objectspec.topologySpreadConstraints.labelSelector.matchLabels
-
-
integerspec.topologySpreadConstraints.maxSkew
-
stringspec.topologySpreadConstraints.topologyKey
-
stringspec.topologySpreadConstraints.whenUnsatisfiable
-
-
array of objectsspec.usbDevicesList of USB devices to attach to the virtual machine. Devices are referenced by name of USBDevice resource in the same namespace.
-
stringspec.usbDevices.nameThe name of USBDevice resource in the same namespace.
Minimal length:
1
-
-
stringspec.virtualMachineClassName
Required value
Name of the VirtualMachineClass resource describing the requirements for a virtual CPU, memory, and the resource allocation policy.Minimal length:
1 -
stringspec.virtualMachineIPAddressName
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
-
-
objectstatus
-
array of objectsstatus.blockDeviceRefsList of block devices attached to the VM.
-
booleanstatus.blockDeviceRefs.attachedBlock device is attached to the virtual machine.
-
booleanstatus.blockDeviceRefs.hotpluggedBlock device is attached via a hot-plug connection.
-
stringstatus.blockDeviceRefs.kindBlock device type.
Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDisk -
stringstatus.blockDeviceRefs.nameName of the existing resource.
-
stringstatus.blockDeviceRefs.sizeSize of the attached block device.
-
stringstatus.blockDeviceRefs.targetName of the attached block device.
Example:
target: sda -
stringstatus.blockDeviceRefs.virtualMachineBlockDeviceAttachmentNameName of the VirtualMachineBlockDeviceAttachment resource that defines the hot-plug disk connection to the VM.
-
-
array of objectsstatus.conditionsState of the running virtual machine.
-
stringstatus.conditions.lastTransitionTimeLast time the condition transitioned from one status to another.
-
stringstatus.conditions.messageHuman-readable message with details about the last transition.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
.metadata.generationthe condition was based upon. For instance, if.metadata.generationis currently12but.status.conditions[x].observedGenerationis9, the condition is considered outdated.Allowed values:
0 <= X -
stringstatus.conditions.reasonBrief reason for the condition’s last transition.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusCondition status. Possible values:
True,False, orUnknown.Allowed values:
True,False,Unknown -
stringstatus.conditions.typeCondition type.
Maximum length:
316Pattern:
^([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])$
-
-
objectstatus.guestOSInfo
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.
-
stringstatus.ipAddressIP address of the VM.
-
objectstatus.migrationStateDetails on the VM migration.
-
stringstatus.migrationState.endTimestampTime when the migration ends.
-
stringstatus.migrationState.resultMigration result:
SucceededorFailed.Allowed values:
‘’,Succeeded,Failed -
objectstatus.migrationState.source
-
stringstatus.migrationState.source.nodeName of the node where the VM is currently running.
-
stringstatus.migrationState.source.podName of the pod where the VM is currently running.
-
-
stringstatus.migrationState.startTimestampTime when the migration starts.
-
objectstatus.migrationState.target
-
stringstatus.migrationState.target.nodeName of the node where the VM is currently migrating to.
-
stringstatus.migrationState.target.podName of the module where the VM is currently migrating to."
-
-
-
array of objectsstatus.networksList of network interfaces attached to the VM.
-
integerstatus.networks.idThe ID of the network interface.
-
stringstatus.networks.macAddressThe MAC address of the network interface.
-
stringstatus.networks.nameThe name of the network interface.
-
stringstatus.networks.typeThe type of the network interface.
-
stringstatus.networks.virtualMachineMACAddressNameThe name of the
VirtualMachineMACAddressresource that is associated with the network interface.
-
-
stringstatus.nodeNameName of the node where the VM is currently running.
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
objectstatus.resourcesStatistics on used resources.
-
objectstatus.resources.cpuStatistics on used CPU resources.
-
stringstatus.resources.cpu.coreFractionCurrent value of
coreFraction. -
integerstatus.resources.cpu.cores
Required value
Current number of the VM cores. -
integer or stringstatus.resources.cpu.requestedCoresRequested cores.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
integer or stringstatus.resources.cpu.runtimeOverheadCPU overhead required by the runtime.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
objectstatus.resources.cpu.topologyInformation on the current CPU topology.
-
integerstatus.resources.cpu.topology.coresPerSocket
Required value
Current number of CPU cores per socket. -
integerstatus.resources.cpu.topology.sockets
Required value
Current number of CPU sockets.
-
-
-
objectstatus.resources.memoryMemory usage statistics.
-
integer or stringstatus.resources.memory.runtimeOverheadMemory overhead required by the runtime.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
integer or stringstatus.resources.memory.size
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]+))))?$
-
-
-
array of objectsstatus.restartAwaitingChangesList of configuration changes that require a VM reboot to be applied.
-
objectstatus.statsVirtual machine statistics.
-
objectstatus.stats.launchTimeDurationDetails on the launch.
-
stringstatus.stats.launchTimeDuration.guestOSAgentStartingWaiting time for the guestOsAgent to start.
running->runningwith guestOSAgent. -
stringstatus.stats.launchTimeDuration.virtualMachineStartingWaiting time for the virtual machine to start.
starting->running. -
stringstatus.stats.launchTimeDuration.waitingForDependenciesWaiting time for dependent resources.
pending->starting.
-
-
array of objectsstatus.stats.phasesTransitionsPhase history.
-
stringstatus.stats.phasesTransitions.phaseVirtual machine phase.
Allowed values:
Pending,Running,Degraded,Terminating,Stopped,Stopping,Starting,Migrating,Pause -
stringstatus.stats.phasesTransitions.timestampTime of transition to this phase.
-
-
-
array of objectsstatus.usbDevicesList of USB devices attached to the virtual machine.
-
objectstatus.usbDevices.addressUSB address inside the virtual machine.
-
integerstatus.usbDevices.address.busUSB bus number (always 0 for the main USB controller).
-
integerstatus.usbDevices.address.portUSB port number on the selected bus.
-
-
booleanstatus.usbDevices.attachedThe USB device is attached to the virtual machine.
-
booleanstatus.usbDevices.hotpluggedUSB device is attached via hot plug connection.
-
stringstatus.usbDevices.nameThe name of USBDevice resource.
-
booleanstatus.usbDevices.readyUSB device is ready to use.
-
-
objectstatus.versionsHypervisor versions.
-
stringstatus.versions.libvirtLibvirt version.
-
stringstatus.versions.qemuQemu version.
-
-
stringstatus.virtualMachineIPAddressNameName of the VirtualMachineIPAddressName resource with an IP address of the VM.
-
array of objectsstatus.virtualMachinePodsList of virtual machine pods.
-
booleanstatus.virtualMachinePods.activeCurrent working pod.
-
stringstatus.virtualMachinePods.namePod name.
-
-
VirtualMachineSnapshotOperation
Scope: Namespaced
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
objectspec.createVirtualMachineCreateVirtualMachine defines the clone operation.
-
objectspec.createVirtualMachine.customizationCustomization defines customization options for cloning.
-
stringspec.createVirtualMachine.customization.namePrefixNamePrefix adds a prefix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
-
stringspec.createVirtualMachine.customization.nameSuffixNameSuffix adds a suffix to resource names during cloning. Applied to VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment, and Secret resources.
-
-
stringspec.createVirtualMachine.mode
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 -
array of objectsspec.createVirtualMachine.nameReplacementNameReplacement defines rules for renaming resources during cloning.
-
objectspec.createVirtualMachine.nameReplacement.fromSelector to choose resources for name replacement.
-
stringspec.createVirtualMachine.nameReplacement.from.kindKind of a resource to rename.
Minimal length:
1 -
stringspec.createVirtualMachine.nameReplacement.from.name
Required value
Current name of a resource to rename.Minimal length:
1
-
-
stringspec.createVirtualMachine.nameReplacement.toNew resource name.
Minimal length:
1
-
-
-
stringspec.type
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 -
stringspec.virtualMachineSnapshotName
Required value
Name of the virtual machine snapshot the operation is performed for.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsThe latest detailed observations of the VirtualMachineSnapshotOperation resource.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 theconditionsfield and events.Terminating: The operation is being deleted.
Allowed values:
Pending,InProgress,Completed,Failed,Terminating -
array of objectsstatus.resourcesResources contains the list of resources that are affected by the snapshot operation.
-
stringstatus.resources.apiVersionAPI version of the resource.
-
stringstatus.resources.kindKind of the resource.
-
stringstatus.resources.messageMessage about the resource.
-
stringstatus.resources.nameName of the resource.
-
stringstatus.resources.statusStatus of the resource.
Allowed values:
InProgress,Completed,Failed
-
-
VirtualMachineSnapshot
Scope: Namespaced
Version: v1alpha2
-
stringapiVersionAPIVersion 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
-
stringkindKind 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
-
objectmetadata
-
objectspec
-
stringspec.keepIPAddress
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 fromAutotoStaticand saved.Never: When creating a snapshot, the virtual machine’s IP address will not be converted.
Default:
AlwaysAllowed values:
Always,Never -
booleanspec.requiredConsistency
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 -
stringspec.virtualMachineName
Required value
Name of the virtual machine to take a snapshot of.Minimal length:
1
-
-
objectstatus
-
array of objectsstatus.conditionsThe latest detailed observations of the VirtualMachineSnapshot resource.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime 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.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration 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 -
stringstatus.conditions.reasonreason 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..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
booleanstatus.consistentWhether a virtual machine snapshot is consistent.
-
integerstatus.observedGenerationResource generation last processed by the controller.
-
stringstatus.phase
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 -
array of objectsstatus.resourcesList of snapshot resources.
-
stringstatus.resources.apiVersionAPI version of the resource.
-
stringstatus.resources.kindKind of the resource.
-
stringstatus.resources.nameName of the resource.
-
-
array of stringsstatus.virtualDiskSnapshotNamesList of VirtualDiskSnapshot names for the snapshots taken from the virtual disks of the associated virtual machine.
-
stringstatus.virtualMachineSnapshotSecretNameName of the underlying
Secretcreated for virtual machine snapshotting.
-