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
Required value
Account name.
- apiVersion
Required value
Allowed values:
deckhouse.io/v1
- kind
Required value
Allowed values:
DynamixClusterConfiguration
- layout
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
- location
Required value
The name of the location to install the cluster.
- masterNodeGroup
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
Required value
Partial contents of the fields of the DynamixInstanceClass.
- masterNodeGroup.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
15
Example:
etcdDiskSizeGb: 15
- masterNodeGroup.instanceClass.externalNetwork
Required value
External network name.
Example:
externalNetwork: extnet_vlan_1700
- masterNodeGroup.instanceClass.imageName
Required value
OS image name to use for VM deployment.
Example:
imageName: '1'
- masterNodeGroup.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= X
Example:
memory: 8192
- masterNodeGroup.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= X
Example:
numCPUs: 2
- masterNodeGroup.instanceClass.pool
Required value
Storage pool name.
Example:
pool: pool_a
- masterNodeGroup.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in Dynamix VirtualMachines.
Default:
50
Example:
rootDiskSizeGb: 50
- masterNodeGroup.instanceClass.storageEndpoint
Required value
Storage name.
Example:
storageEndpoint: SharedTatlin_G1_SEP
- masterNodeGroup.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
- nameservers
A list of IP addresses of the DNS servers.
Default:
[]
- nodeGroups
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- nodeGroups.instanceClass
Required value
Partial contents of the fields of the.
- nodeGroups.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
15
Example:
etcdDiskSizeGb: 15
- nodeGroups.instanceClass.externalNetwork
Required value
External network name.
Example:
externalNetwork: extnet_vlan_1700
- nodeGroups.instanceClass.imageName
Required value
OS image name to use for VM deployment.
Example:
imageName: '1'
- nodeGroups.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= X
Example:
memory: 8192
- nodeGroups.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= X
Example:
numCPUs: 2
- nodeGroups.instanceClass.pool
Storage pool name.
Example:
pool: pool_a
- nodeGroups.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in Dynamix VirtualMachines.
Default:
50
Example:
rootDiskSizeGb: 50
- nodeGroups.instanceClass.storageEndpoint
Storage name.
Example:
storageEndpoint: SharedTatlin_G1_SEP
- nodeGroups.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.
- nodeGroups.nodeTemplate.annotations
The same as the
metadata.annotations
standard field.Example:
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.Example:
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.Example:
taints: - effect: NoExecute key: ship-class value: frigate
- nodeGroups.nodeTemplate.taints.effect
Allowed values:
NoSchedule
,PreferNoSchedule
,NoExecute
- nodeGroups.nodeTemplate.taints.key
- nodeGroups.nodeTemplate.taints.value
- nodeGroups.replicas
Required value
The number of nodes to create.
- nodeNetworkCIDR
IP CIDR to be assigned to the internal segment of this ViNS.
- provider
Required value
Parameters for connecting to the Dynamix.
- provider.appId
Required value
App ID.
- provider.appSecret
Required value
App Secret.
- provider.controllerUrl
Required value
The URL to the Dynamix API endpoint.
- provider.insecure
Set to
true
if Dynamix has a self-signed certificate.Default:
false
- provider.oAuth2Url
Required value
The URL to the SSO Dynamix API endpoint.
- sshPublicKey
Required value
A public key for accessing nodes.