YandexClusterConfiguration
Version: deckhouse.io/v1
Describes the configuration of a cloud cluster in Yandex Cloud.
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 svc/deckhouse-leader -c 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: YandexClusterConfiguration
layout: Standard
nodeNetworkCIDR: 127.0.0.1/8
labels:
label-2: b
sshPublicKey: "<SSH_PUBLIC_KEY>"
masterNodeGroup:
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: fd8nb7ecsbvj76dfaa8b
nodeGroups:
- name: worker
replicas: 1
zones:
- ru-central1-a
instanceClass:
cores: 4
memory: 8192
imageID: fd8nb7ecsbvj76dfaa8b
coreFraction: 50
externalIPAddresses:
- 198.51.100.5
- Auto
provider:
cloudID: "<CLOUD_ID>"
folderID: "<FOLDER_ID>"
serviceAccountJSON: |
{
"id": "id",
"service_account_id": "service_account_id",
"key_algorithm": "RSA_2048",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIwID....AQAB\n-----END PUBLIC KEY-----\n",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIE....1ZPJeBLt+\n-----END PRIVATE KEY-----\n"
}
- object
A list of DHCP parameters to use for all subnets.
Note that setting dhcpOptions may lead to problems.
- object
One or more pre-existing subnets mapped to respective zone.
Warning! Deckhouse will create a route table that must be manually attached to these subnets.
Pattern:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}$
Example:
existingZoneToSubnetIDMap: ru-central1-a: e2lu8r1tbbtryhdpa9ro ru-central1-b: e2lu8r1tbbtryhdpa9ro ru-central1-d: e2lu8r1tbbtryhdpa9ro
- string
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
Allowed values:
Standard
,WithoutNAT
,WithNATInstance
- object
Required value
The definition of the master’s NodeGroup.
For the changes to take effect, run
dhctl converge
after modifying the parameters of themasterNodeGroup
section.- integer
etcd disk size in gibibytes.
If this parameter is changed, each etcd disk must be manually expanded in the Yandex Cloud interface (the reason for this behavior is in the issue).
Default:
10
Example:
etcdDiskSizeGb: 10
- array of strings
A list of external IP addresses, listed in the order of the zones where nodes will be created.
The following values can be specified in the list:
- IP address from an additional external network for the corresponding zone (parameter
externalSubnetIDs
); - reserved public IP address, if the list of additional external networks is not defined (parameter
externalSubnetIDs
); Auto
, to order a public IP address in the corresponding zone.
Please note:
-
The array elements must be listed according to the order of zones (parameter
zones
) in which the nodes will be created.For example:
- <RU-CENTRAL1-A-IP-ADDRESS> - <RU-CENTRAL1-B-IP-ADDRESS> - <RU-CENTRAL1-D-IP-ADDRESS>
- The number of elements in the
externalIPAddresses
array must equal the number of nodes in the group (thereplicas
parameter). To automatically order public IP addresses in the zone, use the valueAuto
in the list of theexternalIPAddresses
parameter at the corresponding position (matching the order of zones). - If
externalIPAddresses
is not specified, the nodes in the group will be ordered without external IP addresses.
- IP address from an additional external network for the corresponding zone (parameter
- array of strings
List of additional external networks connected to the nodes.
The node interface that is in the list will be assigned as the default gateway.
Also, a route for the node’s internal network interface will be added for the entire subnet specified in nodeNetworkCIDR.
The array elements must be listed in the same order as the zones (parameter
zones
) in which the nodes will be created. For example:- <RU-CENTRAL1-A-SUBNET-ID> - <RU-CENTRAL1-B-SUBNET-ID> - <RU-CENTRAL1-D-SUBNET-ID>
- array
Not required value.
A limited set of zones in which master nodes can be created.
The order in which zones are specified does not influence the sequence of node creation. Nodes are assigned to zones in alphabetical order: the first node is placed in the alphabetically first zone, the second node in the second zone, and so forth. If there are more nodes than zones, the assignment process restarts from the beginning of the zone list after placing a node in the last alphabetical zone.
- array of objects
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- integer
Percent of reserved CPU capacity on a Yandex Compute Instance. Details…
Default:
100
Allowed values:
5
,20
,50
,100
Example:
coreFraction: 20
- array of strings
A list of external IP addresses, listed in the order of the zones where nodes will be created.
The following values can be specified in the list:
- IP address from an additional external network for the corresponding zone (parameter
externalSubnetIDs
); - reserved public IP address, if the list of additional external networks is not defined (parameter
externalSubnetIDs
); Auto
, to order a public IP address in the corresponding zone.
Please note:
-
The array elements must be listed according to the order of zones (parameter
zones
) in which the nodes will be created.For example:
- <RU-CENTRAL1-A-IP-ADDRESS> - <RU-CENTRAL1-B-IP-ADDRESS> - <RU-CENTRAL1-D-IP-ADDRESS>
- The number of elements in the
externalIPAddresses
array must equal the number of nodes in the group (thereplicas
parameter). To automatically order public IP addresses in the zone, use the valueAuto
in the list of theexternalIPAddresses
parameter at the corresponding position (matching the order of zones). - If
externalIPAddresses
is not specified, the nodes in the group will be ordered without external IP addresses.
- IP address from an additional external network for the corresponding zone (parameter
- array of strings
List of additional external networks connected to the nodes.
The node interface that is in the list will be assigned as the default gateway.
Also, a route for the node’s internal network interface will be added for the entire subnet specified in nodeNetworkCIDR.
The array elements must be listed in the same order as the zones (parameter
zones
) in which the nodes will be created. For example:- <RU-CENTRAL1-A-SUBNET-ID> - <RU-CENTRAL1-B-SUBNET-ID> - <RU-CENTRAL1-D-SUBNET-ID>
- object
The same as the
metadata.annotations
standard field.Example:
annotations: ai.fleet.com/discombobulate: "true"
- object
A list of labels to attach to cluster resources.
The same as the
metadata.labels
standard field.Note that you have to re-create all the machines to add new tags if tags were modified in the running cluster.
Example:
labels: environment: production app: warp-drive-ai
- array of objects
The same as the
.spec.taints
field of the Node object.Available fields:
effect
,key
, andvalues
.Example:
taints: - effect: NoExecute key: ship-class value: frigate
- array
A limited set of zones in which nodes can be created.
The order in which zones are specified does not influence the sequence of node creation. Nodes are assigned to zones in alphabetical order: the first node is placed in the alphabetically first zone, the second node in the second zone, and so forth. If there are more nodes than zones, the assignment process restarts from the beginning of the zone list after placing a node in the last alphabetical zone.
- string
Required value
A key to the Service Account in the JSON format.
You can get it by using
[yc iam key create](environment.html)
command.Pattern:
^[ \t\n]*\{(.|\n)*\}[ \t\n]*$
Example:
serviceAccountJSON: | { "id": "...", "service_account_id": "...", "created_at": "2022-08-04T05:38:34.756137618Z", "key_algorithm": "RSA_2048", "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" }
- string
API-key for cloud metrics exporter.
- If parameter is empty, cloud metrics exporter will not be deployed in the cluster.
- If parameter is
Auto
, Deckhouse will create service account with themonitoring.viewer
role and create API-key manually. Provider service account should have theadmin
role. - Any other value is considered a valid API-key. See this instruction for creating API-key.
Service account should have
monitoring.viewer
role.
Default:
""
- string
A reserved external IP address (or
externalSubnetID
address if specified).Pattern:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- object
Computing resources that are allocated to the NAT instance. If not specified, the default values will be used.