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

  • metadata
    object
  • spec
    object
    • spec.additionalDisks
      array of objects
      Parameters for additional virtual machine disks.
      • spec.additionalDisks.size
        string
        Size of the disk.

        Pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        Example:

        size: 10Gi
        
      • spec.additionalDisks.storageClass
        string

        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.

    • spec.etcdDisk
      object
      Specifies settings for the etcd data disk.
      • spec.etcdDisk.size
        string

        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
        
      • spec.etcdDisk.storageClass
        string

        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.

    • spec.rootDisk
      object

      Required value

      Specifies settings for the root disk of the virtual machine.
      • spec.rootDisk.image
        object

        Required value

        Image parameters that will be used to create the virtual machine’s root disk.
        • spec.rootDisk.image.kind
          string

          Required value

          The kind of the image source.

          Allowed values: ClusterVirtualImage, VirtualImage, VirtualDisk

        • spec.rootDisk.image.name
          string

          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.

      • spec.rootDisk.size
        string

        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
        
      • spec.rootDisk.storageClass
        string

        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.

    • spec.virtualMachine
      object

      Required value

      Virtual machine settings for the created node.

      The runPolicy: AlwaysOnUnlessStoppedManually policy 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.

      • spec.virtualMachine.additionalAnnotations
        object
        Additional annotations for a virtual machine resource.

        Example:

        cluster-owner: user
      • spec.virtualMachine.additionalLabels
        object
        Additional labels for a virtual machine resource.

        Example:

        cluster-owner: user
      • spec.virtualMachine.bootloader
        string

        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: EFI

        Allowed values: BIOS, EFI, EFIWithSecureBoot

      • spec.virtualMachine.cpu
        object

        Required value

        CPU settings for the virtual machine.
        • spec.virtualMachine.cpu.coreFraction
          string

          Guaranteed share of CPU allocated to the virtual machine, as a percentage.

          With the Auto value, 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 virtualization module is used in the EE edition and the vertical-pod-autoscaler module is enabled. In addition, the HotplugCPUAndMemoryWithInPlaceResize feature gate must be enabled in the ModuleConfig of the virtualization module.

          Default: 100%

          Pattern: ^(Auto|(100|[1-9][0-9]?)%)$

          Example:

          coreFraction: 100%
          
        • spec.virtualMachine.cpu.cores
          integer

          Required value

          Number of CPU cores for the virtual machine.

          Allowed values: 1 <= X

          Example:

          cores: '4'
          
      • spec.virtualMachine.gpus
        array of objects

        List of GPU devices to attach to the virtual machine.

        Each entry references a GPUClass by 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 GPU feature gate in the featureGates parameter of the virtualization module, enable the gpu module in DRA mode, and create the requested GPUClass. 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.
        • CloudPermanent and master nodes: the dhctl converge command applies the change to the existing virtual machines. A virtual machine is updated in place rather than recreated, and since disruptions.restartApprovalMode is set to Automatic for 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/gpu resource on the node. For the node to provide this resource, install the NVIDIA driver with the gpu module and define the spec.gpu section 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.minPerZone set to 0 is therefore never scaled up by workloads that request a GPU. Set minPerZone to 1 or higher for such NodeGroups.

        • spec.virtualMachine.gpus.gpuClassName
          string

          Name of the GPUClass that selects the GPU to attach, for example nvidia-h100.

          The GPUClass must already exist in the cluster where the virtual machines are created.

          Length: 1..253

          Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

          Example:

          gpuClassName: nvidia-h100
          
      • spec.virtualMachine.liveMigrationPolicy
        string

        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: PreferForced

        Allowed values: Manual, Never, AlwaysSafe, PreferSafe, AlwaysForced, PreferForced

        Example:

        liveMigrationPolicy: PreferForced
        
      • spec.virtualMachine.memory
        object

        Required value

        Specifies the memory settings for the virtual machine.
        • spec.virtualMachine.memory.size
          string

          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
          
      • spec.virtualMachine.priorityClassName
        string
        The same as in the spec.priorityClassName parameter for Kubernetes Pods.
      • spec.virtualMachine.runPolicy
        string

        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: AlwaysOnUnlessStoppedManually

        Allowed values: AlwaysOn, AlwaysOff, Manual, AlwaysOnUnlessStoppedManually

        Example:

        runPolicy: AlwaysOnUnlessStoppedManually
        
      • spec.virtualMachine.virtualMachineClassName
        string

        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.