diff --git a/.changelog/2964.txt b/.changelog/2964.txt new file mode 100644 index 0000000000..bc3e47e7fc --- /dev/null +++ b/.changelog/2964.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_kubernetes_node_pool: Fix the issue where `node_os` cannot be modified +``` \ No newline at end of file diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_node_pool.md b/tencentcloud/services/tke/resource_tc_kubernetes_node_pool.md index 391cfa4df8..7c4efd497b 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_node_pool.md +++ b/tencentcloud/services/tke/resource_tc_kubernetes_node_pool.md @@ -9,7 +9,6 @@ Provide a resource to create an auto scaling group for kubernetes cluster. Example Usage ```hcl - variable "availability_zone" { default = "ap-guangzhou-3" } @@ -19,8 +18,8 @@ variable "cluster_cidr" { } data "tencentcloud_vpc_subnets" "vpc" { - is_default = true - availability_zone = var.availability_zone + is_default = true + availability_zone = var.availability_zone } variable "default_instance_type" { @@ -28,7 +27,7 @@ variable "default_instance_type" { } //this is the cluster with empty worker config -resource "tencentcloud_kubernetes_cluster" "managed_cluster" { +resource "tencentcloud_kubernetes_cluster" "example" { vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id cluster_cidr = var.cluster_cidr cluster_max_pod_num = 32 @@ -36,26 +35,27 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { cluster_desc = "test cluster desc" cluster_max_service_num = 32 cluster_version = "1.18.4" - cluster_deploy_type = "MANAGED_CLUSTER" + cluster_deploy_type = "MANAGED_CLUSTER" } //this is one example of managing node using node pool -resource "tencentcloud_kubernetes_node_pool" "mynodepool" { - name = "mynodepool" - cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id - max_size = 6 - min_size = 1 - vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id - subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] - retry_policy = "INCREMENTAL_INTERVALS" - desired_capacity = 4 - enable_auto_scale = true +resource "tencentcloud_kubernetes_node_pool" "example" { + name = "tf-example" + cluster_id = tencentcloud_kubernetes_cluster.example.id + max_size = 6 + min_size = 1 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 4 + enable_auto_scale = true multi_zone_subnet_policy = "EQUALITY" + node_os = "img-9qrfy1xt" auto_scaling_config { - instance_type = var.default_instance_type - system_disk_type = "CLOUD_PREMIUM" - system_disk_size = "50" + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" orderly_security_group_ids = ["sg-24vswocp"] data_disk { @@ -69,8 +69,8 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { password = "test123#" enhanced_security_service = false enhanced_monitor_service = false - host_name = "12.123.0.0" - host_name_style = "ORIGINAL" + host_name = "12.123.0.0" + host_name_style = "ORIGINAL" } labels = { @@ -79,47 +79,49 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { } taints { - key = "test_taint" - value = "taint_value" + key = "test_taint" + value = "taint_value" effect = "PreferNoSchedule" } taints { - key = "test_taint2" - value = "taint_value2" + key = "test_taint2" + value = "taint_value2" effect = "PreferNoSchedule" } node_config { - extra_args = [ - "root-dir=/var/lib/kubelet" - ] + docker_graph_path = "/var/lib/docker" + extra_args = [ + "root-dir=/var/lib/kubelet" + ] } } ``` Using Spot CVM Instance + ```hcl -resource "tencentcloud_kubernetes_node_pool" "mynodepool" { - name = "mynodepool" - cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id - max_size = 6 - min_size = 1 - vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id - subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] - retry_policy = "INCREMENTAL_INTERVALS" - desired_capacity = 4 - enable_auto_scale = true +resource "tencentcloud_kubernetes_node_pool" "example" { + name = "tf-example" + cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id + max_size = 6 + min_size = 1 + vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id + subnet_ids = [data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id] + retry_policy = "INCREMENTAL_INTERVALS" + desired_capacity = 4 + enable_auto_scale = true multi_zone_subnet_policy = "EQUALITY" auto_scaling_config { - instance_type = var.default_instance_type - system_disk_type = "CLOUD_PREMIUM" - system_disk_size = "50" + instance_type = var.default_instance_type + system_disk_type = "CLOUD_PREMIUM" + system_disk_size = "50" orderly_security_group_ids = ["sg-24vswocp", "sg-3qntci2v", "sg-7y1t2wax"] - instance_charge_type = "SPOTPAID" - spot_instance_type = "one-time" - spot_max_price = "1000" + instance_charge_type = "SPOTPAID" + spot_instance_type = "one-time" + spot_max_price = "1000" data_disk { disk_type = "CLOUD_PREMIUM" @@ -136,11 +138,9 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { labels = { "test1" = "test1", - "test2" = "test2", + "test2" = "test2" } - } - ``` Import @@ -148,5 +148,5 @@ Import tke node pool can be imported, e.g. ``` -$ terraform import tencentcloud_kubernetes_node_pool.test cls-xxx#np-xxx +$ terraform import tencentcloud_kubernetes_node_pool.example cls-d2xdg3io#np-380ay1o8 ``` \ No newline at end of file diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_node_pool_extension.go b/tencentcloud/services/tke/resource_tc_kubernetes_node_pool_extension.go index e91b5216eb..d967ced3b1 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_node_pool_extension.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_node_pool_extension.go @@ -618,6 +618,8 @@ func resourceTencentCloudKubernetesNodePoolUpdateOnStart(ctx context.Context) er // ModifyClusterNodePool if d.HasChanges( + "node_os", + "node_os_type", "labels", "tags", ) { diff --git a/website/docs/r/kubernetes_node_pool.html.markdown b/website/docs/r/kubernetes_node_pool.html.markdown index 5ace797ad4..b8fe3e0c1b 100644 --- a/website/docs/r/kubernetes_node_pool.html.markdown +++ b/website/docs/r/kubernetes_node_pool.html.markdown @@ -38,7 +38,7 @@ variable "default_instance_type" { } //this is the cluster with empty worker config -resource "tencentcloud_kubernetes_cluster" "managed_cluster" { +resource "tencentcloud_kubernetes_cluster" "example" { vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id cluster_cidr = var.cluster_cidr cluster_max_pod_num = 32 @@ -50,9 +50,9 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" { } //this is one example of managing node using node pool -resource "tencentcloud_kubernetes_node_pool" "mynodepool" { - name = "mynodepool" - cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id +resource "tencentcloud_kubernetes_node_pool" "example" { + name = "tf-example" + cluster_id = tencentcloud_kubernetes_cluster.example.id max_size = 6 min_size = 1 vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id @@ -61,6 +61,7 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { desired_capacity = 4 enable_auto_scale = true multi_zone_subnet_policy = "EQUALITY" + node_os = "img-9qrfy1xt" auto_scaling_config { instance_type = var.default_instance_type @@ -101,6 +102,7 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { } node_config { + docker_graph_path = "/var/lib/docker" extra_args = [ "root-dir=/var/lib/kubelet" ] @@ -111,8 +113,8 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { ### Using Spot CVM Instance ```hcl -resource "tencentcloud_kubernetes_node_pool" "mynodepool" { - name = "mynodepool" +resource "tencentcloud_kubernetes_node_pool" "example" { + name = "tf-example" cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id max_size = 6 min_size = 1 @@ -147,9 +149,8 @@ resource "tencentcloud_kubernetes_node_pool" "mynodepool" { labels = { "test1" = "test1", - "test2" = "test2", + "test2" = "test2" } - } ``` @@ -280,6 +281,6 @@ In addition to all arguments above, the following attributes are exported: tke node pool can be imported, e.g. ``` -$ terraform import tencentcloud_kubernetes_node_pool.test cls-xxx#np-xxx +$ terraform import tencentcloud_kubernetes_node_pool.example cls-d2xdg3io#np-380ay1o8 ```