If the cluster control plane is hosted on a virtual machines or bare-metal servers, the cloud provider uses the settings from the cloud-provider-dynamix module in the Deckhouse configuration. If the cluster control plane is hosted in a cloud, the cloud provider uses the DynamixClusterConfiguration structure for configuration.

DynamixClusterConfiguration

Version: deckhouse.io/v1

Describes the configuration of a cloud cluster in Dynamix.

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

After updating the node parameters, you need to run the dhctl converge command to apply the changes.

Example:

apiVersion: deckhouse.io/v1
kind: DynamixClusterConfiguration
layout: StandardWithInternalNetwork
sshPublicKey: ssh-rsa AAAA
location: dynamix
account: acc_user
nodeNetworkCIDR: 10.241.32.0/24
nameservers:
- 10.0.0.10
provider:
  controllerUrl: "<controller url>"
  oAuth2Url: "<oAuth2 url>"
  appId: "<app id>"
  appSecret: "<app secret>"
  insecure: true
masterNodeGroup:
  replicas: 1
  instanceClass:
    numCPUs: 6
    memory: 16384
    rootDiskSizeGb: 50
    imageName: "<image name>"
    storageEndpoint: "<storage endpoint>"
    pool: "<pool>"
    externalNetwork: "<external network>"
nodeGroups:
- name: worker
  replicas: 1
  instanceClass:
    numCPUs: 6
    memory: 16384
    rootDiskSizeGb: 50
    imageName: "<image name>"
    externalNetwork: "<external network>"
  • account
    string

    Required value

    Account name.

  • apiVersion
    string

    Required value

    Allowed values: deckhouse.io/v1

  • kind
    string

    Required value

    Allowed values: DynamixClusterConfiguration

  • layout
    string

    Required value

    The way resources are located in the cloud.

    Read more about possible provider layouts.

  • location
    string

    Required value

    The name of the location to install the cluster.

  • masterNodeGroup
    object

    Required value

    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
      object

      Required value

      Partial contents of the fields of the DynamixInstanceClass.

      • masterNodeGroup.instanceClass.etcdDiskSizeGb
        integer

        Etcd disk size in GiB.

        Default: 15

        Example:

        etcdDiskSizeGb: 15
        
      • masterNodeGroup.instanceClass.externalNetwork
        string

        Required value

        External network name.

        Example:

        externalNetwork: extnet_vlan_1700
        
      • masterNodeGroup.instanceClass.imageName
        string

        Required value

        OS image name to use for VM deployment.

        Example:

        imageName: '1'
        
      • masterNodeGroup.instanceClass.memory
        integer

        Required value

        Memory in MiB to allocate to the VM.

        Allowed values: 1 <= X

        Example:

        memory: 8192
        
      • masterNodeGroup.instanceClass.numCPUs
        integer

        Required value

        Number of vCPUs to allocate to the VM.

        Allowed values: 1 <= X

        Example:

        numCPUs: 2
        
      • masterNodeGroup.instanceClass.pool
        string

        Required value

        Storage pool name.

        Example:

        pool: pool_a
        
      • masterNodeGroup.instanceClass.rootDiskSizeGb
        integer

        Root disk size in GiB to use in Dynamix VirtualMachines.

        Default: 50

        Example:

        rootDiskSizeGb: 50
        
      • masterNodeGroup.instanceClass.storageEndpoint
        string

        Required value

        Storage name.

        Example:

        storageEndpoint: SharedTatlin_G1_SEP
        
    • masterNodeGroup.replicas
      integer

      Required value

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

      Allowed values: 1 <= X

  • nameservers
    array of strings

    A list of IP addresses of the DNS servers.

    Default: []

  • nodeGroups
    array of objects

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

    • nodeGroups.instanceClass
      object

      Required value

      Partial contents of the fields of the.

      • nodeGroups.instanceClass.etcdDiskSizeGb
        integer

        Etcd disk size in GiB.

        Default: 15

        Example:

        etcdDiskSizeGb: 15
        
      • nodeGroups.instanceClass.externalNetwork
        string

        Required value

        External network name.

        Example:

        externalNetwork: extnet_vlan_1700
        
      • nodeGroups.instanceClass.imageName
        string

        Required value

        OS image name to use for VM deployment.

        Example:

        imageName: '1'
        
      • nodeGroups.instanceClass.memory
        integer

        Required value

        Memory in MiB to allocate to the VM.

        Allowed values: 1 <= X

        Example:

        memory: 8192
        
      • nodeGroups.instanceClass.numCPUs
        integer

        Required value

        Number of vCPUs to allocate to the VM.

        Allowed values: 1 <= X

        Example:

        numCPUs: 2
        
      • nodeGroups.instanceClass.pool
        string

        Storage pool name.

        Example:

        pool: pool_a
        
      • nodeGroups.instanceClass.rootDiskSizeGb
        integer

        Root disk size in GiB to use in Dynamix VirtualMachines.

        Default: 50

        Example:

        rootDiskSizeGb: 50
        
      • nodeGroups.instanceClass.storageEndpoint
        string

        Storage name.

        Example:

        storageEndpoint: SharedTatlin_G1_SEP
        
    • nodeGroups.name
      string

      Required value

      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
        object

        The same as the metadata.annotations standard field.

        Example:

        annotations:
          ai.fleet.com/discombobulate: 'true'
        
      • nodeGroups.nodeTemplate.labels
        object

        A list of labels to attach to cluster resources.

        The same as the metadata.labels standard field.

        Example:

        labels:
          environment: production
          app: warp-drive-ai
        
      • nodeGroups.nodeTemplate.taints
        array of objects

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

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

        Example:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • nodeGroups.nodeTemplate.taints.effect
          string

          Allowed values: NoSchedule, PreferNoSchedule, NoExecute

        • nodeGroups.nodeTemplate.taints.key
          string
        • nodeGroups.nodeTemplate.taints.value
          string
    • nodeGroups.replicas
      integer

      Required value

      The number of nodes to create.

  • nodeNetworkCIDR
    string

    IP CIDR to be assigned to the internal segment of this ViNS.

  • provider
    object

    Required value

    Parameters for connecting to the Dynamix.

    • provider.appId
      string

      Required value

      App ID.

    • provider.appSecret
      string

      Required value

      App Secret.

    • provider.controllerUrl
      string

      Required value

      The URL to the Dynamix API endpoint.

    • provider.insecure
      boolean

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

      Default: false

    • provider.oAuth2Url
      string

      Required value

      The URL to the SSO Dynamix API endpoint.

  • sshPublicKey
    string

    Required value

    A public key for accessing nodes.