Skip to content

Commit a9a3ce5

Browse files
authored
feat(tke): [120069939] adjust tke tags api (#2896)
* feat(tke): [120069939] adjust tke tags api * add changelog * add describe tags api
1 parent 7970bf5 commit a9a3ce5

File tree

9 files changed

+340
-176
lines changed

9 files changed

+340
-176
lines changed

.changelog/2896.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_cluster: adjust TKE tags logic to support existing native nodes
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1018
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1027
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1014
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
@@ -91,7 +91,7 @@ require (
9191
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955
9292
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
9393
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.1013
94-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008
94+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1027
9595
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947
9696
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857
9797
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674

go.sum

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,12 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1016 h1:gFA
935935
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1016/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936936
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1018 h1:PjTcH8XozO53JcLt7Vm4/RIeH7vKS/AZuGERl/4ehdM=
937937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1018/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1024 h1:Xexz/KT0061zBvfzlk4AH8ObaPOmV0cqvXw0uItPtoI=
939+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1024/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
940+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1025 h1:VBCr8GCiZioqKepLH78Al6PQLhLno9ExtF2U32m/hHY=
941+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1025/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
942+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1027 h1:4/chUqYM26idp2Rd3pPmsL94RTAwIM5dGXoaskOQ+cM=
943+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1027/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938944
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
939945
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
940946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1039,6 +1045,12 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998 h1:f4/n0d
10391045
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998/go.mod h1:fyi/HUwCwVe2NCCCjz8k/C5GwPu3QazCZO+OBJ3MhLk=
10401046
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008 h1:Cz7JSuS2zxIBzAuZ2bKk3EmrZ1QgS2QAHmCDTDPWBz0=
10411047
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008/go.mod h1:71PkDdVPT2Pd8yiuX6QFUDReTji39R/03dg1JwcjHWo=
1048+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1024 h1:7g3dTZb+QbiZR2mFv6i5cE2pMMx1+Q4FMOZSxE4lUu4=
1049+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1024/go.mod h1:2xDvw52Z3FwGuFadvpIGd42J9myl/RKqROAlelctOVA=
1050+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1025 h1:KQTBLtkU6VEKMJfPcyh4WiLybxxvq0BBYRi7q5/aD3A=
1051+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1025/go.mod h1:WBsBVG3Qb9bupdElk/d/S7xLadGwyBvKF2VikkezhjE=
1052+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1027 h1:CCbjHzYueJMa6O3aH2zn/Uppp+u7YJSd7oTrtypxGhM=
1053+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1027/go.mod h1:U0WwaLeMZf4Qx1SGG6TlFBhwlV03BMF5F176G14W9Qc=
10421054
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947 h1:iZfuU8S86kfqFsAVT/LUApP8L5cpT90hl2wSKiUDVvw=
10431055
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947/go.mod h1:eAgJ+XUEhffMq79zjpgHoR3PBVcciSg+LuPDC8hLWsE=
10441056
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857 h1:TkJnvSeRSXsRCwOwcwXSvruSK9s/kw8LC3FLeccw+A0=

tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ import (
1313

1414
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
1515
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
16+
tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http"
1617
cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312"
1718

1819
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
1920
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
2021
svcas "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/as"
2122
svccvm "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cvm"
22-
svctag "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tag"
2323

2424
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
2525
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -1172,10 +1172,7 @@ func resourceTencentCloudKubernetesClusterUpdateOnStart(ctx context.Context) err
11721172
d := tccommon.ResourceDataFromContext(ctx)
11731173
meta := tccommon.ProviderMetaFromContext(ctx)
11741174

1175-
client := meta.(tccommon.ProviderMeta).GetAPIV3Conn()
1176-
service := svctag.NewTagService(client)
11771175
tkeService := TkeService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
1178-
region := client.Region
11791176

11801177
d.Partial(true)
11811178
id := d.Id()
@@ -1185,11 +1182,25 @@ func resourceTencentCloudKubernetesClusterUpdateOnStart(ctx context.Context) err
11851182
}
11861183

11871184
if d.HasChange("tags") {
1188-
oldTags, newTags := d.GetChange("tags")
1189-
replaceTags, deleteTags := svctag.DiffTags(oldTags.(map[string]interface{}), newTags.(map[string]interface{}))
1185+
if err := modifyClusterTags(ctx); err != nil {
1186+
return err
1187+
}
11901188

1191-
resourceName := tccommon.BuildTagResourceName("ccs", "cluster", region, id)
1192-
if err := service.ModifyTags(ctx, resourceName, replaceTags, deleteTags); err != nil {
1189+
// wait for tags ok
1190+
err := resource.Retry(5*tccommon.ReadRetryTimeout, func() *resource.RetryError {
1191+
request := tke.NewDescribeBatchModifyTagsStatusRequest()
1192+
request.ClusterId = &id
1193+
resp, errRet := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTkeClient().DescribeBatchModifyTagsStatus(request)
1194+
if errRet != nil {
1195+
return tccommon.RetryError(errRet, tccommon.InternalError)
1196+
}
1197+
// TaskFailed = "failed"; TaskRunning = "running"; TaskDone = "done"
1198+
if resp != nil && *resp.Response.Status == "done" {
1199+
return nil
1200+
}
1201+
return resource.RetryableError(fmt.Errorf("modify tags status is %s, retry...", *resp.Response.Status))
1202+
})
1203+
if err != nil {
11931204
return err
11941205
}
11951206

@@ -1640,6 +1651,39 @@ func ResourceTkeGetAddonsDiffs(o, n []interface{}) (adds, removes, changes []int
16401651
return
16411652
}
16421653

1654+
func modifyClusterTags(ctx context.Context) error {
1655+
d := tccommon.ResourceDataFromContext(ctx)
1656+
meta := tccommon.ProviderMetaFromContext(ctx)
1657+
logId := tccommon.GetLogId(ctx)
1658+
1659+
id := d.Id()
1660+
tags := GetTkeTags(d, "tags")
1661+
body := map[string]interface{}{
1662+
"ClusterId": id,
1663+
"SyncSubresource": false,
1664+
"Tags": tags,
1665+
}
1666+
1667+
client := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseOmitNilClient("tke")
1668+
request := tchttp.NewCommonRequest("tke", "2018-05-25", "ModifyClusterTags")
1669+
err := request.SetActionParameters(body)
1670+
if err != nil {
1671+
return err
1672+
}
1673+
1674+
response := tchttp.NewCommonResponse()
1675+
err = client.Send(request, response)
1676+
if err != nil {
1677+
fmt.Printf("Modify Cluster Tags failed: %v \n", err)
1678+
return err
1679+
}
1680+
reqBody, _ := request.MarshalJSON()
1681+
respBody := response.GetBody()
1682+
1683+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), string(reqBody), string(respBody))
1684+
return nil
1685+
}
1686+
16431687
// upgradeClusterInstances upgrade instances, upgrade type try seq:major, hot.
16441688
func upgradeClusterInstances(tkeService TkeService, ctx context.Context, id string) error {
16451689
// get all available instances for upgrade

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/client.go

Lines changed: 108 additions & 85 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525/errors.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)