Skip to content

Commit d9c37eb

Browse files
authored
Merge pull request #751 from tencentcloudstack/fix/tke-deletion-protection
fix: deletion_protection support modify.
2 parents 1a522ad + 6a52c9d commit d9c37eb

File tree

7 files changed

+705
-4
lines changed

7 files changed

+705
-4
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ require (
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.199
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.291
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.199
45+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
4546
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199
4647
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.275
4748
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.199
@@ -52,11 +53,10 @@ require (
5253
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcaplusdb v1.0.199
5354
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.267
5455
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268
55-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.264
56+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.302
5657
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
5758
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.199
5859
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
59-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
6060
github.com/tencentyun/cos-go-sdk-v5 v0.7.31-0.20210902132439-360bc9b1be6b
6161
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
6262
github.com/zclconf/go-cty v1.4.2 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268 h1:ez5lvK
522522
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268/go.mod h1:fchXZhmqaYaG2c4wTCBTdnW6TFAtxl3D/P/yuuuLMfA=
523523
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.264 h1:nKf15bAypO5ZY8cF4qNvU3ttgaiquuniK5WEhFt36X8=
524524
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.264/go.mod h1:ij3CHdPvqI2aSMcl7+jdI0yCO7oOiywKTAa55qmO2iI=
525+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.302 h1:Ks3fi0Vs+I+p6Ue3ssL33Ai8y8Gi4iTc16y1Z4ZCQXk=
526+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.302/go.mod h1:ij3CHdPvqI2aSMcl7+jdI0yCO7oOiywKTAa55qmO2iI=
525527
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4pA5QtzhwMNIEUt0spXdSBKH744DDqTHJOCP0=
526528
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
527529
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.199 h1:UDZ59pvaqjDy2QIsMsv9hxm0BEJLmPIbHF1ms0MqaRk=

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2733,6 +2733,14 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
27332733
d.SetPartial("auth_options")
27342734
}
27352735

2736+
if d.HasChange("deletion_protection") {
2737+
enable := d.Get("deletion_protection").(bool)
2738+
if err := tkeService.ModifyDeletionProtection(ctx, id, enable); err != nil {
2739+
return err
2740+
}
2741+
d.SetPartial("deletion_protection")
2742+
}
2743+
27362744
d.Partial(false)
27372745
if err := resourceTencentCloudTkeClusterRead(d, meta); err != nil {
27382746
log.Printf("[WARN]%s resource.kubernetes_cluster.read after update fail , %s", logId, err.Error())

tencentcloud/service_tencentcloud_tke.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,3 +1460,47 @@ func (me *TkeService) ModifyClusterAuthenticationOptions(ctx context.Context, re
14601460

14611461
return
14621462
}
1463+
1464+
func (me *TkeService) ModifyDeletionProtection(ctx context.Context, id string, enable bool) (errRet error) {
1465+
var (
1466+
logId = getLogId(ctx)
1467+
action string
1468+
)
1469+
1470+
if enable {
1471+
request := tke.NewEnableClusterDeletionProtectionRequest()
1472+
request.ClusterId = &id
1473+
action = request.GetAction()
1474+
ratelimit.Check(action)
1475+
response, err := me.client.UseTkeClient().EnableClusterDeletionProtection(request)
1476+
if err != nil {
1477+
errRet = err
1478+
return
1479+
}
1480+
1481+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
1482+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
1483+
} else {
1484+
request := tke.NewDisableClusterDeletionProtectionRequest()
1485+
request.ClusterId = &id
1486+
action = request.GetAction()
1487+
ratelimit.Check(action)
1488+
response, err := me.client.UseTkeClient().DisableClusterDeletionProtection(request)
1489+
if err != nil {
1490+
errRet = err
1491+
return
1492+
}
1493+
1494+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
1495+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
1496+
}
1497+
1498+
defer func() {
1499+
if errRet != nil {
1500+
log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n",
1501+
logId, action, errRet.Error())
1502+
}
1503+
}()
1504+
1505+
return
1506+
}

0 commit comments

Comments
 (0)