The functionality of the module might change, but the main features will remain. Compatibility with future versions is guaranteed, but might require additional migration steps.
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).
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.dataSource
Required value
Origin of the image.-
spec.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
caBundle
field.-
spec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg==
-
spec.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
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials.
-
spec.dataSource.containerImage.imagePullSecret.namespaceNamespace where
imagePullSecret
is located.
-
-
-
spec.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.
-
spec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg==
-
spec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
spec.dataSource.http.checksum.md5
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.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
-
spec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
-
spec.dataSource.objectRef.kind
Required value
Kind of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Required value
Name of the existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource. -
spec.dataSource.objectRef.namespaceNamespace where the VirtualImage, VirtualDisk or VirtualDiskSnapshot resource is located.
-
-
spec.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
-
-
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, only the disk size field .spec.persistentVolumeClaim.size
can be changed. All other fields are immutable.
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.dataSource
-
spec.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
caBundle
field.-
spec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg==
-
spec.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
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials, which must be located in the same namespace.
-
-
-
spec.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.
-
spec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg==
-
spec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
spec.dataSource.http.checksum.md5
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.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
-
spec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource to create a disk.
-
spec.dataSource.objectRef.kind
Required value
Kind of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Required value
Name of the existing VirtualImage, ClusterVirtualImage, or VirtualDiskSnapshot resource.
-
-
spec.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
-
-
spec.persistentVolumeClaimSettings for creating PVCs to store the disk.
-
spec.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.dataSource
section is filled out. In this case, the controller will determine the disk size automatically, based on the size of the extracted image from the source specified in.spec.dataSource
.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
spec.persistentVolumeClaim.storageClassName
StorageClass name required by the claim. For details on using StorageClass for PVC, refer to https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
When creating disks, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.
The disk features and virtual machine behavior depend on the selected StorageClass.
The
VolumeBindingMode
parameter in the StorageClass affects the disk creation process. The following values are allowed:Immediate
: The disk will be created and becomes available for use immediately after creation.WaitForFirstConsumer
: The disk will be created when first used on the node where the virtual machine will be started.
StorageClass supports multiple storage settings:
- Creating a block device (
Block
) or file system (FileSystem
). - Multiple access (
ReadWriteMany
) or single access (ReadWriteOnce
). TheReadWriteMany
disks support multiple access, which enables a “live” migration of virtual machines. In contrast, theReadWriteOnce
disks, which can be accessed from only one node, don’t have this feature.
For known storage types, Deckhouse automatically determines the most efficient settings when creating disks (by priority, in descending order):
Block
+ReadWriteMany
FileSystem
+ReadWriteMany
Block
+ReadWriteOnce
FileSystem
+ReadWriteOnce
-
-
VirtualDiskSnapshot
Scope: Namespaced
Version: v1alpha2
Provides a resource for creating snapshots of existing virtual disks, which can be used as data sources for generating new virtual disks.
When running, a VolumeSnapshot resource is created.
-
spec
-
spec.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
-
spec.virtualDiskName
Required value
Virtual disk name the snapshot is created for. -
spec.volumeSnapshotClassName
Required value
Volume snapshot class name to use while a virtual disk snapshot is created.
-
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.
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.dataSource
Required value
-
spec.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
caBundle
field.-
spec.dataSource.containerImage.caBundleCA chain in Base64 format to verify the container registry.
Example:
caBundle: YWFhCg==
-
spec.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
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameName of the secret keeping container registry credentials, which must be located in the same namespace.
-
-
-
spec.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.
-
spec.dataSource.http.caBundleCA chain in Base64 format to verify the URL.
Example:
caBundle: YWFhCg==
-
spec.dataSource.http.checksumChecksum to verify integrity and consistency of the downloaded file. The file must match all specified checksums.
-
spec.dataSource.http.checksum.md5
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.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
-
spec.dataSource.objectRefUse an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource to create an image.
-
spec.dataSource.objectRef.kind
Required value
Kind of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Required value
Name of an existing VirtualImage, ClusterVirtualImage, VirtualDisk or VirtualDiskSnapshot resource.
-
-
spec.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
-
-
spec.persistentVolumeClaimSettings for creating PVCs to store an image with the storage type
PersistentVolumeClaim
.-
spec.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
PersistentVolumeClaim
storage type, the user can specify the required StorageClass. If not specified, the default StorageClass will be used.
-
-
spec.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. UsePersistentVolumeClaim
instead.
Default:
ContainerRegistry
Allowed values:
ContainerRegistry
,Kubernetes
,PersistentVolumeClaim
-
VirtualMachineBlockDeviceAttachment
Scope: Namespaced
Version: v1alpha2
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.blockDeviceRef
Required value
Block device that will be connected to the VM as a hot-plug disk.-
spec.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
-
spec.blockDeviceRef.nameName of the block device to attach.
-
-
spec.virtualMachineName
Required value
Virtual machine name the disk or image should be attached to.
-
VirtualMachineClass
Scope: Cluster
Version: v1alpha2
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.cpu
Required value
CPU defines the requirements for the virtual CPU model.-
spec.cpu.discoveryCreate a CPU model based on intersecting CPU features for selected nodes.
-
spec.cpu.discovery.nodeSelectorA selection of nodes to be used as the basis for creating a universal CPU model.
-
spec.cpu.discovery.nodeSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
spec.cpu.discovery.nodeSelector.matchExpressions.keykey is the label key that the selector applies to.
-
spec.cpu.discovery.nodeSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
spec.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.
-
-
spec.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.
-
-
-
spec.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
-
spec.cpu.modelCPU model name. For more information about CPU models and topology, refer to the libvirt docs.
Minimal length:
1
Example:
model: IvyBridge
-
spec.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
-
-
spec.nodeSelectorNodeSelector defines the nodes targeted for VM scheduling.
-
spec.nodeSelector.matchExpressionsA list of node selector requirements by node’s labels.
-
spec.nodeSelector.matchExpressions.keyThe label key that the selector applies to.
-
spec.nodeSelector.matchExpressions.operatorRepresents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
-
spec.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.
-
-
spec.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.
-
-
spec.sizingPolicies
-
spec.sizingPolicies.coreFractionsAllowed values of the
coreFraction
parameter.-
spec.sizingPolicies.coreFractions.Element of the array
Allowed values:
1 <= X <= 100
-
-
spec.sizingPolicies.coresThe policy applies for a specified range of the number of CPU cores.
-
spec.sizingPolicies.cores.max
Required value
Maximum number of CPU cores.Allowed values:
X <= 1024
Example:
max: 10
-
spec.sizingPolicies.cores.min
Required value
Minimum number of CPU cores.Allowed values:
1 <= X
Example:
min: 1
-
spec.sizingPolicies.cores.stepDiscretization step for the CPU core number. For example, the combination of
min=2
,max=10
, andstep=4
allows to set the number of virtual machine CPU cores to 2, 6, or 10.Allowed values:
1 <= X
Example:
step: 1
-
-
spec.sizingPolicies.dedicatedCoresAllowed values of the
dedicatedCores
parameter. -
spec.sizingPolicies.memoryMemory sizing policy.
-
spec.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
-
spec.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
-
spec.sizingPolicies.memory.perCoreAmount of memory per CPU core.
-
spec.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
-
spec.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
-
-
spec.sizingPolicies.memory.stepMemory size discretization step. For example, the combination of
min=2Gi,
max=4Giand
step=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Example:
step: 512Mi
-
-
-
spec.tolerationsTolerations are the same as
spec.tolerations
for pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.-
spec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
spec.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.
-
spec.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.
-
spec.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.
-
spec.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.
-
-
VirtualMachineIPAddress
Scope: Namespaced
Version: v1alpha2
-
apiVersion
-
kind
-
metadata
-
specVirtualMachineIPAddress settings.
-
spec.staticIPRequested static IP address to assign to the virtual machine. This field is required only if
type
is set to ‘Static’. -
spec.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
-
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
-
apiVersion
-
kind
-
metadata
-
specVirtualMachineIPAddressLease configuration parameter.
-
spec.virtualMachineIPAddressRefLink to the existing VirtualMachineIPAddress resources.
-
spec.virtualMachineIPAddressRef.name
Required value
Name of the reference VirtualMachineIPAddress resource. -
spec.virtualMachineIPAddressRef.namespace
Required value
Namespace of the reference VirtualMachineIPAddress resource.
-
-
VirtualMachineOperation
Scope: Namespaced
Version: v1alpha2
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.forceForce execution of an operation. Applies only to the
Restart
andStop
operations. In this case, the operation on a virtual machine is performed immediately. -
spec.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
(deprecated): Migrate the virtual machine to another node where it can be started.Evict
: Migrate the virtual machine to another node where it can be started.
Allowed values:
Restart
,Start
,Stop
,Migrate
,Evict
-
spec.virtualMachineName
Required value
Name of the virtual machine the operation is performed for.
-
VirtualMachineRestore
Scope: Namespaced
Version: v1alpha2
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.nameReplacementsRenaming conventions for virtual machine resources.
-
spec.nameReplacements.fromSelector to choose resources for name replacement.
-
spec.nameReplacements.from.kindKind of a resource to rename.
-
spec.nameReplacements.from.name
Required value
Current name of a resource to rename.
-
-
spec.nameReplacements.toNew resource name.
-
-
spec.virtualMachineSnapshotName
Required value
Snapshot name to restore a virtual machine from.Minimal length:
1
-
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
.
-
spec
-
spec.affinity
The same as in the pod parameter
spec.affinity
in Kubernetes;The
affinity
setting details are exactly matching the documentation source above. The only difference are the names of several parameters. The following alternative names are used:podAffinity
->virtualMachineAndPodAffinity
podAffinityTerm
->virtualMachineAndPodAffinityTerm
-
spec.affinity.nodeAffinityDescribes node affinity scheduling rules for a VM.
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Element of the array
-
-
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Element of the array
-
-
-
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
Required value
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Element of the array
-
-
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Element of the array
-
-
-
-
-
-
spec.affinity.virtualMachineAndPodAffinityDescribes pod and VM affinity scheduling rules.
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Required value
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinityDescribes pod and VM anti-affinity scheduling rules.
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Required value
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Allowed values:
1 <= X <= 100
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
spec.blockDeviceRefs
Required value
List of block devices connected to the VM.-
spec.blockDeviceRefs.kind
Supported block device types:
ClusterVirtualImage
: Use ClusterVirtualImage as the disk. This type is always mounted inReadOnly
mode. An ISO image will be mounted as a CD-ROM device.VirtualImage
: Use VirtualImage as the disk. This type is always mounted inReadOnly
mode. An ISO image will be mounted as a CD-ROM device.VirtualDisk
: Use VirtualDisk as the disk. This type is always mounted inReadWrite
mode.
Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.blockDeviceRefs.nameName of the attached resource.
-
-
spec.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:
BIOS
Allowed values:
BIOS
,EFI
,EFIWithSecureBoot
-
spec.cpu
Required value
Section describing the CPU settings for a VM.-
spec.cpu.coreFractionGuaranteed share of CPU time that will be allocated to the VM. Specified as a percentage.
Default:
100%
-
spec.cpu.cores
Required value
Number of cores.Allowed values:
1 <= X
-
-
spec.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" }
-
spec.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
-
-
spec.enableParavirtualization
Use the
virtio
bus for connecting virtual devices of a VM. To disablevirtio
for a VM, set this parameter toFalse
.Note: To use the paravirtualization mode, some operating systems require installing the corresponding drivers.
Default:
true
-
spec.memory
Required value
Section specifying the RAM settings for the VM.-
spec.memory.size
Required value
RAM amount.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
spec.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:
Generic
Allowed values:
Windows
,Generic
-
spec.priorityClassNameThe same as in the pod parameter
spec.priorityClassName
in Kubernetes. -
spec.provisioningSection describing a VM initial provisioning scenario.
-
spec.provisioning.sysprepRef
Link to an existing resource with the Windows automation scenario.
A resource structure for the
SysprepRef
type:.data.autounattend.xml
.data.unattend.xml
-
spec.provisioning.sysprepRef.kind
Required value
Kind of the resource. Use a secret of the following type:provisioning.virtualization.deckhouse.io/sysprep
.Default:
Secret
Allowed values:
Secret
-
spec.provisioning.sysprepRef.name
Required value
Secret name.
-
spec.provisioning.type
Supported parameters for using the provisioning scenario:
UserData
: Use thecloud-init
scenario in the.spec.provisioning.UserData
section.UserDataRef
: Use thecloud-init
scenario located in a different resource.SysprepRef
: Use the automatic Windows installation scenario located in a different resource.
Allowed values:
UserData
,UserDataRef
,SysprepRef
-
spec.provisioning.userData
cloud-init
scenario content.More information about
cloud-init
and configuration examples. -
spec.provisioning.userDataRef
Link to an existing resource with the
cloud-init
scenario.A resource structure for the
userDataRef
type:.data.userData
.
-
spec.provisioning.userDataRef.kind
Required value
Kind of the resource.Default:
Secret
Allowed values:
Secret
-
spec.provisioning.userDataRef.name
Required value
Name of the resource with thecloud-init
scenario.
-
-
spec.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:
AlwaysOnUnlessStoppedManually
Allowed values:
AlwaysOn
,AlwaysOff
,Manual
,AlwaysOnUnlessStoppedManually
-
spec.terminationGracePeriodSecondsGrace period after sending a
SIGTERM
signal to shut down a VM. Once the grace period expires, the VM is forcibly terminated.Default:
60
-
-
spec.tolerations.effect
-
spec.tolerations.key
-
spec.tolerations.operator
-
spec.tolerations.tolerationSeconds
-
spec.tolerations.value
-
-
spec.topologySpreadConstraintsThe same as in the pod parameter
spec.topologySpreadConstraints
in Kubernetes.-
spec.topologySpreadConstraints.labelSelector
-
spec.topologySpreadConstraints.labelSelector.matchExpressions
-
spec.topologySpreadConstraints.labelSelector.matchExpressions.key
-
spec.topologySpreadConstraints.labelSelector.matchExpressions.operator
-
spec.topologySpreadConstraints.labelSelector.matchExpressions.values
-
spec.topologySpreadConstraints.labelSelector.matchExpressions.values.Element of the array
-
-
-
spec.topologySpreadConstraints.labelSelector.matchLabels
-
-
spec.topologySpreadConstraints.maxSkew
-
spec.topologySpreadConstraints.topologyKey
-
spec.topologySpreadConstraints.whenUnsatisfiable
-
-
spec.virtualMachineClassName
Required value
Name of the VirtualMachineClass resource describing the requirements for a virtual CPU, memory, and the resource allocation policy. -
spec.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
).
-
VirtualMachineSnapshot
Scope: Namespaced
Version: v1alpha2
-
apiVersionAPIVersion 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
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.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 fromAuto
toStatic
and saved.Never
: When creating a snapshot, the virtual machine’s IP address will not be converted.
Default:
Always
Allowed values:
Always
,Never
-
spec.requiredConsistency
Required value
Create a snapshot of a virtual machine only if it is possible to freeze the machine through the agent.
If set to
true
, the virtual machine snapshot will be created only in the following cases:- When the virtual machine is powered off.
- When the virtual machine has an agent, and the freeze operation was successful.
Default:
true
-
spec.virtualMachineName
Required value
Name of the virtual machine to take a snapshot of.Minimal length:
1
-
spec.volumeSnapshotClasses
-
spec.volumeSnapshotClasses.storageClassNameStorageClass name associated with a VolumeSnapshotClass.
-
spec.volumeSnapshotClasses.volumeSnapshotClassNameVolumeSnapshotClass name to use for virtual disk snapshotting.
-
-