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>"
- stringaccount
Required value
Account name.
- stringapiVersion
Required value
Allowed values:
deckhouse.io/v1 - stringkind
Required value
Allowed values:
DynamixClusterConfiguration - stringlayout
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
- stringlocation
Required value
The name of the location to install the cluster.
- objectmasterNodeGroup
Required value
The definition of the master’s NodeGroup.
Caution! After changing the parameters of the section, you need to run
dhctl convergefor the changes to take effect.- objectmasterNodeGroup.instanceClass
Required value
Partial contents of the fields of the DynamixInstanceClass.
- integermasterNodeGroup.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
15Example:
etcdDiskSizeGb: 15 - stringmasterNodeGroup.instanceClass.externalNetwork
Required value
External network name.
Example:
externalNetwork: extnet_vlan_1700 - stringmasterNodeGroup.instanceClass.imageName
Required value
OS image name to use for VM deployment.
Example:
imageName: '1' - integermasterNodeGroup.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= XExample:
memory: 8192 - integermasterNodeGroup.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= XExample:
numCPUs: 2 - stringmasterNodeGroup.instanceClass.pool
Required value
Storage pool name.
Example:
pool: pool_a - integermasterNodeGroup.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in Dynamix VirtualMachines.
Default:
50Example:
rootDiskSizeGb: 50 - stringmasterNodeGroup.instanceClass.storageEndpoint
Required value
Storage name.
Example:
storageEndpoint: SharedTatlin_G1_SEP
- integermasterNodeGroup.replicas
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
- array of stringsnameservers
A list of IP addresses of the DNS servers.
Default:
[] - array of objectsnodeGroups
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- objectnodeGroups.instanceClass
Required value
Partial contents of the fields of the.
- integernodeGroups.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
15Example:
etcdDiskSizeGb: 15 - stringnodeGroups.instanceClass.externalNetwork
Required value
External network name.
Example:
externalNetwork: extnet_vlan_1700 - stringnodeGroups.instanceClass.imageName
Required value
OS image name to use for VM deployment.
Example:
imageName: '1' - integernodeGroups.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= XExample:
memory: 8192 - integernodeGroups.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= XExample:
numCPUs: 2 - stringnodeGroups.instanceClass.pool
Storage pool name.
Example:
pool: pool_a - integernodeGroups.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in Dynamix VirtualMachines.
Default:
50Example:
rootDiskSizeGb: 50 - stringnodeGroups.instanceClass.storageEndpoint
Storage name.
Example:
storageEndpoint: SharedTatlin_G1_SEP
- stringnodeGroups.name
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.
- objectnodeGroups.nodeTemplate.annotations
The same as the
metadata.annotationsstandard field.Example:
annotations: ai.fleet.com/discombobulate: 'true' - objectnodeGroups.nodeTemplate.labels
A list of labels to attach to cluster resources.
The same as the
metadata.labelsstandard field.Example:
labels: environment: production app: warp-drive-ai - array of objectsnodeGroups.nodeTemplate.taints
The same as the
.spec.taintsfield of the Node object.Caution! Only the
effect,key,valuesfields are available.Example:
taints: - effect: NoExecute key: ship-class value: frigate- stringnodeGroups.nodeTemplate.taints.effect
Allowed values:
NoSchedule,PreferNoSchedule,NoExecute - stringnodeGroups.nodeTemplate.taints.key
- stringnodeGroups.nodeTemplate.taints.value
- integernodeGroups.replicas
Required value
The number of nodes to create.
- stringnodeNetworkCIDR
IP CIDR to be assigned to the internal segment of this ViNS.
- objectprovider
Required value
Parameters for connecting to the Dynamix.
- stringprovider.appId
Required value
App ID.
- stringprovider.appSecret
Required value
App Secret.
- stringprovider.controllerUrl
Required value
The URL to the Dynamix API endpoint.
- booleanprovider.insecure
Set to
trueif Dynamix has a self-signed certificate.Default:
false - stringprovider.oAuth2Url
Required value
The URL to the SSO Dynamix API endpoint.
- stringsshPublicKey
Required value
A public key for accessing nodes.