Доступно только в Enterprise Edition.
Находится в процессе активного развития. Функциональность может существенно измениться.

Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля cloud-provider-vcd в конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру VCDClusterConfiguration для настройки.

VCDClusterConfiguration

Version: deckhouse.io/v1

Describes the configuration of a cloud cluster in VCD.

Used by the cloud provider if a cluster’s control plane is hosted in the cloud.

Run the following command to change the configuration in a running cluster:

kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration

Пример:

apiVersion: deckhouse.io/v1
kind: VCDClusterConfiguration
sshPublicKey: "<SSH_PUBLIC_KEY>"
organization: My_Org
virtualDataCenter: My_Org
virtualApplicationName: Cloud
mainNetwork: internal
layout: Standard
internalNetworkCIDR: 172.16.2.0/24
masterNodeGroup:
  replicas: 1
  instanceClass:
    template: Templates/ubuntu-focal-20.04
    sizingPolicy: 4cpu8ram
    rootDiskSizeGb: 20
    etcdDiskSizeGb: 20
    storageProfile: nvme
nodeGroups:
- name: worker
  replicas: 1
  instanceClass:
    template: Templates/ubuntu-focal-20.04
    sizingPolicy: 16cpu32ram
    storageProfile: ssd
provider:
  server: "<SERVER>"
  username: "<USERNAME>"
  password: "<PASSWORD>"
  insecure: true
  • apiVersionстрока

    Обязательный параметр

    Допустимые значения: deckhouse.io/v1

  • internalNetworkCIDRстрока

    Subnet for master nodes in the internal network.

    Addresses are allocated starting with the tenth address. E.g., if you have the 192.168.199.0/24 subnet, addresses will be allocated starting with 192.168.199.10.

    Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

  • kindстрока

    Обязательный параметр

    Допустимые значения: VCDClusterConfiguration

  • layoutстрока

    Обязательный параметр

    The way resources are located in the cloud.

    Read more about possible provider layouts.

  • mainNetworkстрока

    Обязательный параметр

    Path to the network that VirtualMachines’ primary NICs will connect to (default gateway).

    Пример:

    mainNetwork: internal
    
  • masterNodeGroupобъект

    Обязательный параметр

    The definition of the master’s NodeGroup.

    Caution! After changing the parameters of the section, you need to run dhctl converge for the changes to take effect.

    • masterNodeGroup.instanceClassобъект

      Обязательный параметр

      Partial contents of the fields of the VCDInstanceClass.

      • masterNodeGroup.instanceClass.etcdDiskSizeGbцелочисленный

        Etcd disk size in gigabytes.

        По умолчанию: 10

        Пример:

        etcdDiskSizeGb: 10
        
      • masterNodeGroup.instanceClass.mainNetworkIPAddressesмассив строк

        A list of static IP addresses (with a CIDR prefix) sequentially allocated to nodes in the mainNetwork.

        By default, the DHCP client is enabled.

        Пример:

        mainNetworkIPAddresses:
        - 10.1.14.20
        - 10.1.4.21
        
        • Элемент массивастрока

          An IP address with a CIDR prefix.

          Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

      • masterNodeGroup.instanceClass.placementPolicyстрока

        PlacementPolicy is the placement policy to be used on this machine. If no placement policy is specified, default placement policy will be used to create the nodes.

        Пример:

        placementPolicy: Hypervisor1
        
      • masterNodeGroup.instanceClass.rootDiskSizeGbцелочисленный

        root disk size in gigabytes.

        По умолчанию: 20

        Пример:

        rootDiskSizeGb: 20
        
      • masterNodeGroup.instanceClass.sizingPolicyстрока

        Обязательный параметр

        SizingPolicy is the sizing policy to be used on this machine. If no sizing policy is specified, default sizing policy will be used to create the nodes.

        Пример:

        sizingPolicy: 4Cpu8Memory
        
      • masterNodeGroup.instanceClass.storageProfileстрока

        Обязательный параметр

        StorageProfile is the storage profile to be used on this machine.

        Пример:

        storageProfile: ssd
        
      • masterNodeGroup.instanceClass.templateстрока

        Обязательный параметр

        Path of the template OVA that is to be used. Consists of catalog and template path.

        Пример:

        template: Linux/ubuntu2204-cloud-ova
        
    • masterNodeGroup.replicasцелочисленный

      Обязательный параметр

      The number of master nodes to create. It is important to have an odd number of masters to ensure a quorum.

      Допустимые значения: 1 <= X

  • nodeGroupsмассив объектов

    An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).

    • nodeGroups.instanceClassобъект

      Обязательный параметр

      Partial contents of the fields of the VCDInstanceClass.

      • nodeGroups.instanceClass.mainNetworkIPAddressesмассив строк

        A list of static IP addresses (with a CIDR prefix) sequentially allocated to nodes in the mainNetwork.

        By default, the DHCP client is enabled.

        Пример:

        mainNetworkIPAddresses:
        - 10.1.14.20
        - 10.1.4.21
        
        • Элемент массивастрока

          An IP address with a CIDR prefix.

          Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

      • nodeGroups.instanceClass.placementPolicyстрока

        PlacementPolicy is the placement policy to be used on this machine. If no placement policy is specified, default placement policy will be used to create the nodes.

        Пример:

        placementPolicy: Hypervisor1
        
      • nodeGroups.instanceClass.rootDiskSizeGbцелочисленный

        root disk size in gigabytes.

        По умолчанию: 20

        Пример:

        rootDiskSizeGb: 20
        
      • nodeGroups.instanceClass.sizingPolicyстрока

        Обязательный параметр

        SizingPolicy is the sizing policy to be used on this machine. If no sizing policy is specified, default sizing policy will be used to create the nodes.

        Пример:

        sizingPolicy: 4Cpu8Memory
        
      • nodeGroups.instanceClass.storageProfileстрока

        Обязательный параметр

        StorageProfile is the storage profile to be used on this machine.

        Пример:

        storageProfile: ssd
        
      • nodeGroups.instanceClass.templateстрока

        Обязательный параметр

        Path of the template OVA that is to be used. Consists of catalog and template path.

        Пример:

        template: Linux/ubuntu2204-cloud-ova
        
    • nodeGroups.nameстрока

      Обязательный параметр

      The name of the NodeGroup to use for generating node names.

    • nodeGroups.nodeTemplate

      Parameters of Node objects in Kubernetes to add after registering the node.

      • nodeGroups.nodeTemplate.annotationsобъект

        The same as the metadata.annotations standard field.

        Пример:

        annotations:
          ai.fleet.com/discombobulate: 'true'
        
      • nodeGroups.nodeTemplate.labelsобъект

        A list of labels to attach to cluster resources.

        The same as the metadata.labels standard field.

        Пример:

        labels:
          environment: production
          app: warp-drive-ai
        
      • nodeGroups.nodeTemplate.taintsмассив объектов

        The same as the .spec.taints field of the Node object.

        Caution! Only the effect, key, values fields are available.

        Пример:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • nodeGroups.nodeTemplate.taints.effectстрока

          Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

        • nodeGroups.nodeTemplate.taints.keyстрока
        • nodeGroups.nodeTemplate.taints.valueстрока
    • nodeGroups.replicasцелочисленный

      Обязательный параметр

      The number of nodes to create.

  • organizationстрока

    Обязательный параметр

    Vcloud Director Organization name.

  • providerобъект

    Обязательный параметр

    Parameters for connecting to the VCD.

    • provider.insecureбулевый

      Set to true if VCD has a self-signed certificate.

      По умолчанию: false

    • provider.passwordстрока

      Обязательный параметр

      The user’s password.

    • provider.serverстрока

      Обязательный параметр

      The host or the IP address of the VCD server.

    • provider.usernameстрока

      Обязательный параметр

      The login ID.

  • sshPublicKeyстрока

    Обязательный параметр

    A public key for accessing nodes.

  • virtualApplicationNameстрока

    Обязательный параметр

    Vcloud Director Virtual Application name (belongs to Virtual Data Center).

    Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

  • virtualDataCenterстрока

    Обязательный параметр

    Vcloud Director Virtual Data Center name (belongs to Organization).