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 Virtuals
directly. This resource type is available for all namespaces in the cluster.
This resource cannot be modified once it has been created.
A container image is created under the hood of this resource, which is stored in a dedicated deckhouse virtualization container registry (DVCR).
-
spec
-
spec.dataSource
Required value
An origin of the image.-
spec.dataSource.containerImageUse an image stored in external container registry. Only TLS enabled registries are supported. Use caBundle field to provide custom CA chain if needed.
-
spec.dataSource.containerImage.caBundleThe CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Required value
The container registry address of an image.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.nameA name of the secret containing registry credentials.
-
spec.dataSource.containerImage.imagePullSecret.namespaceA namespace where imagePullSecret is located.
-
-
-
spec.dataSource.http
Fill the image with data from some external url. Supported schemas are:
- http
- https
For https schema there is an option to skip TLS verification.
-
spec.dataSource.http.caBundleThe CA chain in base64 format to verify the url.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumA checksum of the file, provided by the url, to verify if it was downloaded correctly or wasn’t changed. The file should 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
The http url with an image. The following formats are supported:
- qcow2
- vmdk
- vdi
- iso
- raw these formats can also be compressed with 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
orVirtualDisk
to create an image.-
spec.dataSource.objectRef.kind
Required value
A kind of existingVirtualImage
,ClusterVirtualImage
orVirtualDisk
.Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.dataSource.objectRef.name
Required value
A name of existingVirtualImage
,ClusterVirtualImage
orVirtualDisk
. -
spec.dataSource.objectRef.namespaceA namespace where
VirtualImage
orVirtualDisk
is located.
-
-
spec.dataSource.type
Required value
The type of an origin of the image. Options are:
HTTP
— create an image from a file published on http/https service at a given urlContainerImage
— create the image from image stored in container registry.ObjectRef
— fill the disk from another existing resource.Upload
— fill the image with data, uploaded by user via the 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 VirtualDisk
is created, only the disk size .spec.persistentVolumeClaim.size
can be changed, all other fields are immutable.
-
spec
-
spec.dataSourceAn origin of the disk. If empty or absent, empty disk will be created.
-
spec.dataSource.containerImageUse an image stored in external container registry. Only TLS enabled registries are supported. Use caBundle field to provide custom CA chain if needed.
-
spec.dataSource.containerImage.caBundleThe CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Required value
The container registry address of an image.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.nameA name of the secret containing registry credentials.
-
-
-
spec.dataSource.http
Fill the image with data from some external url. Supported schemas are:
- http
- https
For https schema there is an option to skip TLS verification.
-
spec.dataSource.http.caBundleA certificate bundle in Base64 format to verify the TLS certificate of the server hosting the image.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumA checksum of the file, provided by the url, to verify if it was downloaded correctly or wasn’t changed. The file should 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
The http url with an image. The following formats are supported:
- qcow2
- vmdk
- vdi
- iso
- raw these formats can also be compressed with 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
orVirtualDiskSnapshot
to create a disk.-
spec.dataSource.objectRef.kind
Required value
A kind of existingVirtualImage
,ClusterVirtualImage
orVirtualDiskSnapshot
.Allowed values:
VirtualImage
,ClusterVirtualImage
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Required value
A name of existingVirtualImage
,ClusterVirtualImage
orVirtualDiskSnapshot
.
-
-
spec.dataSource.type
Required value
The type of an origin of the disk. Options are:
HTTP
— create an image from a file published on http/https service at a given urlContainerImage
— create the image from image stored in container registry.ObjectRef
— fill the disk from another existing resource.Upload
— fill the disk with data, uploaded by user via the 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
block is specified, in which 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.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
-
spec.persistentVolumeClaim.storageClassName
The name of the StorageClass required by the claim. More info — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
When creating disks, the user can specify the required StorageClass to create the disk, or not explicitly, in which case 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:Immediate
- The disk will be created and available for use immediately after creation.WaitForFirstConsumer
- The disk will be created only when it is used in a virtual machine. In this case, the disk will be created on the host where the virtual machine will be started.
StorageClass can support different storage settings:
- Creating a block device (
Block
) or file system (FileSystem
). - Multiple Access (
ReadWriteMany
) or Single Access (ReadWriteOnce
).ReadWriteMany
disks support multiple access, which enables live migration of virtual machines. In contrast,ReadWriteOnce
disks, which are limited to access from only one host, cannot provide this capability.
For known storage types, the platform will independently determine the most effective settings when creating disks (in descending order of priority):
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
A VolumeSnapshot
is created under the hood of the resource.
-
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 the value is set to true, a virtual disk snapshot will be created if at least one of the following rules is met:
- the virtual disk is not attached to any virtual machine.
- the virtual disk is attached to a virtual machine that is powered off.
- the virtual disk is attached to a virtual machine with an agent, and the freeze operation was successful.
Default:
true
-
spec.virtualDiskName
Required value
The name of the virtual disk to take snapshot. -
spec.volumeSnapshotClassName
Required value
The name of the volume snapshot class to use while snapshotting virtual disk.
-
VirtualImage
Scope: Namespaced
Version: v1alpha2
This resource describes a virtual disk image or installation image (iso) that can be used as a data source for new VirtualDisks
or can be mounted in Virtuals
.
This resource cannot be modified once it has been created.
A container image is created under the hood of this resource, which is stored in a dedicated deckhouse virtualization container registy (DVCR) or PVC, into which the data from the source is filled.
-
spec
-
spec.dataSource
Required value
An origin of the image.-
spec.dataSource.containerImageUse an image stored in external container regitry. Only TLS enabled registries are supported. Use caBundle field to provide custom CA chain if needed.
-
spec.dataSource.containerImage.caBundleThe CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Required value
The container registry address of an image.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.nameA name of the secret containing registry credentials which must be located in the same namespace.
-
-
-
spec.dataSource.http
Fill the image with data from some external url. Supported schemas are:
- http
- https
For https schema there is an option to skip TLS verification.
-
spec.dataSource.http.caBundleThe CA chain in base64 format to verify the url.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumA checksum of the file, provided by the url, to verify if it was downloaded correctly or wasn’t changed. The file should 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
The http url with an image. The following formats are supported:
- qcow2
- vmdk
- vdi
- iso
- raw these formats can also be compressed with 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
orVirtualDisk
to create an image.-
spec.dataSource.objectRef.kind
Required value
A kind of existingVirtualImage
,ClusterVirtualImage
orVirtualDisk
.Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.dataSource.objectRef.name
Required value
A name of existingVirtualImage
,ClusterVirtualImage
orVirtualDisk
.
-
-
spec.dataSource.type
Required value
The type of an origin of the image. Options are:
HTTP
— fill the image with data from some external http/https url.ContainerImage
— use an image, stored in container registry image.ObjectRef
— fill the disk from another existing resource.Upload
— fill the image with data, uploaded by user via the special interface.
Allowed values:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
spec.storage
Required value
Storage type to store the image for current virtualization setup.
ContainerRegistry
— use a dedicated deckhouse virtualization container registry (DVCR). In this case, images will be downloaded and injected to a container, then pushed to a DVCR (shipped with the virtualization module).Kubernetes
- use a Persistent Volume Claim (PVC).
Default:
ContainerRegistry
Allowed values:
ContainerRegistry
,Kubernetes
-
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
-
spec.blockDeviceRef.kind
The type of the block device. Options are:
VirtualDisk
— useVirtualDisk
as the disk. This type is always mounted in RW mode.
Allowed values:
VirtualDisk
-
spec.blockDeviceRef.nameThe name of block device to attach.
-
-
spec.virtualMachineName
Required value
The name of the virtual machine to which the disk or image should be connected.
-
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 CPU model based on an intersection CPU features for selected nodes.
-
spec.cpu.discovery.nodeSelectorA selection of nodes on the basis of which a universal CPU model will be created.
-
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.featuresA list of CPU instructions (features) required when type=Features. More information about features here
Example:
features: - mmx - vmx - sse2
-
spec.cpu.modelThe name of CPU model. More information about models here
Minimal length:
1
Example:
model: IvyBridge
-
spec.cpu.type
Required value
CPUType defines cpu type, the following options are supported:
Host
- a virtual CPU is used that is as close as possible to the platform node’s CPU in terms of instruction set. 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 generations of processors, as their instruction set is different.HostPassthrough
- uses the physical CPU of the platform node directly without any modifications. When using this class, the guest VM can only be transferred to a target node that has a CPU that exactly matches the CPU of the source node.Discovery
- create a CPU model based on an intersecton CPU features for selected nodes.Model
- CPU model name. A CPU model is a named and previously defined set of supported CPU instructions.Features
- the required set of supported instructions for the CPU.
Allowed values:
Host
,HostPassthrough
,Discovery
,Model
,Features
-
-
spec.nodeSelectorNodeSelector defines selects the nodes that are targeted to VM scheduling.
-
spec.nodeSelector.matchExpressions
-
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} 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.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 cpu core count.Allowed values:
X <= 1024
Example:
max: 10
-
spec.sizingPolicies.cores.min
Required value
Minimum cpu core count.Allowed values:
1 <= X
Example:
min: 1
-
spec.sizingPolicies.cores.stepCpu cores count discretization step. I.e. min=2, max=10, step=4 allows to set 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. I.e. min=2Gi, max=4Gi, step=1Gi allows to set 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
-
-
-
VirtualMachineIPAddress
Scope: Namespaced
Version: v1alpha2
-
apiVersion
-
kind
-
metadata
-
specThe desired state of
VirtualMachineIPAddress
.-
spec.staticIPThe requested static IP address that should be assigned to the virtual machine. This field is required only if type is set to ‘Static’.
-
spec.type
Required value
Specifies the mode of IP address assignment. Possible values are “Auto” for automatic IP assignment, or “Static” for assigning a specific IP address.Allowed values:
Auto
,Static
-
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
VirtualMachineIPAddress
.-
apiVersion
-
kind
-
metadata
-
specThe desired state of
VirtualMachineIPAddressLease
.-
spec.virtualMachineIPAddressRefThe link to existing
VirtualMachineIPAddress
.-
spec.virtualMachineIPAddressRef.name
Required value
The name of the referencedVirtualMachineIPAddress
. -
spec.virtualMachineIPAddressRef.namespace
Required value
The Namespace of the referencedVirtualMachineIPAddress
.
-
-
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 the execution of the operation. Applies only for Restart and Stop. In this case, the action on the virtual machine is performed immediately.
-
spec.type
Required value
Type is operation over the virtualmachine:
- Start - start the virtualmachine.
- Stop - stop the virtualmachine.
- Restart - restart the virtualmachine.
- Migrate - migrate the virtualmachine.
Allowed values:
Restart
,Start
,Stop
,Migrate
-
spec.virtualMachineName
Required value
The name of the virtual machine for which the operation is performed.
-
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.nameReplacementsRedefining the virtual machine resource names.
-
spec.nameReplacements.fromThe selector to choose resources for name replacement.
-
spec.nameReplacements.from.kindThe kind of resource to rename.
-
spec.nameReplacements.from.name
Required value
The current name of resource to rename.
-
-
spec.nameReplacements.toThe new resource name.
-
-
spec.virtualMachineSnapshotName
Required value
The name of virtual machine snapshot to restore the virtual machine.Minimal length:
1
-
VirtualMachine
Scope: Namespaced
Version: v1alpha2
This resource describes the configuration and status of a virtual machine (VM). For a running VM, parameter changes can only be applied after the VM is rebooted, except for the following parameters (they are applied on the fly):
.metadata.labels
..metadata.annotations
..spec.disruptions.restartApprovalMode
..spec.disruptions.runPolicy
.
-
spec
-
spec.affinity
The same as in the pods
spec.affinity
parameter in Kubernetes;The affinity setting is completely similar to the above documentation, the only difference is in the names of some parameters. In fact, the following analogs are used:
- podAffinity -> virtualMachineAndPodAffinity
- podAffinityTerm -> virtualMachineAndPodAffinityTerm
-
spec.affinity.nodeAffinityDescribes node affinity scheduling rules for the 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 that can be mounted by disks belonging to the virtual machine. The order of booting is determined by the order in the list.-
spec.blockDeviceRefs.kind
The type of the block device. Options are:
ClusterVirtualImage
— UseClusterVirtualImage
as the disk. This type is always mounted in RO mode. If the image is an iso-image, it will be mounted as a CDROM device.VirtualImage
— UseVirtualImage
as the disk. This type is always mounted in RO mode. If the image is an iso-image, it will be mounted as a CDROM device.VirtualDisk
— UseVirtualDisk
as the disk. This type is always mounted in RW mode.
Allowed values:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.blockDeviceRefs.nameThe name of attached resource.
-
-
spec.bootloader
Defines bootloader for VM.
- BIOS - use legacy BIOS.
- EFI - use Unified Extensible Firmware (EFI/UEFI).
- EFIWithSecureBoot - use UEFI/EFI with SecureBoot support.
Default:
BIOS
Allowed values:
BIOS
,EFI
,EFIWithSecureBoot
-
spec.cpu
Required value
Specifies the CPU settings for the VM.-
spec.cpu.coreFractionGuaranteed share of CPU that will be allocated to the VM. Specified as a percentage.
Default:
100%
-
spec.cpu.cores
Required value
Specifies the number of cores inside the VM. The value must be greater or equal 1.Allowed values:
1 <= X
-
-
spec.disruptions
Describing the policy for applying changes that require rebooting the VM.
Changes to some VM configuration settings require a reboot of the VM to apply them. This policy allows you to specify the behavior of how the VM will respond to such changes.
Default:
{ "restartApprovalMode": "Manual" }
-
spec.disruptions.restartApprovalMode
Approval mode for changes that require rebooting the VM:
Manual
- changes will not be applied until the user reboots the VM himself.Automatic
- the VM will be rebooted immediately after saving the parameters that require rebooting the VM.
Allowed values:
Manual
,Automatic
-
-
spec.enableParavirtualization
Use the
virtio
bus to connect virtual devices of the VM. Set to false to disablevirtio
for this VM.Note: To use paravirtualization mode, some operating systems require the appropriate drivers to be installed.
Default:
true
-
spec.memory
Required value
Specifies the memory settings for the VM.-
spec.memory.size
Required value
Describes the maximum amount of memory resources allowed.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
spec.osType
The parameter allows you to select the type of used OS, for which a VM with an optimal set of required virtual devices and parameters will be created.
- Windows - for Microsoft Windows family operating systems.
- Generic - for other types of OS.
Default:
Generic
Allowed values:
Windows
,Generic
-
spec.priorityClassNameThe same as in the pods
spec.priorityClassName
parameter in Kubernetes; -
spec.provisioningThis block allows you to configure the provisioning script for the VM.
-
spec.provisioning.sysprepRef
Reference to an existing Windows sysprep automation.
Resource structure for the SysprepRef type:
.data.autounattend.xml
..data.unattend.xml
.
-
spec.provisioning.sysprepRef.kind
Required value
The kind of an existing Windows sysprep automation resource. Need to use a custom secret type - “provisioning.virtualization.deckhouse.io/sysprep”Default:
Secret
Allowed values:
Secret
-
spec.provisioning.sysprepRef.name
Required value
Secret name.
-
spec.provisioning.type
This parameter defines the type of provisioning script:
Parameters supported for using the provisioning script:
- UserData - use the cloud-init in the .spec.provisioning.UserData section.
- UserDataRef - use a cloud-init script that resides in a different resource.
- SysprepRef - Use a Windows Automation script that resides in a different resource.
More information: https://cloudinit.readthedocs.io/en/latest/reference/examples.html
Allowed values:
UserData
,UserDataRef
,SysprepRef
-
spec.provisioning.userDataInline cloud-init userdata script.
-
spec.provisioning.userDataRef
A reference to an existing resource with a cloud-init script.
Resource structure for userDataRef type:
.data.userData
.
-
spec.provisioning.userDataRef.kind
Required value
The kind of an existing cloud-init automation resource. Need to use a custom secret type - “provisioning.virtualization.deckhouse.io/cloud-init”Default:
Secret
Allowed values:
Secret
-
spec.provisioning.userDataRef.name
Required value
The name of the resource.
-
-
spec.runPolicy
This parameter defines the VM startup policy
AlwaysOn
- after creation the VM is always in a running state, even in case of its shutdown by OS means.AlwaysOff
- after creation the VM is always in the off state.Manual
- after creation the VM is switched off, the VM state (switching on/off) is controlled via sub-resources or OS means.AlwaysOnUnlessStoppedManually
- after creation the VM is always in a running state, even in case of its shutdown by means of the OS, the VM can be shut down using the corresponding subresource.
Default:
AlwaysOnUnlessStoppedManually
Allowed values:
AlwaysOn
,AlwaysOff
,Manual
,AlwaysOnUnlessStoppedManually
-
spec.terminationGracePeriodSecondsGrace period observed after signalling a VM to stop after which the VM is force terminated.
Default:
60
-
-
spec.tolerations.effect
-
spec.tolerations.key
-
spec.tolerations.operator
-
spec.tolerations.tolerationSeconds
-
spec.tolerations.value
-
-
spec.topologySpreadConstraintsThe same as in the pods
spec.topologySpreadConstraints
parameter 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 theVirtualMachineClass
resource describing the requirements for a virtual CPU, memory and the resource allocation policy and node placement policies for virtual machines. -
spec.virtualMachineIPAddressName
Name for the associated
virtualMachineIPAddress
resource.Specified when it is necessary to use a previously created IP address of the VM.
If not explicitly specified, by default a
virtualMachineIPAddress
resource is created for the VM 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 save the IP address of the virtual machine or not:
- Always - when creating a snapshot, the virtual machine’s IP address will be converted from
Auto
toStatic
and saved. - Never - when creating a snapshot, the virtual machine’s IP address will not be converted.
Default:
Always
Allowed values:
Always
,Never
- Always - when creating a snapshot, the virtual machine’s IP address will be converted from
-
spec.requiredConsistency
Required value
Create a snapshot of a virtual machine only if it is possible to freeze the machine through the agent.
If value is true, the snapshot of the virtual machine will be taken only in the following scenarios:
- the virtual machine is powered off.
- the virtual machine with an agent, and the freeze operation was successful.
Default:
true
-
spec.virtualMachineName
Required value
The name of virtual machine to take snapshot.Minimal length:
1
-
spec.volumeSnapshotClasses
-
spec.volumeSnapshotClasses.storageClassNameThe
StorageClass
name associated withVolumeSnapshotClass
. -
spec.volumeSnapshotClasses.volumeSnapshotClassNameThe name of
VolumeSnapshotClass
to use for virtual disk snapshotting.
-
-