From 45b3535955c938fe814d7f177c208b4b382339b7 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 31 Oct 2025 14:28:20 +0800 Subject: [PATCH 1/2] add --- ...esource_tc_kubernetes_cluster_extension.go | 97 ++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go b/tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go index 78cd6b015d..55a5fbd573 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go @@ -476,7 +476,7 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. } } - //Modify node pool global config + //Modify node pool global config(sync) if _, ok := d.GetOk("node_pool_global_config"); ok { request := tkeGetNodePoolGlobalConfig(d) request.ClusterId = &id @@ -492,6 +492,7 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. } } + // sync if v, ok := d.GetOk("acquire_cluster_admin_role"); ok && v.(bool) { err := service.AcquireClusterAdminRole(ctx, id) if err != nil { @@ -499,13 +500,37 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. } } + // async if _, ok := d.GetOk("auth_options"); ok { request := tkeGetAuthOptions(d, id) if err := service.ModifyClusterAuthenticationOptions(ctx, request); err != nil { return err } + + // wait + err = resource.Retry(3*tccommon.ReadRetryTimeout, func() *resource.RetryError { + resp, inErr := service.DescribeKubernetesAuthAttachmentById(ctx, id) + if inErr != nil { + return tccommon.RetryError(inErr) + } + + if resp == nil { + return resource.NonRetryableError(fmt.Errorf("Describe cluster aauthentication options failed, Response is nil.")) + } + + if resp.LatestOperationState != nil || *resp.LatestOperationState == "Success" { + return nil + } + + return resource.RetryableError(fmt.Errorf("Modify auth options running...")) + }) + + if err != nil { + return err + } } + // async if v, ok := helper.InterfacesHeadMap(d, "log_agent"); ok { enabled := v["enabled"].(bool) rootDir := v["kubelet_root_dir"].(string) @@ -515,9 +540,33 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. if err != nil { return err } + + // wait + err = resource.Retry(3*tccommon.ReadRetryTimeout, func() *resource.RetryError { + resp, inErr := service.DescribeLogSwitches(ctx, id) + if inErr != nil { + return tccommon.RetryError(inErr) + } + + if resp == nil || len(resp) < 1 { + return resource.NonRetryableError(fmt.Errorf("Describe log switches failed, Response is nil.")) + } + + ret := resp[0] + if ret.Log != nil && ret.Log.Status != nil && *ret.Log.Status == "opened" { + return nil + } + + return resource.RetryableError(fmt.Errorf("Modify log agent running...")) + }) + + if err != nil { + return err + } } } + // async if v, ok := helper.InterfacesHeadMap(d, "event_persistence"); ok { enabled := v["enabled"].(bool) logSetId := v["log_set_id"].(string) @@ -527,6 +576,29 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. if err != nil { return err } + + // wait + err = resource.Retry(3*tccommon.ReadRetryTimeout, func() *resource.RetryError { + resp, inErr := service.DescribeLogSwitches(ctx, id) + if inErr != nil { + return tccommon.RetryError(inErr) + } + + if resp == nil || len(resp) < 1 { + return resource.NonRetryableError(fmt.Errorf("Describe event persistence failed, Response is nil.")) + } + + ret := resp[0] + if ret.Event != nil && ret.Event.Status != nil && *ret.Event.Status == "opened" { + return nil + } + + return resource.RetryableError(fmt.Errorf("Modify event persistence running...")) + }) + + if err != nil { + return err + } } } @@ -539,6 +611,29 @@ func resourceTencentCloudKubernetesClusterCreatePostHandleResponse0(ctx context. if err != nil { return err } + + // wait + err = resource.Retry(3*tccommon.ReadRetryTimeout, func() *resource.RetryError { + resp, inErr := service.DescribeLogSwitches(ctx, id) + if inErr != nil { + return tccommon.RetryError(inErr) + } + + if resp == nil || len(resp) < 1 { + return resource.NonRetryableError(fmt.Errorf("Describe cluster audit failed, Response is nil.")) + } + + ret := resp[0] + if ret.Audit != nil && ret.Audit.Status != nil && *ret.Audit.Status == "opened" { + return nil + } + + return resource.RetryableError(fmt.Errorf("Modify cluster audit running...")) + }) + + if err != nil { + return err + } } } return nil From da033647d9fd69378c08644911d7ff8487f23a15 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 31 Oct 2025 14:30:03 +0800 Subject: [PATCH 2/2] add --- .changelog/3580.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3580.txt diff --git a/.changelog/3580.txt b/.changelog/3580.txt new file mode 100644 index 0000000000..d2853c3e9d --- /dev/null +++ b/.changelog/3580.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_kubernetes_cluster: update code logic +```