The module lifecycle stage: Generally available version
The module has requirements for installation
Deckhouse Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
DVPInstanceClass
Scope: Cluster
Version: v1alpha1
-
objectmetadata
-
objectspec
-
array of objectsspec.additionalDisksParameters for additional virtual machine disks.
-
stringspec.additionalDisks.sizeSize of the disk.
Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
size: 10Gi -
stringspec.additionalDisks.storageClass
Name of the existing StorageClass that will be used to create the disk.
If the value is not specified, the StorageClass will be used according to the global storageClass parameter setting.
-
-
objectspec.etcdDiskSpecifies settings for the etcd data disk.
-
stringspec.etcdDisk.size
Required value
Size of the disk.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
size: 10Gi -
stringspec.etcdDisk.storageClass
Name of the existing StorageClass that will be used to create the disk.
If the value is not specified, the StorageClass will be used according to the global storageClass parameter setting.
-
-
objectspec.rootDisk
Required value
Specifies settings for the root disk of the virtual machine.-
objectspec.rootDisk.image
Required value
Image parameters that will be used to create the virtual machine’s root disk.-
stringspec.rootDisk.image.kind
Required value
The kind of the image source.Allowed values:
ClusterVirtualImage,VirtualImage,VirtualDisk -
stringspec.rootDisk.image.name
Required value
The name of the image that will be used to create the root disk.
The installation requires Linux OS images with cloud-init pre-installed.
-
-
stringspec.rootDisk.size
Required value
Root disk size.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
size: 10Gi -
stringspec.rootDisk.storageClass
The name of the existing StorageClass will be used to create the virtual machine’s root disk.
If the value is not specified, the StorageClass will be used according to the global storageClass parameter setting.
-
-
objectspec.virtualMachine
Required value
Virtual machine settings for the created node.
The
runPolicy: AlwaysOnUnlessStoppedManuallypolicy is used for virtual machines of nodes. This allows the virtual machine to be stopped manually (for example, for maintenance) without triggering an automatic restart.-
objectspec.virtualMachine.additionalAnnotationsAdditional annotations for a virtual machine resource.
Example:
cluster-owner: user -
objectspec.virtualMachine.additionalLabelsAdditional labels for a virtual machine resource.
Example:
cluster-owner: user -
stringspec.virtualMachine.bootloader
Defines a bootloader for the virtual machine.
BIOS: Use BIOS.EFI: Use Unified Extensible Firmware (EFI/UEFI).EFIWithSecureBoot: Use UEFI/EFI with the Secure Boot support.
Default:
EFIAllowed values:
BIOS,EFI,EFIWithSecureBoot -
objectspec.virtualMachine.cpu
Required value
CPU settings for the virtual machine.-
stringspec.virtualMachine.cpu.coreFraction
Guaranteed share of CPU allocated to the virtual machine, as a percentage.
With the
Autovalue, the choice of the CPU share is handed over to the Vertical VirtualMachine Autoscaler of the parent DVP cluster.The Vertical VirtualMachine Autoscaler is enabled automatically if the
virtualizationmodule is used in the EE edition and thevertical-pod-autoscalermodule is enabled. In addition, theHotplugCPUAndMemoryWithInPlaceResizefeature gate must be enabled in the ModuleConfig of thevirtualizationmodule.Default:
100%Pattern:
^(Auto|(100|[1-9][0-9]?)%)$Example:
coreFraction: 100% -
integerspec.virtualMachine.cpu.cores
Required value
Number of CPU cores for the virtual machine.Allowed values:
1 <= XExample:
cores: '4'
-
-
array of objectsspec.virtualMachine.gpus
List of GPU devices to attach to the virtual machine.
Each entry references a
GPUClassby name; list order is not significant. To attach several devices of the same class, repeat the entry. A single virtual machine takes no more than 16 devices.In the cluster where the virtual machines are created, enable the
GPUfeature gate in thefeatureGatesparameter of thevirtualizationmodule, enable thegpumodule in DRA mode, and create the requestedGPUClass. The full list of requirements is given in GPU devices in virtual machines. A virtual machine with an attached GPU is not live migrated.Changing the parameter of an existing class affects nodes differently, depending on the type of the NodeGroup that references the class:
CloudEphemeral: the nodes are recreated.CloudPermanentand master nodes: thedhctl convergecommand applies the change to the existing virtual machines. A virtual machine is updated in place rather than recreated, and sincedisruptions.restartApprovalModeis set toAutomaticfor it, the change is applied by restarting the virtual machine without additional confirmation. The command updates master nodes one at a time and waits for each of them to become ready.
Passing a device through makes it available inside the virtual machine but does not expose the
nvidia.com/gpuresource on the node. For the node to provide this resource, install the NVIDIA driver with thegpumodule and define thespec.gpusection in the NodeGroup.The Cluster Autoscaler builds the template node of an empty NodeGroup from CPU and memory only, GPU resources are not part of it. A NodeGroup with GPUs and
cloudInstances.minPerZoneset to0is therefore never scaled up by workloads that request a GPU. SetminPerZoneto 1 or higher for such NodeGroups.-
stringspec.virtualMachine.gpus.gpuClassName
Name of the
GPUClassthat selects the GPU to attach, for examplenvidia-h100.The
GPUClassmust already exist in the cluster where the virtual machines are created.Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$Example:
gpuClassName: nvidia-h100
-
stringspec.virtualMachine.liveMigrationPolicy
Live migration policy for the virtual machine.
Manual: Migration is controlled manually.Never: Migration is disabled.AlwaysSafe: Always use safe migration (may fail if VM has a high rate of memory changes).PreferSafe: Prefer safe migration, fallback to forced if needed.AlwaysForced: Always use forced migration with VM slowdown.PreferForced: Prefer forced migration (recommended for master nodes due to high memory activity).
Default:
PreferForcedAllowed values:
Manual,Never,AlwaysSafe,PreferSafe,AlwaysForced,PreferForcedExample:
liveMigrationPolicy: PreferForced -
objectspec.virtualMachine.memory
Required value
Specifies the memory settings for the virtual machine.-
stringspec.virtualMachine.memory.size
Required value
Amount of memory resources allowed for the virtual machine.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Example:
size: 4Gi
-
-
stringspec.virtualMachine.priorityClassNameThe same as in the
spec.priorityClassNameparameter for Kubernetes Pods. -
stringspec.virtualMachine.runPolicy
Virtual machine run policy.
AlwaysOn: The virtual machine should always be running.AlwaysOff: The virtual machine should always be stopped.Manual: The virtual machine state is controlled manually.AlwaysOnUnlessStoppedManually: The virtual machine can be stopped manually (for example, for maintenance), but it will automatically start after a host reboot.
Default:
AlwaysOnUnlessStoppedManuallyAllowed values:
AlwaysOn,AlwaysOff,Manual,AlwaysOnUnlessStoppedManuallyExample:
runPolicy: AlwaysOnUnlessStoppedManually -
stringspec.virtualMachine.virtualMachineClassName
Required value
The name of the VirtualMachineClass.
Intended for centralized configuration of preferred virtual machine parameters. It allows you to specify CPU instruction sets, resource configuration policies for CPU and memory, and define the ratio between these resources.
-
-