Skip to content

Commit 5aba274

Browse files
authored
fix: tke - add worker and node sweeper (#1230)
1 parent 2bba8e1 commit 5aba274

File tree

3 files changed

+71
-4
lines changed

3 files changed

+71
-4
lines changed

tencentcloud/resource_tc_kubernetes_node_pool_test.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var testTkeClusterNodePoolName = "tencentcloud_kubernetes_node_pool"
1919
var testTkeClusterNodePoolResourceKey = testTkeClusterNodePoolName + ".np_test"
2020

2121
func init() {
22+
// go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_node_pool
2223
resource.AddTestSweepers("tencentcloud_node_pool", &resource.Sweeper{
2324
Name: "tencentcloud_node_pool",
2425
F: testNodePoolSweep,
@@ -36,10 +37,6 @@ func testNodePoolSweep(region string) error {
3637
client := cli.(*TencentCloudClient).apiV3Conn
3738
service := TkeService{client: client}
3839

39-
if err != nil {
40-
return err
41-
}
42-
4340
request := tke.NewDescribeClusterNodePoolsRequest()
4441
request.ClusterId = helper.String(defaultTkeClusterId)
4542
response, err := client.UseTkeClient().DescribeClusterNodePools(request)

tencentcloud/resource_tc_kubernetes_scale_worker_test.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"log"
77
"testing"
8+
"time"
89

910
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1011
"github.com/hashicorp/terraform-plugin-sdk/terraform"
@@ -14,6 +15,67 @@ import (
1415
var testTkeScaleWorkerResourceName = "tencentcloud_kubernetes_scale_worker"
1516
var testTkeScaleWorkerResourceKey = testTkeScaleWorkerResourceName + ".test_scale"
1617

18+
func init() {
19+
// go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_kubernetes_scale_worker
20+
resource.AddTestSweepers("tencentcloud_kubernetes_scale_worker", &resource.Sweeper{
21+
Name: "tencentcloud_kubernetes_scale_worker",
22+
F: func(r string) error {
23+
logId := getLogId(contextNil)
24+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
25+
cli, _ := sharedClientForRegion(r)
26+
client := cli.(*TencentCloudClient).apiV3Conn
27+
service := TkeService{client}
28+
29+
clusters, err := service.DescribeClusters(ctx, "", defaultTkeClusterName)
30+
31+
if err != nil {
32+
return err
33+
}
34+
35+
if len(clusters) == 0 {
36+
return fmt.Errorf("no cluster names %s", defaultTkeClusterName)
37+
}
38+
39+
clusterId := clusters[0].ClusterId
40+
41+
_, workers, err := service.DescribeClusterInstances(ctx, clusterId)
42+
43+
if err != nil {
44+
return err
45+
}
46+
47+
cvmService := CvmService{client}
48+
instanceIds := make([]string, 0)
49+
for i := range workers {
50+
worker := workers[i]
51+
if worker.NodePoolId != "" {
52+
continue
53+
}
54+
instance, err := cvmService.DescribeInstanceById(ctx, worker.InstanceId)
55+
if err != nil {
56+
continue
57+
}
58+
59+
created, err := time.Parse(TENCENTCLOUD_COMMON_TIME_LAYOUT, worker.CreatedTime)
60+
if err != nil {
61+
created = time.Time{}
62+
}
63+
if isResourcePersist(*instance.InstanceName, &created) {
64+
continue
65+
}
66+
instanceIds = append(instanceIds, worker.InstanceId)
67+
}
68+
69+
err = service.DeleteClusterInstances(ctx, clusterId, instanceIds)
70+
if err != nil {
71+
return err
72+
}
73+
74+
return nil
75+
},
76+
})
77+
}
78+
1779
func TestAccTencentCloudTkeScaleWorkerResource(t *testing.T) {
1880
t.Parallel()
1981
resource.Test(t, resource.TestCase{

tencentcloud/service_tencentcloud_tke.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ type InstanceInfo struct {
9595
InstanceRole string
9696
InstanceState string
9797
FailedReason string
98+
NodePoolId string
99+
CreatedTime string
98100
InstanceAdvancedSettings *tke.InstanceAdvancedSettings
99101
InstanceDataDiskMountSetting *tke.InstanceDataDiskMountSetting
100102
LanIp string
@@ -165,6 +167,12 @@ getMoreData:
165167
FailedReason: *item.FailedReason,
166168
InstanceAdvancedSettings: item.InstanceAdvancedSettings,
167169
}
170+
if item.CreatedTime != nil {
171+
instanceInfo.CreatedTime = *item.CreatedTime
172+
}
173+
if item.NodePoolId != nil {
174+
instanceInfo.NodePoolId = *item.NodePoolId
175+
}
168176
if item.LanIP != nil {
169177
instanceInfo.LanIp = *item.LanIP
170178
}

0 commit comments

Comments
 (0)