Skip to content

Commit e3bad7d

Browse files
authored
fix(tke): [119871420] Lift the upper limit of tencentcloud_kubernetes_scale_worker (#2850)
* add * add
1 parent 24a78af commit e3bad7d

File tree

4 files changed

+51
-21
lines changed

4 files changed

+51
-21
lines changed

.changelog/2850.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_kubernetes_scale_worker: Lift the upper limit of 100
3+
```

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ variable "scale_instance_type" {
1919
default = "S2.LARGE16"
2020
}
2121
22-
resource tencentcloud_kubernetes_scale_worker test_scale {
23-
cluster_id = "cls-godovr32"
22+
resource "tencentcloud_kubernetes_scale_worker" "example" {
23+
cluster_id = "cls-godovr32"
2424
desired_pod_num = 16
25+
2526
labels = {
2627
"test1" = "test1",
2728
"test2" = "test2",
2829
}
30+
2931
worker_config {
3032
count = 3
3133
availability_zone = var.availability_zone
@@ -65,14 +67,14 @@ variable "scale_instance_type" {
6567
default = "S2.LARGE16"
6668
}
6769
68-
resource tencentcloud_kubernetes_scale_worker test_scale {
70+
resource "tencentcloud_kubernetes_scale_worker" "example" {
6971
cluster_id = "cls-godovr32"
7072
7173
extra_args = [
72-
"root-dir=/var/lib/kubelet"
74+
"root-dir=/var/lib/kubelet"
7375
]
7476
75-
labels = {
77+
labels = {
7678
"test1" = "test1",
7779
"test2" = "test2",
7880
}
@@ -106,5 +108,5 @@ Import
106108
tke scale worker can be imported, e.g.
107109

108110
```
109-
$ terraform import tencentcloud_kubernetes_scale_worker.test cls-xxx#ins-xxx
111+
$ terraform import tencentcloud_kubernetes_scale_worker.example cls-mij6c2pq#ins-n6esjkdi,ins-9h3rdxt8,ins-qretqeas
110112
```

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"strings"
88
"time"
99

10+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/ratelimit"
11+
1012
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1113

1214
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -445,25 +447,47 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context)
445447
waitRequest := tke.NewDescribeClusterInstancesRequest()
446448
waitRequest.ClusterId = &clusterId
447449
waitRequest.InstanceIds = helper.Strings(instanceIds)
448-
waitRequest.Offset = helper.Int64(0)
449-
waitRequest.Limit = helper.Int64(100)
450450
err = resource.Retry(tccommon.ReadRetryTimeout*5, func() *resource.RetryError {
451-
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeClusterInstances(waitRequest)
452-
if e != nil {
453-
return tccommon.RetryError(e)
454-
} else {
455-
log.Printf("[DEBUG] api[%s] success, request body [%s], response body [%s]\n", waitRequest.GetAction(), waitRequest.ToJsonString(), result.ToJsonString())
451+
var (
452+
offset int64 = 0
453+
limit int64 = 100
454+
tmpInstanceSet []*tke.Instance
455+
)
456+
457+
// get all instances
458+
for {
459+
waitRequest.Limit = &limit
460+
waitRequest.Offset = &offset
461+
ratelimit.Check(waitRequest.GetAction())
462+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeClusterInstances(waitRequest)
463+
if e != nil {
464+
return tccommon.RetryError(e)
465+
} else {
466+
log.Printf("[DEBUG] api[%s] success, request body [%s], response body [%s]\n", waitRequest.GetAction(), waitRequest.ToJsonString(), result.ToJsonString())
467+
}
468+
469+
if result == nil || len(result.Response.InstanceSet) == 0 {
470+
break
471+
}
472+
473+
tmpInstanceSet = append(tmpInstanceSet, result.Response.InstanceSet...)
474+
475+
if len(result.Response.InstanceSet) < int(limit) {
476+
break
477+
}
478+
479+
offset += limit
456480
}
457481

458482
// check instances status
459-
tmpInstanceSet := result.Response.InstanceSet
460-
if tmpInstanceSet == nil {
483+
if len(tmpInstanceSet) == 0 {
461484
return resource.NonRetryableError(fmt.Errorf("there is no instances in set"))
462485
} else {
463486
var (
464487
stop int
465488
flag bool
466489
)
490+
467491
for _, v := range instanceIds {
468492
for _, instance := range tmpInstanceSet {
469493
if v == *instance.InstanceId {
@@ -472,7 +496,7 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context)
472496
flag = true
473497
} else if *instance.InstanceState == "failed" {
474498
stop += 1
475-
log.Printf("instance:%s status is failed.", v)
499+
log.Printf("instance: %s status is failed.", v)
476500
} else {
477501
continue
478502
}
@@ -485,8 +509,7 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context)
485509
} else if stop == len(instanceIds) && !flag {
486510
return resource.NonRetryableError(fmt.Errorf("The instances being created have all failed."))
487511
} else {
488-
e = fmt.Errorf("cluster instances is still initializing.")
489-
return resource.RetryableError(e)
512+
return resource.RetryableError(fmt.Errorf("cluster instances is still initializing."))
490513
}
491514
}
492515
})

website/docs/r/kubernetes_scale_worker.html.markdown

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,15 @@ variable "scale_instance_type" {
3030
default = "S2.LARGE16"
3131
}
3232
33-
resource tencentcloud_kubernetes_scale_worker test_scale {
33+
resource "tencentcloud_kubernetes_scale_worker" "example" {
3434
cluster_id = "cls-godovr32"
3535
desired_pod_num = 16
36+
3637
labels = {
3738
"test1" = "test1",
3839
"test2" = "test2",
3940
}
41+
4042
worker_config {
4143
count = 3
4244
availability_zone = var.availability_zone
@@ -76,7 +78,7 @@ variable "scale_instance_type" {
7678
default = "S2.LARGE16"
7779
}
7880
79-
resource tencentcloud_kubernetes_scale_worker test_scale {
81+
resource "tencentcloud_kubernetes_scale_worker" "example" {
8082
cluster_id = "cls-godovr32"
8183
8284
extra_args = [
@@ -206,6 +208,6 @@ In addition to all arguments above, the following attributes are exported:
206208
tke scale worker can be imported, e.g.
207209

208210
```
209-
$ terraform import tencentcloud_kubernetes_scale_worker.test cls-xxx#ins-xxx
211+
$ terraform import tencentcloud_kubernetes_scale_worker.example cls-mij6c2pq#ins-n6esjkdi,ins-9h3rdxt8,ins-qretqeas
210212
```
211213

0 commit comments

Comments
 (0)