Skip to content

Commit f05f60c

Browse files
authored
fix: tke - support internet security group modify (#1248)
* fix: tke - support internet security group modify * fix: tke - internet sg modify testcase
1 parent 1779b82 commit f05f60c

File tree

12 files changed

+189
-13
lines changed

12 files changed

+189
-13
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ require (
6161
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268
6262
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472
6363
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486
64-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480
64+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489
6565
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
6666
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479
6767
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,11 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.472/go.mod
473473
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.479/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
474474
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
475475
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
476+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.489 h1:707A5KMvEapIjH+QWUGHn+Re57VpGz8RzFEoxMAs6FI=
477+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.489/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
478+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.487 h1:6PCOaohR7z/5lbK1PDJRg0TY9tYK7zvjmDxY1yXWsQE=
479+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.487/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
480+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.488 h1:rFQ+2+p2sFMdSGE99zc5oqN3TvYVK9Vxbp+wZJjTrHw=
476481
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.488/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
477482
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.490 h1:mmz27tVi2r70JYnm5y0Zk8w0Qzsx+vfUw3oqSyrEfP8=
478483
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.490/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -535,6 +540,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486 h1:JRtQYtJ
535540
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486/go.mod h1:wtPJIKxQUR3KoL2KWAt/Qi8KMR4ayKHiOeVJ6sTSC4U=
536541
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480 h1:oZptW2Fo1pW8fKz/dv+RJLr2q8UC1qkqDqWs3rDgvQ8=
537542
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480/go.mod h1:rs+BUoY53xfiE5sRsVk2RpsjgzODtq52xiBTc6WTWWM=
543+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489 h1:61QTzF5vjDthscsPh2WGL1bLlmOjIJ6PB2+pIihzeTI=
544+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.489/go.mod h1:ECfO9sL5b6ZDhQWx2k85JtrCWOC3kH1KFw00TGlBL6Y=
538545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4pA5QtzhwMNIEUt0spXdSBKH744DDqTHJOCP0=
539546
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
540547
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479 h1:eArkuh12SjyaHaKDNfF2oLjkY3f8SnuazgM/2dV9hcA=

tencentcloud/basic_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,14 @@ data "tencentcloud_security_groups" "internal" {
302302
tags = var.fixed_tags
303303
}
304304
305+
data "tencentcloud_security_groups" "exclusive" {
306+
name = "test_preset_sg"
307+
}
308+
305309
locals {
306310
# local.sg_id
307311
sg_id = data.tencentcloud_security_groups.internal.security_groups.0.security_group_id
312+
sg_id2 = data.tencentcloud_security_groups.exclusive.security_groups.0.security_group_id
308313
}
309314
`
310315

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2574,8 +2574,14 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
25742574
if d.HasChange("cluster_intranet_subnet_id") && !d.HasChange("cluster_intranet") {
25752575
return fmt.Errorf("`cluster_intranet_subnet_id` must modified with `cluster_intranet`")
25762576
}
2577+
25772578
if d.HasChange("cluster_internet_security_group") && !d.HasChange("cluster_internet") {
2578-
return fmt.Errorf("`cluster_internet_security_group` must modified with `cluster_internet`")
2579+
if clusterInternet {
2580+
err := tkeService.ModifyClusterEndpointSG(ctx, id, clusterInternetSecurityGroup)
2581+
if err != nil {
2582+
return err
2583+
}
2584+
}
25792585
}
25802586

25812587
if d.HasChange("cluster_intranet") {

tencentcloud/resource_tc_kubernetes_cluster_endpoint.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,14 +256,23 @@ func resourceTencentCloudTkeClusterEndpointUpdate(d *schema.ResourceData, meta i
256256
client := meta.(*TencentCloudClient).apiV3Conn
257257
service := TkeService{client}
258258
id := d.Id()
259+
clusterInternet := d.Get("cluster_internet").(bool)
260+
clusterInternetSecurityGroup := d.Get("cluster_internet_security_group").(string)
259261

260262
var (
261263
err error
262264
)
263265

266+
if d.HasChange("cluster_internet_security_group") && !d.HasChange("cluster_internet") {
267+
if clusterInternet {
268+
err := service.ModifyClusterEndpointSG(ctx, id, clusterInternetSecurityGroup)
269+
if err != nil {
270+
return err
271+
}
272+
}
273+
}
274+
264275
if d.HasChange("cluster_internet") {
265-
clusterInternet := d.Get("cluster_internet").(bool)
266-
clusterInternetSecurityGroup := d.Get("cluster_internet_security_group").(string)
267276
err = tencentCloudClusterInternetSwitch(ctx, &service, id, clusterInternet, clusterInternetSecurityGroup)
268277
if err != nil {
269278
return err

tencentcloud/resource_tc_kubernetes_cluster_endpoint_test.go

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ func TestAccTencentCloudTkeClusterEndpoint(t *testing.T) {
4343
},
4444
{
4545
Config: testAccTkeClusterEndpointBasicUpdate,
46+
Check: resource.ComposeAggregateTestCheckFunc(
47+
testAccCheckTkeExists("tencentcloud_kubernetes_cluster.managed_cluster"),
48+
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_endpoint.foo", "cluster_id"),
49+
resource.TestCheckResourceAttr("tencentcloud_kubernetes_cluster_endpoint.foo", "cluster_internet", "true"),
50+
),
51+
},
52+
{
53+
Config: testAccTkeClusterEndpointBasicUpdate2,
4654
Check: resource.ComposeAggregateTestCheckFunc(
4755
testAccCheckTkeExists("tencentcloud_kubernetes_cluster.managed_cluster"),
4856
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_endpoint.foo", "cluster_id"),
@@ -54,7 +62,31 @@ func TestAccTencentCloudTkeClusterEndpoint(t *testing.T) {
5462
})
5563
}
5664

57-
const testAccTkeClusterEndpointBasicDeps = TkeCIDRs + TkeDataSource + TkeDefaultNodeInstanceVar + defaultImages + defaultSecurityGroupData + `
65+
const testAccTkeClusterEndpointNewSG = `
66+
resource "tencentcloud_security_group" "foo" {
67+
name = "test-endpoint"
68+
}
69+
70+
resource "tencentcloud_security_group_lite_rule" "foo" {
71+
security_group_id = tencentcloud_security_group.foo.id
72+
73+
ingress = [
74+
"DROP#0.0.0.0/0#ALL#ALL",
75+
]
76+
}
77+
78+
locals {
79+
new_sg = tencentcloud_security_group_lite_rule.foo.id
80+
}
81+
82+
`
83+
84+
const testAccTkeClusterEndpointBasicDeps = TkeCIDRs +
85+
TkeDataSource +
86+
TkeDefaultNodeInstanceVar +
87+
defaultImages +
88+
defaultSecurityGroupData +
89+
testAccTkeClusterEndpointNewSG + `
5890
variable "availability_zone" {
5991
default = "ap-guangzhou-3"
6092
}
@@ -144,11 +176,24 @@ resource "tencentcloud_kubernetes_cluster_endpoint" "foo" {
144176
`
145177

146178
const testAccTkeClusterEndpointBasicUpdate = testAccTkeClusterEndpointBasicDeps + `
179+
resource "tencentcloud_kubernetes_cluster_endpoint" "foo" {
180+
cluster_id = local.new_cluster_id
181+
cluster_internet = true
182+
cluster_intranet = true
183+
cluster_internet_security_group = local.new_sg
184+
cluster_intranet_subnet_id = data.tencentcloud_vpc_subnets.sub.instance_list.0.subnet_id
185+
depends_on = [
186+
tencentcloud_kubernetes_node_pool.np_test
187+
]
188+
}
189+
`
190+
191+
const testAccTkeClusterEndpointBasicUpdate2 = testAccTkeClusterEndpointBasicDeps + `
147192
resource "tencentcloud_kubernetes_cluster_endpoint" "foo" {
148193
cluster_id = local.new_cluster_id
149194
cluster_internet = false
150195
cluster_intranet = true
151-
cluster_internet_security_group = local.sg_id
196+
cluster_internet_security_group = local.new_sg
152197
cluster_intranet_subnet_id = data.tencentcloud_vpc_subnets.sub.instance_list.0.subnet_id
153198
depends_on = [
154199
tencentcloud_kubernetes_node_pool.np_test

tencentcloud/resource_tc_kubernetes_cluster_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,12 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
305305
cluster_name = "test2"
306306
cluster_desc = "test cluster desc 2"
307307
cluster_max_service_num = 32
308-
cluster_internet = false
308+
cluster_internet = true
309309
cluster_intranet = false
310310
cluster_version = "1.18.4"
311311
cluster_os = "tlinux2.2(tkernel3)x86_64"
312312
cluster_level = "L5"
313+
cluster_internet_security_group = local.sg_id2
313314
auto_upgrade_cluster_level = true
314315
managed_cluster_internet_security_policies = ["3.3.3.3", "1.1.1.1"]
315316
worker_config {

tencentcloud/service_tencentcloud_tke.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,27 @@ func (me *TkeService) ModifyClusterEndpointSP(ctx context.Context, id string, se
908908
return
909909
}
910910

911+
func (me *TkeService) ModifyClusterEndpointSG(ctx context.Context, id string, securityGroup string) (errRet error) {
912+
logId := getLogId(ctx)
913+
request := tke.NewModifyClusterEndpointSPRequest()
914+
defer func() {
915+
if errRet != nil {
916+
log.Printf("[CRITAL]%s api[%s] fail, reason[%s]\n", logId, request.GetAction(), errRet.Error())
917+
}
918+
}()
919+
request.ClusterId = &id
920+
request.SecurityGroup = &securityGroup
921+
922+
ratelimit.Check(request.GetAction())
923+
924+
_, err := me.client.UseTkeClient().ModifyClusterEndpointSP(request)
925+
if err != nil {
926+
errRet = err
927+
return
928+
}
929+
return
930+
}
931+
911932
func (me *TkeService) ModifyClusterAttribute(ctx context.Context, id string, projectId int64, clusterName, clusterDesc, clusterLevel string, autoUpgradeClusterLevel bool) (errRet error) {
912933
logId := getLogId(ctx)
913934
request := tke.NewModifyClusterAttributeRequest()

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

Lines changed: 8 additions & 2 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: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)