Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions tencentcloud/resource_tc_kubernetes_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -922,6 +922,7 @@ func resourceTencentCloudTkeCluster() *schema.Resource {
"cluster_level": {
Type: schema.TypeString,
Optional: true,
Computed: true,
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.",
},
"auto_upgrade_cluster_level": {
Expand Down Expand Up @@ -2389,7 +2390,7 @@ func resourceTencentCloudTkeClusterRead(d *schema.ResourceData, meta interface{}
_ = d.Set("cluster_level", info.ClusterLevel)
}

if _, ok := d.GetOk("auto_upgrade_cluster_level"); ok {
if _, ok := d.GetOkExists("auto_upgrade_cluster_level"); ok {
_ = d.Set("auto_upgrade_cluster_level", info.AutoUpgradeClusterLevel)
}

Expand Down Expand Up @@ -2799,7 +2800,18 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
clusterDesc := d.Get("cluster_desc").(string)
clusterLevel := d.Get("cluster_level").(string)
autoUpgradeClusterLevel := d.Get("auto_upgrade_cluster_level").(bool)
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {

ins, _, err := tkeService.DescribeCluster(ctx, id)
if err != nil {
return err
}

//ignore same cluster level if same
if *ins.ClusterLevel == clusterLevel {
clusterLevel = ""
}

err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
err := tkeService.ModifyClusterAttribute(ctx, id, projectId, clusterName, clusterDesc, clusterLevel, autoUpgradeClusterLevel)
if err != nil {
// create and update immediately may cause cluster level syntax error, this error can wait until cluster level state normal
Expand Down
81 changes: 75 additions & 6 deletions tencentcloud/resource_tc_kubernetes_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,19 @@ func TestAccTencentCloudTkeResourceBasic(t *testing.T) {
),
},
{
Config: testAccTkeClusterUpdate,
Config: testAccTkeClusterUpdateDesc,
Check: resource.ComposeTestCheckFunc(
testAccCheckTkeExists(testTkeClusterResourceKey),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_name", "test2"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc2"),
resource.TestCheckNoResourceAttr(testTkeClusterResourceKey, "tags.test"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "tags.abc", "abc"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc 2"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_level", "L5"),
),
},
{
Config: testAccTkeClusterUpdateLevel,
Check: resource.ComposeTestCheckFunc(
testAccCheckTkeExists(testTkeClusterResourceKey),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc 3"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_level", "L20"),
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "auto_upgrade_cluster_level", "false"),
),
Expand Down Expand Up @@ -283,7 +289,70 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
]
}
`
const testAccTkeClusterUpdate = TkeDeps + `
const testAccTkeClusterUpdateDesc = TkeDeps + `
variable "availability_zone" {
default = "ap-guangzhou-3"
}

resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
vpc_id = local.vpc_id
cluster_cidr = var.tke_cidr_a.0
cluster_max_pod_num = 32
cluster_name = "test2"
cluster_desc = "test cluster desc 2"
cluster_max_service_num = 32
cluster_internet = true
cluster_version = "1.18.4"
cluster_os = "tlinux2.2(tkernel3)x86_64"
cluster_level = "L5"
auto_upgrade_cluster_level = true
managed_cluster_internet_security_policies = ["3.3.3.3", "1.1.1.1"]
worker_config {
count = 1
availability_zone = var.availability_zone
instance_type = local.final_type
system_disk_type = "CLOUD_SSD"
system_disk_size = 60
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
internet_max_bandwidth_out = 100
public_ip_assigned = true
subnet_id = local.subnet_id
img_id = var.default_img_id
security_group_ids = [local.sg_id]

data_disk {
disk_type = "CLOUD_PREMIUM"
disk_size = 50
file_system = "ext3"
auto_format_and_mount = "true"
mount_target = "/var/lib/docker"
disk_partition = "/dev/sdb1"
}

enhanced_security_service = false
enhanced_monitor_service = false
user_data = "dGVzdA=="
password = "ZZXXccvv1212"
}

cluster_deploy_type = "MANAGED_CLUSTER"

tags = {
"test" = "test"
}

unschedulable = 0

labels = {
"test1" = "test1",
"test2" = "test2",
}
extra_args = [
"root-dir=/var/lib/kubelet"
]
}
`
const testAccTkeClusterUpdateLevel = TkeDeps + `
variable "availability_zone" {
default = "ap-guangzhou-3"
}
Expand All @@ -293,7 +362,7 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
cluster_cidr = var.tke_cidr_a.0
cluster_max_pod_num = 32
cluster_name = "test2"
cluster_desc = "test cluster desc2"
cluster_desc = "test cluster desc 3"
cluster_max_service_num = 32
cluster_internet = true
cluster_version = "1.18.4"
Expand Down