AzureClusterConfiguration
Version: deckhouse.io/v1
Describes the configuration of a cloud cluster in Azure.
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:
d8 system 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: AzureClusterConfiguration
layout: Standard
sshPublicKey: "<SSH_PUBLIC_KEY>"
vNetCIDR: 10.0.0.0/16
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
subnetCIDR: 10.0.0.0/24
masterNodeGroup:
replicas: 1
instanceClass:
machineSize: Standard_D4ds_v4
urn: Canonical:UbuntuServer:18.04-LTS:18.04.202207120
enableExternalIP: false
provider:
subscriptionId: "<SUBSCRIPTION_ID>"
location: westeurope
clientId: "<CLIENT_ID>"
clientSecret: "<CLIENT_SECRET>"
tenantId: "<TENANT_ID>"
- stringapiVersion
Required value
Allowed values:
deckhouse.io/v1,deckhouse.io/v1alpha1 - stringkind
Required value
Allowed values:
AzureClusterConfiguration - stringlayout
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
Allowed values:
Standard - masterNodeGroup
Required value
The definition of the master’s NodeGroup.
For the changes to take effect, run
dhctl convergeafter modifying the parameters of themasterNodeGroupsection.- booleanmasterNodeGroup.instanceClass.acceleratedNetworking
Accelerated Networking provides up to 30Gbps in networking throughput.
Default:
false - object
The additional tags to attach to the instances created (in addition to those specified in the cloud provider configuration).
Example:
project: cms-production severity: critical - integermasterNodeGroup.instanceClass.diskSizeGb
Instance root disk size in gibibytes.
Example:
diskSizeGb: 40 - stringmasterNodeGroup.instanceClass.diskType
The type of the volumes to create.
You can view a list of available volume types using the Azure CLI:
az vm list-skus -l westeurope --zoneExample:
diskType: StandardSSD_LRS - booleanmasterNodeGroup.instanceClass.enableExternalIP
Defines whether to enable external IP for an instance or not.
Only available for the
Standardlayout.Default:
falseAllowed values:
true,false - integermasterNodeGroup.instanceClass.etcdDiskSizeGb
Etcd disk size in gibibytes.
Default:
20Example:
etcdDiskSizeGb: 20 - stringmasterNodeGroup.instanceClass.machineSize
Required value
The type of instances to provision.
Getting a list of available types for the specific region using the Azure CLI:
az vm list-sizes --location westeurope -o tableExample:
machineSize: Standard_F4 - stringmasterNodeGroup.instanceClass.urn
Required value
The VM image to use for an instance.
More information about virtual machine images can be found in the official documentation.
Getting the urn with Azure CLI (column #4):
az vm image list --location westeurope --publisher Canonical --all --sku 20_04-lts -o table az vm image list --location westeurope --publisher OpenLogic --all --sku 7.5 -o tableBy default, the image specified in
AzureCloudDiscoveryDatais used (the master of the cluster is based on this image).The list of OS and their versions supported by Deckhouse can be found in the documentation (take into account the Deckhouse version used).
- 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 stringsmasterNodeGroup.zones
A list of zones where master nodes can be created.
You can browse a list of zones available for the selected instance type using the Azure CLI:
az vm list-skus -l westeurope -o tableDefault:
[1,2,3]
- objectnameservers
DNS server configuration for the Azure virtual network used by the cluster nodes.
- array of stringsnameservers.addresses
A list of DNS servers.
Example:
addresses: - 8.8.8.8 - 8.8.4.4- stringElement of the array
Pattern:
^(([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])$
- 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 AzureInstanceClass.
- booleannodeGroups.instanceClass.acceleratedNetworking
Accelerated Networking provides up to 30Gbps in networking throughput.
Default:
false - object
The additional tags to attach to the instances created (in addition to those specified in the cloud provider configuration).
Example:
project: cms-production severity: critical - integernodeGroups.instanceClass.diskSizeGb
Instance root disk size in gibibytes.
Example:
diskSizeGb: 40 - stringnodeGroups.instanceClass.diskType
The type of the volumes to create.
You can view a list of available volume types using the Azure CLI:
az vm list-skus -l westeurope --zoneExample:
diskType: StandardSSD_LRS - booleannodeGroups.instanceClass.enableExternalIP
Defines whether to enable external IP for an instance or not.
Only available for the
Standardlayout.Default:
falseAllowed values:
true,false - stringnodeGroups.instanceClass.machineSize
Required value
The type of instances to provision.
Getting a list of available types for the specific region using the Azure CLI:
az vm list-sizes --location westeurope -o tableExample:
machineSize: Standard_F4 - stringnodeGroups.instanceClass.urn
Required value
The VM image to use for an instance.
More information about virtual machine images can be found in the official documentation.
Getting the urn with Azure CLI (column #4):
az vm image list --location westeurope --publisher Canonical --all --sku 20_04-lts -o table az vm image list --location westeurope --publisher OpenLogic --all --sku 7.5 -o tableBy default, the image specified in
AzureCloudDiscoveryDatais used (the master of the cluster is based on this image).The list of OS and their versions supported by Deckhouse can be found in the documentation (take into account the Deckhouse version used).
- 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.Note that you have to re-create all the machines to add new tags if tags were modified in the running cluster.
Format —
key: value.Example:
labels: environment: production app: warp-drive-ai - array of objectsnodeGroups.nodeTemplate.taints
The same as the
.spec.taintsfield of the Node object.Available fields:
effect,key, andvalues.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.
- array of stringsnodeGroups.zones
A list of zones where static nodes can be created;
You can browse a list of zones available for the selected instance type using the Azure CLI:
az vm list-skus -l westeurope -o tableDefault:
[1,2,3]
- array of objectspeeredVNets
An array of
VNetsto merge with the cluster network.The service account must have access to all the
VNetslisted above. You have to configure the peering connection manually if no access is available.- stringpeeredVNets.resourceGroupName
Required value
The name of the resource group with the VNet.
- stringpeeredVNets.vnetName
Required value
The name of the VNet.
- stringprovider.clientId
Required value
The client ID.
- stringprovider.clientSecret
Required value
The client’s secret.
Keep in mind the expiration date of the secret. By default, it is valid for one year. Refer to the official documentation to create a service account with a longer secret expiration date.
- stringprovider.location
Required value
The name of the geo location to create all the resources. Getting available locations from Azure CLI:
az account list-locations -o table - stringprovider.subscriptionId
Required value
The ID of the subscription.
- stringprovider.tenantId
Required value
The ID of the tenant.
- array of stringsserviceEndpoints
The list of Service endpoints to associate with the subnet.
Virtual Network (VNet) service endpoint provides secure and direct connectivity to Azure services over an optimized route over the Azure backbone network. Endpoints allow you to secure your critical Azure service resources to only your virtual networks. Service Endpoints enables private IP addresses in the VNet to reach the endpoint of an Azure service without needing a public IP address on the VNet.
More information about Service Endpoints can be found in the official documentation.
- stringElement of the array
Allowed values:
Microsoft.AzureActiveDirectory,Microsoft.AzureCosmosDB,Microsoft.ContainerRegistry,Microsoft.CognitiveServices,Microsoft.EventHub,Microsoft.KeyVault,Microsoft.ServiceBus,Microsoft.Sql,Microsoft.Storage,Microsoft.Storage.Global,Microsoft.Web
- array of stringssshAllowList
A list of CIDR’s allowed to connect to nodes via SSH.
By default,
*. - stringsshPublicKey
Required value
Public key to access nodes as
azureuser. - integerstandard.natGatewayPublicIpCount
The number of IP addresses for the NAT Gateway (pricing).
NAT Gatewayis not used if the value is0.Default:
0
- stringsubnetCIDR
Required value
A subnet from the
vNetCIDRaddress space for cluster nodes.A virtual network can be segmented into one or more subnets up to the limits.
Pattern:
^(([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]))$Example:
subnetCIDR: 10.1.2.0/24 - object
A list of tags in the
key: valueformat to attach to all cluster resources.You have to re-create all the machines to add new tags if tags were modified in the running cluster.
- stringvNetCIDR
Required value
An address space of the virtual network in the CIDR format.
A virtual network is a virtual, isolated portion of the Azure public network. Each virtual network is dedicated to your subscription.
Warning. If you are setting up peering, using vpn or linking networks of other clusters, network address spaces should not overlap.
Pattern:
^(([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]))$Example:
vNetCIDR: 10.0.0.0/16 - array of stringszones
The globally restricted set of zones that this Cloud Provider works with.