diff --git a/.changelog/3453.txt b/.changelog/3453.txt new file mode 100644 index 0000000000..09332c6c1a --- /dev/null +++ b/.changelog/3453.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_kubernetes_native_node_pool: optmize code logic for update function +``` diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go index 068f68cc49..753edf36de 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go @@ -1575,19 +1575,28 @@ func resourceTencentCloudKubernetesNativeNodePoolUpdate(d *schema.ResourceData, if v, ok := nativeMap["auto_repair"]; ok { updateNativeNodePoolParam.AutoRepair = helper.Bool(v.(bool)) } + + var instanceChargeType string if v, ok := nativeMap["instance_charge_type"]; ok { updateNativeNodePoolParam.InstanceChargeType = helper.String(v.(string)) + instanceChargeType = v.(string) } - if instanceChargePrepaidMap, ok := helper.ConvertInterfacesHeadToMap(nativeMap["instance_charge_prepaid"]); ok { - instanceChargePrepaid := tke2.InstanceChargePrepaid{} - if v, ok := instanceChargePrepaidMap["period"]; ok { - instanceChargePrepaid.Period = helper.IntUint64(v.(int)) - } - if v, ok := instanceChargePrepaidMap["renew_flag"]; ok { - instanceChargePrepaid.RenewFlag = helper.String(v.(string)) + + if instanceChargeType == "PREPAID" { + if instanceChargePrepaidMap, ok := helper.ConvertInterfacesHeadToMap(nativeMap["instance_charge_prepaid"]); ok { + instanceChargePrepaid := tke2.InstanceChargePrepaid{} + if v, ok := instanceChargePrepaidMap["period"]; ok { + instanceChargePrepaid.Period = helper.IntUint64(v.(int)) + } + + if v, ok := instanceChargePrepaidMap["renew_flag"]; ok { + instanceChargePrepaid.RenewFlag = helper.String(v.(string)) + } + + updateNativeNodePoolParam.InstanceChargePrepaid = &instanceChargePrepaid } - updateNativeNodePoolParam.InstanceChargePrepaid = &instanceChargePrepaid } + if systemDiskMap, ok := helper.ConvertInterfacesHeadToMap(nativeMap["system_disk"]); ok { disk := tke2.Disk{} if v, ok := systemDiskMap["disk_type"]; ok { diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.md b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.md index 3f10b7e7fc..20f7f47fc9 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.md +++ b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.md @@ -1,22 +1,16 @@ -Provides a resource to create a tke kubernetes_native_node_pool +Provides a resource to create a TKE kubernetes native node pool Example Usage ```hcl -resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool" { +resource "tencentcloud_kubernetes_native_node_pool" "example" { cluster_id = "cls-eyier120" - name = "native-node-pool" + name = "tf-example" type = "Native" labels { - name = "test11" - value = "test21" - } - - taints { - key = "product" - value = "coderider" - effect = "NoExecute" + name = "labelName" + value = "labelValue" } tags { @@ -25,6 +19,7 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool key = "keep-test-np1" value = "test1" } + tags { key = "keep-test-np3" value = "test3" @@ -40,30 +35,35 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool max_replicas = 10 create_policy = "ZoneEquality" } - subnet_ids = ["subnet-itb6d123"] - instance_charge_type = "PREPAID" + + subnet_ids = ["subnet-itb6d123"] system_disk { - disk_type = "CLOUD_SSD" + disk_type = "CLOUD_PREMIUM" disk_size = 50 } - instance_types = ["SA2.MEDIUM2"] - security_group_ids = ["sg-7tum9120"] - auto_repair = false + + instance_types = ["SA2.MEDIUM2"] + security_group_ids = ["sg-7tum9120"] + auto_repair = false + instance_charge_type = "PREPAID" instance_charge_prepaid { period = 1 renew_flag = "NOTIFY_AND_MANUAL_RENEW" } + management { nameservers = ["183.60.83.19", "183.60.82.98"] hosts = ["192.168.2.42 static.fake.com", "192.168.2.42 static.fake.com2"] kernel_args = ["kernel.pid_max=65535", "fs.file-max=400000"] } + host_name_pattern = "aaa{R:3}" kubelet_args = ["allowed-unsafe-sysctls=net.core.somaxconn", "root-dir=/var/lib/test"] lifecycle { pre_init = "ZWNobyBoZWxsb3dvcmxk" post_init = "ZWNobyBoZWxsb3dvcmxk" } + runtime_root_dir = "/var/lib/docker" enable_autoscaling = true replicas = 2 @@ -71,13 +71,15 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool max_bandwidth_out = 50 charge_type = "TRAFFIC_POSTPAID_BY_HOUR" } + data_disks { disk_type = "CLOUD_PREMIUM" file_system = "ext4" - disk_size = 60 + disk_size = 100 mount_target = "/var/lib/containerd" auto_format_and_mount = true } + key_ids = ["skey-9pcs2100"] } @@ -85,6 +87,7 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool name = "node.tke.cloud.tencent.com/test-anno" value = "test" } + annotations { name = "node.tke.cloud.tencent.com/test-label" value = "test" @@ -94,8 +97,8 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool Import -tke kubernetes_native_node_pool can be imported using the id, e.g. +TKE kubernetes native node pool can be imported using the id, e.g. ``` -terraform import tencentcloud_kubernetes_native_node_pool.kubernetes_native_node_pool cls-xxx#np-xxx +terraform import tencentcloud_kubernetes_native_node_pool.kubernetes_native_node_pool cls-eyier120#np-4h43fuxj ``` diff --git a/website/docs/r/kubernetes_native_node_pool.html.markdown b/website/docs/r/kubernetes_native_node_pool.html.markdown index d3b15b4daf..c03daf374a 100644 --- a/website/docs/r/kubernetes_native_node_pool.html.markdown +++ b/website/docs/r/kubernetes_native_node_pool.html.markdown @@ -4,30 +4,24 @@ layout: "tencentcloud" page_title: "TencentCloud: tencentcloud_kubernetes_native_node_pool" sidebar_current: "docs-tencentcloud-resource-kubernetes_native_node_pool" description: |- - Provides a resource to create a tke kubernetes_native_node_pool + Provides a resource to create a TKE kubernetes native node pool --- # tencentcloud_kubernetes_native_node_pool -Provides a resource to create a tke kubernetes_native_node_pool +Provides a resource to create a TKE kubernetes native node pool ## Example Usage ```hcl -resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool" { +resource "tencentcloud_kubernetes_native_node_pool" "example" { cluster_id = "cls-eyier120" - name = "native-node-pool" + name = "tf-example" type = "Native" labels { - name = "test11" - value = "test21" - } - - taints { - key = "product" - value = "coderider" - effect = "NoExecute" + name = "labelName" + value = "labelValue" } tags { @@ -36,6 +30,7 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool key = "keep-test-np1" value = "test1" } + tags { key = "keep-test-np3" value = "test3" @@ -51,30 +46,35 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool max_replicas = 10 create_policy = "ZoneEquality" } - subnet_ids = ["subnet-itb6d123"] - instance_charge_type = "PREPAID" + + subnet_ids = ["subnet-itb6d123"] system_disk { - disk_type = "CLOUD_SSD" + disk_type = "CLOUD_PREMIUM" disk_size = 50 } - instance_types = ["SA2.MEDIUM2"] - security_group_ids = ["sg-7tum9120"] - auto_repair = false + + instance_types = ["SA2.MEDIUM2"] + security_group_ids = ["sg-7tum9120"] + auto_repair = false + instance_charge_type = "PREPAID" instance_charge_prepaid { period = 1 renew_flag = "NOTIFY_AND_MANUAL_RENEW" } + management { nameservers = ["183.60.83.19", "183.60.82.98"] hosts = ["192.168.2.42 static.fake.com", "192.168.2.42 static.fake.com2"] kernel_args = ["kernel.pid_max=65535", "fs.file-max=400000"] } + host_name_pattern = "aaa{R:3}" kubelet_args = ["allowed-unsafe-sysctls=net.core.somaxconn", "root-dir=/var/lib/test"] lifecycle { pre_init = "ZWNobyBoZWxsb3dvcmxk" post_init = "ZWNobyBoZWxsb3dvcmxk" } + runtime_root_dir = "/var/lib/docker" enable_autoscaling = true replicas = 2 @@ -82,13 +82,15 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool max_bandwidth_out = 50 charge_type = "TRAFFIC_POSTPAID_BY_HOUR" } + data_disks { disk_type = "CLOUD_PREMIUM" file_system = "ext4" - disk_size = 60 + disk_size = 100 mount_target = "/var/lib/containerd" auto_format_and_mount = true } + key_ids = ["skey-9pcs2100"] } @@ -96,6 +98,7 @@ resource "tencentcloud_kubernetes_native_node_pool" "kubernetes_native_node_pool name = "node.tke.cloud.tencent.com/test-anno" value = "test" } + annotations { name = "node.tke.cloud.tencent.com/test-label" value = "test" @@ -227,9 +230,9 @@ In addition to all arguments above, the following attributes are exported: ## Import -tke kubernetes_native_node_pool can be imported using the id, e.g. +TKE kubernetes native node pool can be imported using the id, e.g. ``` -terraform import tencentcloud_kubernetes_native_node_pool.kubernetes_native_node_pool cls-xxx#np-xxx +terraform import tencentcloud_kubernetes_native_node_pool.kubernetes_native_node_pool cls-eyier120#np-4h43fuxj ```