The module is actively developed. It might significantly change in the future.
ClusterVirtualMachineImage
Scope: Cluster
Version: v1alpha2
Describes a virtual machine disk image that can be used as a data source for new VirtualMachineDisks
or can be mounted in VirtualMachines
as is. This resource type is available to all namespaces in the cluster. This resource is immutable, once created, cannot be modified.
A container image is created under the hood of this resource, which is stored in a dedicated deckhouse virtualization container registry (DVCR).
-
spec
object
-
spec.dataSource
object
Required value
-
spec.dataSource.clusterVirtualMachineImage
object
Use another existing
ClusterVirtualMachineImage
.-
spec.dataSource.clusterVirtualMachineImage.name
string
Required value
A name of existingClusterVirtualMachineImage
.
-
spec.dataSource.clusterVirtualMachineImage.name
string
-
spec.dataSource.containerImage
object
Use 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.caBundle
string
The CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
string
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
object
-
spec.dataSource.containerImage.imagePullSecret.name
string
A name of the secret containing registry credentials.
-
spec.dataSource.containerImage.imagePullSecret.namespace
string
A namespace where imagePullSecret is located.
-
spec.dataSource.containerImage.imagePullSecret.name
string
-
spec.dataSource.containerImage.caBundle
string
-
spec.dataSource.http
object
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.caBundle
string
The CA chain in base64 format to verify the url.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksum
object
A 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
string
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
string
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
spec.dataSource.http.checksum.md5
string
-
spec.dataSource.http.insecureSkipVerify
boolean
If a CA chain isn’t provided, this option can be used to turn off TLS certificate checks. As noted, it is insecure and shouldn’t be used in production environments.
Default:
false
-
spec.dataSource.http.url
string
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.type
string
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.VirtualMachineImage
— use another existingVirtualMachineImage
.ClusterVirtualMachineImage
— use another existingClusterVirtualMachineImage
.Upload
— fill the image with data, uploaded by user via the special interface.
Allowed values:
HTTP
,ContainerImage
,VirtualMachineImage
,ClusterVirtualMachineImage
,Upload
-
spec.dataSource.virtualMachineImage
object
Use another existing
VirtualMachineImage
.-
spec.dataSource.virtualMachineImage.name
string
Required value
A name of existingVirtualMachineImage
. -
spec.dataSource.virtualMachineImage.namespace
string
Required value
A namespace whereVirtualMachineImage
is located.
-
spec.dataSource.virtualMachineImage.name
string
-
spec.dataSource.clusterVirtualMachineImage
object
-
spec.dataSource
object
VirtualMachine
Scope: Namespaced
Version: v1alpha2
-
spec
object
-
spec.affinity
object
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.nodeAffinity
object
Describes node affinity scheduling rules for the VM.
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
object
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
array of objects
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key string
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator string
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
array of strings
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Element of the array string
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
array of objects
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key string
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator string
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
array of strings
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Element of the array string
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
array of objects
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Allowed values:
1 <= X <= 100
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
object
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
array of objects
Required value
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
array of objects
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key string
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator string
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
array of strings
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Element of the array string
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
array of objects
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key string
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator string
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
array of strings
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Element of the array string
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
array of objects
-
spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
array of objects
-
spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAffinity
object
Describes pod and VM affinity scheduling rules.
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
array of strings
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array string
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
string
Required value
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Allowed values:
1 <= X <= 100
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
object
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
array of strings
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array string
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey string
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity
object
Describes pod and VM anti-affinity scheduling rules.
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Element of the array string
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
string
Required value
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Allowed values:
1 <= X <= 100
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
array of objects
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key string
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator string
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Element of the array string
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels object
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
array of objects
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
array of strings
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Element of the array string
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey string
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
array of objects
-
spec.blockDevices
array of objects
Required value
List of block devices that can be mounted by disks belonging to the VM. The order of booting is determined by the order in the list.-
spec.blockDevices.clusterVirtualMachineImage
object
Attach
ClusterVirtualMachineImage
as the disk in RO mode. If the image is an iso-image, it will be mounted as a CDROM device.-
spec.blockDevices.clusterVirtualMachineImage.name
string
Required value
The name of theClusterVirtualMachineImage
resource.
-
spec.blockDevices.clusterVirtualMachineImage.name
string
-
spec.blockDevices.type
string
The type of the block device. Options are:
ClusterVirtualMachineImage
— UseClusterVirtualMachineImage
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.VirtualMachineImage
— UseVirtualMachineImage
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.VirtualMachineDisk
— UseVirtualMachineDisk
as the disk. This type is always mounted in RW mode.
Allowed values:
ClusterVirtualMachineImage
,VirtualMachineImage
,VirtualMachineDisk
-
spec.blockDevices.virtualMachineDisk
object
Attach
VirtualMachineDisk
as the disk device in RW mode.-
spec.blockDevices.virtualMachineDisk.name
string
Required value
The name of theVirtualMachineDisk
resource.
-
spec.blockDevices.virtualMachineDisk.name
string
-
spec.blockDevices.virtualMachineImage
object
Use
VirtualMachineImage
as the disk. The image with storage ContainerRegistry will be mounted in RO mode. If the image is an iso-image, it will be mounted as a CDROM device. The image with storage Kubernetes will be mounted as ephemeral disk, so changes to volume will be lost on reboot.-
spec.blockDevices.virtualMachineImage.name
string
Required value
The name of theVirtualMachineImage
resource.
-
spec.blockDevices.virtualMachineImage.name
string
-
spec.blockDevices.clusterVirtualMachineImage
object
-
spec.bootloader
string
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
object
Required value
Specifies the CPU settings for the VM.-
spec.cpu.coreFraction
string
Guaranteed share of CPU that will be allocated to the VM. Specified as a percentage. Supported values:
5%
,10%
,25%
,50%
,100%
.Default:
100%
Allowed values:
5%
,10%
,25%
,50%
,100%
-
spec.cpu.cores
integer
Required value
Specifies the number of cores inside the VM. The value must be greater or equal 1.Allowed values:
1 <= X
-
spec.cpu.coreFraction
string
-
spec.disruptions
object
Disruptions settings for VM.
Some VM settings require a reboot of the VM when changing the configuration. To reboot, it is necessary to approve the changes. The
approvalMode
parameter is used for this purpose.Default:
{ "restartApprovalMode": "Manual" }
-
spec.disruptions.restartApprovalMode
string
The approval mode for disruptive updates:
Manual
— to approve restart, you must do this manually by copying the restart ID from.status.restartID
to.spec.restartApprovalID
.Automatic
— automatically approve disruption-involving updates.
Allowed values:
Manual
,Automatic
-
spec.disruptions.restartApprovalMode
string
-
spec.enableParavirtualization
boolean
Use the
virtio
bus to attach disk devices. Set to false to disablevirtio
for this VM.Default:
true
-
spec.memory
object
Required value
Specifies the memory settings for the VM.-
spec.memory.size
string
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.memory.size
string
-
spec.nodeSelector
object
The same as in the pods
spec.nodeSelector
parameter in Kubernetes; -
spec.osType
string
For the selected type of operating system, determines the set of devices and other parameters required for correct operation will be applied to VM.
- Windows - for the Microsoft Windows family of OS.
- Generic - for other types of OS.
Default:
Generic
Allowed values:
Windows
,Generic
-
spec.priorityClassName
string
The same as in the pods
spec.priorityClassName
parameter in Kubernetes; -
spec.provisioning
object
This block allows you to configure the provisioning script for the VM.
-
spec.provisioning.type
string
This parameter defines the type of provisioning script:
-
UserData - allows the use of inline cloud-init userdata in the .spec.provisioning.UserData section.
-
UserDataSecret - allows the use of an existing Secret with cloud-init userdata.
More information: https://cloudinit.readthedocs.io/en/latest/reference/examples.html
Allowed values:
UserData
,UserDataSecret
-
-
spec.provisioning.userData
string
Inline cloud-init userdata script.
-
spec.provisioning.userDataSecretRef
object
Reference to an existing Secret with a cloud-init userdata script.
-
spec.provisioning.userDataSecretRef.name
string
Required value
Secret name.
-
spec.provisioning.userDataSecretRef.name
string
-
spec.provisioning.type
string
-
spec.restartApprovalID
string
Hash of virtual machine changes from .status.restartID. Required to approve restart for applying disruptive changes.
-
spec.runPolicy
string
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.AlwaysOnUnlessStoppedManualy
- 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:
AlwaysOnUnlessStoppedManualy
Allowed values:
AlwaysOn
,AlwaysOff
,Manual
,AlwaysOnUnlessStoppedManualy
-
spec.terminationGracePeriodSeconds
integer
Grace period observed after signalling a VM to stop after which the VM is force terminated.
Default:
60
-
spec.tolerations
array of objects
The same as in the pods
spec.tolerations
parameter in Kubernetes;- spec.tolerations.effect string
- spec.tolerations.key string
- spec.tolerations.operator string
- spec.tolerations.tolerationSeconds integer
- spec.tolerations.value string
-
spec.topologySpreadConstraints
array of objects
The same as in the pods
spec.topologySpreadConstraints
parameter in Kubernetes;-
spec.topologySpreadConstraints.labelSelector
object
-
spec.topologySpreadConstraints.labelSelector.matchExpressions
array of objects
- spec.topologySpreadConstraints.labelSelector.matchExpressions.key string
- spec.topologySpreadConstraints.labelSelector.matchExpressions.operator string
-
spec.topologySpreadConstraints.labelSelector.matchExpressions.values
array of strings
- spec.topologySpreadConstraints.labelSelector.matchExpressions.values.Element of the array string
- spec.topologySpreadConstraints.labelSelector.matchLabels object
-
spec.topologySpreadConstraints.labelSelector.matchExpressions
array of objects
- spec.topologySpreadConstraints.maxSkew integer
- spec.topologySpreadConstraints.topologyKey string
- spec.topologySpreadConstraints.whenUnsatisfiable string
-
spec.topologySpreadConstraints.labelSelector
object
-
spec.virtualMachineIPAddressClaimName
string
The name for associated
VirtualMachineIPAddressClaim
resource.If specified, VirtualMachineIPAddressClaim should exists on VirtualMachine creation. If not specified, a VirtualMachine name will be used to create an implicit VirtualMachineIPAddressClaim. This claim will be deleted on VirtualMachine deletion.
-
spec.affinity
object
VirtualMachineBlockDeviceAttachment
Scope: Namespaced
Version: v1alpha2
-
spec
object
-
spec.blockDevice
object
Required value
The block device that will be connected as a hot plug disk to the virtual machine.-
spec.blockDevice.type
string
The type of the block device. Options are:
VirtualMachineDisk
— UseVirtualMachineDisk
as the disk. This type is always mounted in RW mode.
Allowed values:
VirtualMachineDisk
-
spec.blockDevice.virtualMachineDisk
object
Use
VirtualMachineDisk
as the disk. This type is always mounted in RW mode.-
spec.blockDevice.virtualMachineDisk.name
string
Required value
The name ofVirtualMachineDisk
-
spec.blockDevice.virtualMachineDisk.name
string
-
spec.blockDevice.type
string
-
spec.virtualMachineName
string
Required value
The name of the virtual machine to which the disk or image is connected.
-
spec.blockDevice
object
VirtualMachineDisk
Scope: Namespaced
Version: v1alpha2
Describes a virtual machine disk which could be mounted to VirtualMachines
as is. After creation, only the .spec.persistentVolumeClaim.size
field is available for upward change, all other fields are immutable.
A PVC is created under the hood of the resource, into which the data from the source is filled.
-
spec
object
-
spec.dataSource
object
An origin of the disk. If empty or absent, empty disk will be created.
-
spec.dataSource.clusterVirtualMachineImage
object
Use another existing
ClusterVirtualMachineImage
.-
spec.dataSource.clusterVirtualMachineImage.name
string
Required value
A name of existingClusterVirtualMachineImage
.
-
spec.dataSource.clusterVirtualMachineImage.name
string
-
spec.dataSource.containerImage
object
Use an image stored in external container regitry. Use 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.caBundle
string
The CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
string
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
object
-
spec.dataSource.containerImage.imagePullSecret.name
string
A name of the secret containing registry credentials.
-
spec.dataSource.containerImage.imagePullSecret.name
string
-
spec.dataSource.containerImage.caBundle
string
-
spec.dataSource.http
object
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.caBundle
string
The CA chain in base64 format to verify the url.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksum
object
A 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
string
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
string
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
spec.dataSource.http.checksum.md5
string
-
spec.dataSource.http.insecureSkipVerify
boolean
If a CA chain isn’t provided, this option can be used to turn off TLS certificate checks. As noted, it is insecure and shouldn’t be used in production environments.
Default:
false
-
spec.dataSource.http.url
string
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.type
string
Required value
The type of an origin of the disk. Options are:
HTTP
— fill the disk with data from some external http/https url.ContainerImage
— fill the disk from an image, stored in container registry image.VirtualMachineImage
— fill the disk from another existingVirtualMachineImage
.ClusterVirtualMachineImage
— fill the disk from another existingClusterVirtualMachineImage
.Upload
— fill the disk with data, uploaded by user via the special interface.
Allowed values:
HTTP
,ContainerImage
,VirtualMachineImage
,ClusterVirtualMachineImage
,Upload
-
spec.dataSource.virtualMachineImage
object
Use another existing
VirtualMachineImage
.-
spec.dataSource.virtualMachineImage.name
string
Required value
A name of existingVirtualMachineImage
.
-
spec.dataSource.virtualMachineImage.name
string
-
spec.dataSource.clusterVirtualMachineImage
object
-
spec.persistentVolumeClaim
object
Required value
Settings for creating PVCs to store the disk.-
spec.persistentVolumeClaim.size
string
Desired size for PVC to store the disk. If the disk is created from an image, the size must be at least as large as the original unpacked image.
Pattern:
^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
-
spec.persistentVolumeClaim.storageClassName
string
The name of the StorageClass required by the claim. More info — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
-
spec.persistentVolumeClaim.size
string
-
spec.dataSource
object
VirtualMachineImage
Scope: Namespaced
Version: v1alpha2
Describes a virtual machine disk image which could be used as data source for new VirtualMachineDisks
or could be mounted to VirtualMachines
as is. This resource is immutable, once created, cannot be modified.
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
object
-
spec.dataSource
object
Required value
An origin of the image.-
spec.dataSource.clusterVirtualMachineImage
object
Use another existing
ClusterVirtualMachineImage
.-
spec.dataSource.clusterVirtualMachineImage.name
string
Required value
A name of existingClusterVirtualMachineImage
.
-
spec.dataSource.clusterVirtualMachineImage.name
string
-
spec.dataSource.containerImage
object
Use an image stored in external container regitry. Use 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.caBundle
string
The CA chain in base64 format to verify the container registry.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
string
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
object
-
spec.dataSource.containerImage.imagePullSecret.name
string
A name of the secret containing registry credentials which must be located in the same namespace.
-
spec.dataSource.containerImage.imagePullSecret.name
string
-
spec.dataSource.containerImage.caBundle
string
-
spec.dataSource.http
object
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.caBundle
string
The CA chain in base64 format to verify the url.
Example:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksum
object
A 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
string
Length:
32..32
Pattern:
^[0-9a-fA-F]{32}$
Example:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
string
Length:
64..64
Pattern:
^[0-9a-fA-F]{64}$
Example:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
spec.dataSource.http.checksum.md5
string
-
spec.dataSource.http.insecureSkipVerify
boolean
If a CA chain isn’t provided, this option can be used to turn off TLS certificate checks. As noted, it is insecure and shouldn’t be used in production environments.
Default:
false
-
spec.dataSource.http.url
string
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.type
string
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.VirtualMachineImage
— use another existingVirtualMachineImage
.ClusterVirtualMachineImage
— use another existingClusterVirtualMachineImage
.Upload
— fill the image with data, uploaded by user via the special interface.
Allowed values:
HTTP
,ContainerImage
,VirtualMachineImage
,ClusterVirtualMachineImage
,Upload
-
spec.dataSource.virtualMachineImage
object
Use another existing
VirtualMachineImage
.-
spec.dataSource.virtualMachineImage.name
string
Required value
A name of existingVirtualMachineImage
.
-
spec.dataSource.virtualMachineImage.name
string
-
spec.dataSource.clusterVirtualMachineImage
object
-
spec.storage
string
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).
Allowed values:
ContainerRegistry
-
spec.dataSource
object
VirtualMachineIPAddressClaim
Scope: Namespaced
Version: v1alpha2
- apiVersion string
- kind string
- metadata object
-
spec
object
The desired state of
VirtualMachineIPAddressClaim
.-
spec.address
string
The requested IP address. If omitted the next available IP address will be assigned.
-
spec.leaseName
string
The issued
VirtualMachineIPAddressLease
, managed automatically. -
spec.reclaimPolicy
string
Reclaim policies to determine the behavior of
VirtualMachineIPAddressLease
uponVirtualMachineIPAddressClaim
deletion.Delete
— this means that aVirtualMachineIPAddressLease
is automatically deleted when a user deletes the correspondingVirtualMachineIPAddressClaim
.Retain
— if a user deletes aVirtualMachineIPAddressClaim
, the correspondingVirtualMachineIPAddressLease
will not be deleted. Instead, it is moved to the Released phase, where its ip address can be manually reclaimed.
Default:
Delete
Allowed values:
Delete
,Retain
-
spec.address
string
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
VirtualMachineIPAddressClaim
.- apiVersion string
- kind string
- metadata object
-
spec
object
The desired state of
VirtualMachineIPAddressLease
.-
spec.claimRef
object
The link to existing
VirtualMachineIPAddressClaim
.-
spec.claimRef.name
string
Required value
The name of the referencedVirtualMachineIPAddressClaim
. -
spec.claimRef.namespace
string
Required value
The Namespace of the referencedVirtualMachineIPAddressClaim
.
-
spec.claimRef.name
string
-
spec.reclaimPolicy
string
Reclaim policies to determine the behavior of
VirtualMachineIPAddressLease
uponVirtualMachineIPAddressClaim
deletion.Delete
— this means that aVirtualMachineIPAddressLease
is automatically deleted when a user deletes the correspondingVirtualMachineIPAddressClaim
.Retain
— if a user deletes aVirtualMachineIPAddressClaim
, the correspondingVirtualMachineIPAddressLease
will not be deleted. Instead, it is moved to the Released phase, where its ip address can be manually reclaimed.
Default:
Delete
Allowed values:
Delete
,Retain
-
spec.claimRef
object
VirtualMachineOperation
Scope: Namespaced
Version: v1alpha2
-
spec
object
-
spec.force
boolean
Force 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
string
Operation over the virtualmachine:
- Start - start the virtualmachine.
- Stop - stop the virtualmachine.
- Restart - restart the virtualmachine.
Allowed values:
Start
,Stop
,Restart
-
spec.virtualMachineName
string
Required value
The name of the virtual machine for which the operation is performed.
-
spec.force
boolean