diff --git a/.changelog/2885.txt b/.changelog/2885.txt new file mode 100644 index 0000000000..406fd754c9 --- /dev/null +++ b/.changelog/2885.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_kubernetes_scale_worker: add params `create_result_output_file` +``` \ No newline at end of file diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.go b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.go index 02c2f066b9..91af5c58a2 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.go @@ -505,6 +505,13 @@ func ResourceTencentCloudKubernetesScaleWorker() *schema.Resource { }, }, }, + + "create_result_output_file": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Description: "Used to save results of CVMs creation error messages.", + }, }, } } diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.md b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.md index ba7c650bba..e63e72fc84 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.md +++ b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.md @@ -4,6 +4,8 @@ Provide a resource to increase instance to cluster ~> **NOTE:** Import Node: Currently, only one node can be imported at a time. +~> **NOTE:** If you need to view error messages during instance creation, you can use parameter `create_result_output_file` to set the file save path + Example Usage ```hcl @@ -49,6 +51,8 @@ resource "tencentcloud_kubernetes_scale_worker" "example" { user_data = "dGVzdA==" password = "AABBccdd1122" } + + create_result_output_file = "my_output_file_path" } ``` diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go index fb542fcbc2..8a248d11cd 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go @@ -463,11 +463,13 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context) waitRequest := tke.NewDescribeClusterInstancesRequest() waitRequest.ClusterId = &clusterId waitRequest.InstanceIds = helper.Strings(instanceIds) + tmpList := []*tke.Instance{} err = resource.Retry(tccommon.ReadRetryTimeout*5, func() *resource.RetryError { var ( - offset int64 = 0 - limit int64 = 100 - tmpInstanceSet []*tke.Instance + offset int64 = 0 + limit int64 = 100 + tmpInstanceSet []*tke.Instance + createErrorList []*tke.Instance ) // get all instances @@ -512,14 +514,17 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context) flag = true } else if *instance.InstanceState == "failed" { stop += 1 + createErrorList = append(createErrorList, instance) log.Printf("instance: %s status is failed.", v) } else { + createErrorList = append(createErrorList, instance) continue } } } } + tmpList = createErrorList if stop == len(instanceIds) && flag { return nil } else if stop == len(instanceIds) && !flag { @@ -530,6 +535,13 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context) } }) + output, ok := d.GetOk("create_result_output_file") + if ok && output.(string) != "" { + if e := tccommon.WriteToFile(output.(string), tmpList); e != nil { + return e + } + } + if err != nil { log.Printf("[CRITAL] kubernetes scale worker instances status error, reason:%+v", err) return err diff --git a/website/docs/r/kubernetes_scale_worker.html.markdown b/website/docs/r/kubernetes_scale_worker.html.markdown index 773ebabf66..78522d1c68 100644 --- a/website/docs/r/kubernetes_scale_worker.html.markdown +++ b/website/docs/r/kubernetes_scale_worker.html.markdown @@ -15,6 +15,8 @@ Provide a resource to increase instance to cluster ~> **NOTE:** Import Node: Currently, only one node can be imported at a time. +~> **NOTE:** If you need to view error messages during instance creation, you can use parameter `create_result_output_file` to set the file save path + ## Example Usage ```hcl @@ -60,6 +62,8 @@ resource "tencentcloud_kubernetes_scale_worker" "example" { user_data = "dGVzdA==" password = "AABBccdd1122" } + + create_result_output_file = "my_output_file_path" } ``` @@ -120,6 +124,7 @@ The following arguments are supported: * `cluster_id` - (Required, String, ForceNew) ID of the cluster. * `worker_config` - (Required, List, ForceNew) Deploy the machine configuration information of the 'WORK' service, and create <=20 units for common users. +* `create_result_output_file` - (Optional, String, ForceNew) Used to save results of CVMs creation error messages. * `data_disk` - (Optional, List, ForceNew) Configurations of tke data disk. * `desired_pod_num` - (Optional, Int, ForceNew) Indicate to set desired pod number in current node. Valid when the cluster enable customized pod cidr. * `docker_graph_path` - (Optional, String, ForceNew) Docker graph path. Default is `/var/lib/docker`.