Skip to content

Commit a13254d

Browse files
authored
fix: cluster level ignore same value modify (#1104)
1 parent cd7af0e commit a13254d

File tree

2 files changed

+89
-8
lines changed

2 files changed

+89
-8
lines changed

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -922,6 +922,7 @@ func resourceTencentCloudTkeCluster() *schema.Resource {
922922
"cluster_level": {
923923
Type: schema.TypeString,
924924
Optional: true,
925+
Computed: true,
925926
Description: "Specify cluster level, valid for managed cluster, use data source `tencentcloud_kubernetes_cluster_levels` to query available levels. Available value examples `L5`, `LL20`, `L50`, `L100`, etc.",
926927
},
927928
"auto_upgrade_cluster_level": {
@@ -2389,7 +2390,7 @@ func resourceTencentCloudTkeClusterRead(d *schema.ResourceData, meta interface{}
23892390
_ = d.Set("cluster_level", info.ClusterLevel)
23902391
}
23912392

2392-
if _, ok := d.GetOk("auto_upgrade_cluster_level"); ok {
2393+
if _, ok := d.GetOkExists("auto_upgrade_cluster_level"); ok {
23932394
_ = d.Set("auto_upgrade_cluster_level", info.AutoUpgradeClusterLevel)
23942395
}
23952396

@@ -2799,7 +2800,18 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
27992800
clusterDesc := d.Get("cluster_desc").(string)
28002801
clusterLevel := d.Get("cluster_level").(string)
28012802
autoUpgradeClusterLevel := d.Get("auto_upgrade_cluster_level").(bool)
2802-
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2803+
2804+
ins, _, err := tkeService.DescribeCluster(ctx, id)
2805+
if err != nil {
2806+
return err
2807+
}
2808+
2809+
//ignore same cluster level if same
2810+
if *ins.ClusterLevel == clusterLevel {
2811+
clusterLevel = ""
2812+
}
2813+
2814+
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
28032815
err := tkeService.ModifyClusterAttribute(ctx, id, projectId, clusterName, clusterDesc, clusterLevel, autoUpgradeClusterLevel)
28042816
if err != nil {
28052817
// create and update immediately may cause cluster level syntax error, this error can wait until cluster level state normal

tencentcloud/resource_tc_kubernetes_cluster_test.go

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,19 @@ func TestAccTencentCloudTkeResourceBasic(t *testing.T) {
7979
),
8080
},
8181
{
82-
Config: testAccTkeClusterUpdate,
82+
Config: testAccTkeClusterUpdateDesc,
8383
Check: resource.ComposeTestCheckFunc(
8484
testAccCheckTkeExists(testTkeClusterResourceKey),
8585
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_name", "test2"),
86-
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc2"),
87-
resource.TestCheckNoResourceAttr(testTkeClusterResourceKey, "tags.test"),
88-
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "tags.abc", "abc"),
86+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc 2"),
87+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_level", "L5"),
88+
),
89+
},
90+
{
91+
Config: testAccTkeClusterUpdateLevel,
92+
Check: resource.ComposeTestCheckFunc(
93+
testAccCheckTkeExists(testTkeClusterResourceKey),
94+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc 3"),
8995
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_level", "L20"),
9096
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "auto_upgrade_cluster_level", "false"),
9197
),
@@ -283,7 +289,70 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
283289
]
284290
}
285291
`
286-
const testAccTkeClusterUpdate = TkeDeps + `
292+
const testAccTkeClusterUpdateDesc = TkeDeps + `
293+
variable "availability_zone" {
294+
default = "ap-guangzhou-3"
295+
}
296+
297+
resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
298+
vpc_id = local.vpc_id
299+
cluster_cidr = var.tke_cidr_a.0
300+
cluster_max_pod_num = 32
301+
cluster_name = "test2"
302+
cluster_desc = "test cluster desc 2"
303+
cluster_max_service_num = 32
304+
cluster_internet = true
305+
cluster_version = "1.18.4"
306+
cluster_os = "tlinux2.2(tkernel3)x86_64"
307+
cluster_level = "L5"
308+
auto_upgrade_cluster_level = true
309+
managed_cluster_internet_security_policies = ["3.3.3.3", "1.1.1.1"]
310+
worker_config {
311+
count = 1
312+
availability_zone = var.availability_zone
313+
instance_type = local.final_type
314+
system_disk_type = "CLOUD_SSD"
315+
system_disk_size = 60
316+
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
317+
internet_max_bandwidth_out = 100
318+
public_ip_assigned = true
319+
subnet_id = local.subnet_id
320+
img_id = var.default_img_id
321+
security_group_ids = [local.sg_id]
322+
323+
data_disk {
324+
disk_type = "CLOUD_PREMIUM"
325+
disk_size = 50
326+
file_system = "ext3"
327+
auto_format_and_mount = "true"
328+
mount_target = "/var/lib/docker"
329+
disk_partition = "/dev/sdb1"
330+
}
331+
332+
enhanced_security_service = false
333+
enhanced_monitor_service = false
334+
user_data = "dGVzdA=="
335+
password = "ZZXXccvv1212"
336+
}
337+
338+
cluster_deploy_type = "MANAGED_CLUSTER"
339+
340+
tags = {
341+
"test" = "test"
342+
}
343+
344+
unschedulable = 0
345+
346+
labels = {
347+
"test1" = "test1",
348+
"test2" = "test2",
349+
}
350+
extra_args = [
351+
"root-dir=/var/lib/kubelet"
352+
]
353+
}
354+
`
355+
const testAccTkeClusterUpdateLevel = TkeDeps + `
287356
variable "availability_zone" {
288357
default = "ap-guangzhou-3"
289358
}
@@ -293,7 +362,7 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
293362
cluster_cidr = var.tke_cidr_a.0
294363
cluster_max_pod_num = 32
295364
cluster_name = "test2"
296-
cluster_desc = "test cluster desc2"
365+
cluster_desc = "test cluster desc 3"
297366
cluster_max_service_num = 32
298367
cluster_internet = true
299368
cluster_version = "1.18.4"

0 commit comments

Comments
 (0)