selectel_mks_nodegroup_v1
Creates and manages a Managed Kubernetes node group using public API v1. For more information about node groups, see the official Selectel documentation.
Example usage
resource "selectel_mks_nodegroup_v1" "nodegroup_1" {
cluster_id = selectel_mks_cluster_v1.cluster_1.id
project_id = selectel_mks_cluster_v1.cluster_1.project_id
region = selectel_mks_cluster_v1.cluster_1.region
availability_zone = "ru-3a"
nodes_count = 3
cpus = 2
ram_mb = 2048
volume_gb = 20
volume_type = "fast.ru-3a"
labels = {
"label-key0": "label-value0",
"label-key1": "label-value1",
"label-key2": "label-value2",
}
taints {
key = "test-key-0"
value = "test-value-0"
effect = "NoSchedule"
}
taints {
key = "test-key-1"
value = "test-value-1"
effect = "NoExecute"
}
taints {
key = "test-key-2"
value = "test-value-2"
effect = "PreferNoSchedule"
}
}
Argument Reference
-
cluster_id
- (Required) Unique identifier of the associated Managed Kubernetes cluster. Changing this creates a new node group. You can create up to eight group nodes in a cluster. Retrieved from the selectel_mks_cluster_v1 resource. -
project_id
- (Required) Unique identifier of the associated Cloud Platform project. Changing this creates a new node group. Retrieved from the selectel_vpc_project_v2 resource. Learn more about Cloud Platform projects. -
region
- (Required) Pool where the cluster is located, for example,ru-3
. Changing this creates a new node group. Learn more about available pools in the Availability matrix. -
availability_zone
(Required) Pool segment where all nodes of the node group are located. Changing this creates a new node group. Learn more about available pool segments in the Availability matrix. -
nodes_count
(Required) Number of worker nodes in the node group. The maximum number of nodes in a node group is 15. Changing this resizes the node group ifenable_autoscale
is false. -
cpus
(Optional) Number of CPU cores for each node. Can be skipped only whenflavor_id
is set. Changing this creates a new node group. Learn more about Configurations. -
ram_mb
(Optional) Amount of RAM in MB for each node. Can be skipped only whenflavor_id
is set. Changing this creates a new node group. Learn more about Configurations. -
volume_gb
(Optional) Volume size in GB for each node. Can be skipped only whenflavor_id
is set andlocal_volume
istrue
. Changing this creates a new node group. Learn more about Configurations. -
volume_type
(Optional) Type of an OpenStack blockstorage volume for each node. Can be skipped only whenflavor_id
is set andlocal_volume
istrue
. Changing this creates a new node group. Available volume types arefast
,basic
, anduniversal
. The format is<volume_type>
.<availability_zone>
. Learn more about Network volumes. -
local_volume
(Optional) Specifies if nodes use a local volume. Changing this creates a new node group. Boolean flag, the default value is false. -
flavor_id
(Optional) Unique identifier of an OpenStack flavor for all nodes in the node group. Changing this creates a new node group. Learn more about Flavors. -
labels
(Optional) List of Kubernetes labels applied to each node in the node group. -
taints
(Optional) List of Kubernetes taints applied to each node in the node group. Contains a key-value pair and an effect applied for the taint. Available effects areNoSchedule
,PreferNoSchedule
, andNoExecute
. Learn more about Taints. -
keypair_name
(Optional) Name of the SSH key added to all nodes. Changing this creates a new node group. -
user_data
(Optional) Base64-encoded script that worker nodes run on the first boot. Changing this creates a new node group. Learn more about User data. -
affinity_policy
(Optional) Specifies affinity policy of the nodes. Changing this creates a new node group. Available values aresoft-anti-affinity
andsoft-affinity
. The default value issoft-anti-affinity
. For more information about affinity and anti-affinity, see the official Kubernetes documentation. -
enable_autoscale
(Optional) Enables or disables autoscaling of the node group. Boolean flag, the default value is false.autoscale_min_nodes
andautoscale_max_nodes
must be specified. Learn more about Autoscaling.autoscale_min_nodes
(Optional) Minimum number of worker nodes in the node group.autoscale_max_nodes
(Optional) Maximum number of worker nodes in the node group.
Attributes Reference
-
nodes
- List of nodes in the node group. -
nodegroup_type
- Type of the node group. Available values areSTANDARD
andGPU
.
Import
You can import a node group:
export OS_DOMAIN_NAME=<account_id>
export OS_USERNAME=<username>
export OS_PASSWORD=<password>
export SEL_PROJECT_ID=<selectel_project_id>
export SEL_REGION=<selectel_pool>
terraform import selectel_mks_nodegroup_v1.nodegroup_1 <cluster_id>/<nodegroup_id>
where:
-
<account_id>
— Selectel account ID. The account ID is in the top right corner of the Control panel. Learn more about Registration. -
<username>
— Name of the service user. To get the name, in the top right corner of the Control panel, go to the account menu ⟶ Profile and Settings ⟶ User management ⟶ the Service users tab ⟶ copy the name of the required user. Learn more about Service users. -
<password>
— Password of the service user. -
<selectel_project_id>
— Unique identifier of the associated Cloud Platform project. To get the project ID, in the Control panel, go to Cloud Platform ⟶ project name ⟶ copy the ID of the required project. Learn more about Cloud Platform projects. -
<selectel_pool>
— Pool where the cluster is located, for example,ru-3
. To get information about the pool, in the Control panel, go to Cloud Platform ⟶ Kubernetes. The pool is in the Pool column. -
<cluster_id>
— Unique identifier of the cluster, for example,b311ce58-2658-46b5-b733-7a0f418703f2
. To get the cluster ID, in the Control panel, go to Cloud Platform ⟶ Kubernetes ⟶ the cluster page ⟶ copy the ID at the top of the page under the cluster name, near the region and pool. -
<nodegroup_id>
— Unique identifier of the node, for example,63ed5342-b22c-4c7a-9d41-c1fe4a142c13
. To get the cluster ID, in the Control panel, go to Cloud Platform ⟶ Kubernetes. Click the required cluster ⟶ the required node group. The node group ID is at the top of the page under the node group name, near the region and pool.