Skip to content

Commit 278ad8c

Browse files
xaweiandyxawei
authored andcommitted
feat: add extensive_parameters in tke endpoint resource
1 parent 170cf11 commit 278ad8c

File tree

5 files changed

+35
-15
lines changed

5 files changed

+35
-15
lines changed

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2254,7 +2254,7 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
22542254
//intranet
22552255
if clusterIntranet {
22562256
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2257-
inErr := service.CreateClusterEndpoint(ctx, id, intranetSubnetId, clusterInternetSecurityGroup, false, clusterIntranetDomain)
2257+
inErr := service.CreateClusterEndpoint(ctx, id, intranetSubnetId, clusterInternetSecurityGroup, false, clusterIntranetDomain, "")
22582258
if inErr != nil {
22592259
return retryError(inErr)
22602260
}
@@ -2285,7 +2285,7 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
22852285

22862286
if clusterInternet {
22872287
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2288-
inErr := service.CreateClusterEndpoint(ctx, id, "", clusterInternetSecurityGroup, true, clusterInternetDomain)
2288+
inErr := service.CreateClusterEndpoint(ctx, id, "", clusterInternetSecurityGroup, true, clusterInternetDomain, "")
22892289
if inErr != nil {
22902290
return retryError(inErr)
22912291
}
@@ -3035,4 +3035,4 @@ func resourceTkeGetAddonsDiffs(o, n []interface{}) (adds, removes, changes []int
30353035

30363036
changes = fullIndexedKeeps.Difference(fullIndexedOlds).List()
30373037
return
3038-
}
3038+
}

tencentcloud/resource_tc_kubernetes_cluster_endpoint.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ func resourceTencentCloudTkeClusterEndpoint() *schema.Resource {
9292
Description: "Domain name for cluster Kube-apiserver internet access. " +
9393
" Be careful if you modify value of this parameter, the cluster_external_endpoint value may be changed automatically too.",
9494
},
95+
"extensive_parameters": {
96+
Type: schema.TypeString,
97+
ForceNew: true,
98+
Optional: true,
99+
Description: "The LB parameter. Only used for public network access.",
100+
},
95101
"cluster_intranet_domain": {
96102
Type: schema.TypeString,
97103
Optional: true,
@@ -215,6 +221,7 @@ func resourceTencentCloudTkeClusterEndpointCreate(d *schema.ResourceData, meta i
215221
clusterInternetSecurityGroup = d.Get("cluster_internet_security_group").(string)
216222
clusterInternetDomain = d.Get("cluster_internet_domain").(string)
217223
clusterIntranetDomain = d.Get("cluster_intranet_domain").(string)
224+
extensiveParameters = d.Get("extensive_parameters").(string)
218225
)
219226

220227
if err != nil {
@@ -246,7 +253,7 @@ func resourceTencentCloudTkeClusterEndpointCreate(d *schema.ResourceData, meta i
246253

247254
//TKE_DEPLOY_TYPE_INDEPENDENT Open the internet
248255
if clusterInternet {
249-
err := tencentCloudClusterInternetSwitch(ctx, &service, id, true, clusterInternetSecurityGroup, clusterInternetDomain)
256+
err := tencentCloudClusterInternetSwitch(ctx, &service, id, true, clusterInternetSecurityGroup, clusterInternetDomain, extensiveParameters)
250257
if err != nil {
251258
return err
252259
}
@@ -277,6 +284,7 @@ func resourceTencentCloudTkeClusterEndpointUpdate(d *schema.ResourceData, meta i
277284
clusterInternetDomain = d.Get("cluster_internet_domain").(string)
278285
clusterIntranetDomain = d.Get("cluster_intranet_domain").(string)
279286
subnetId = d.Get("cluster_intranet_subnet_id").(string)
287+
extensiveParameters = d.Get("extensive_parameters").(string)
280288
)
281289

282290
var (
@@ -293,7 +301,7 @@ func resourceTencentCloudTkeClusterEndpointUpdate(d *schema.ResourceData, meta i
293301
}
294302

295303
if d.HasChange("cluster_internet") {
296-
err = tencentCloudClusterInternetSwitch(ctx, &service, id, clusterInternet, clusterInternetSecurityGroup, clusterInternetDomain)
304+
err = tencentCloudClusterInternetSwitch(ctx, &service, id, clusterInternet, clusterInternetSecurityGroup, clusterInternetDomain, extensiveParameters)
297305
if err != nil {
298306
return err
299307
}
@@ -304,7 +312,7 @@ func resourceTencentCloudTkeClusterEndpointUpdate(d *schema.ResourceData, meta i
304312
} else if clusterInternet && d.HasChange("cluster_internet_domain") {
305313
// only domain changed, need to close and reopen
306314
// close
307-
err = tencentCloudClusterInternetSwitch(ctx, &service, id, false, clusterInternetSecurityGroup, clusterInternetDomain)
315+
err = tencentCloudClusterInternetSwitch(ctx, &service, id, false, clusterInternetSecurityGroup, clusterInternetDomain, "")
308316
if err != nil {
309317
return err
310318
}
@@ -313,7 +321,7 @@ func resourceTencentCloudTkeClusterEndpointUpdate(d *schema.ResourceData, meta i
313321
return err
314322
}
315323
// reopen
316-
err = tencentCloudClusterInternetSwitch(ctx, &service, id, true, clusterInternetSecurityGroup, clusterInternetDomain)
324+
err = tencentCloudClusterInternetSwitch(ctx, &service, id, true, clusterInternetSecurityGroup, clusterInternetDomain, extensiveParameters)
317325
if err != nil {
318326
return err
319327
}
@@ -383,7 +391,7 @@ func resourceTencentCloudTkeClusterEndpointDelete(d *schema.ResourceData, meta i
383391
)
384392

385393
if clusterInternet {
386-
err = tencentCloudClusterInternetSwitch(ctx, &service, id, false, "", "")
394+
err = tencentCloudClusterInternetSwitch(ctx, &service, id, false, "", "", "")
387395
if err != nil {
388396
errs = *multierror.Append(err)
389397
} else {
@@ -436,10 +444,10 @@ func waitForClusterEndpointFinish(ctx context.Context, service *TkeService, id s
436444
})
437445
}
438446

439-
func tencentCloudClusterInternetSwitch(ctx context.Context, service *TkeService, id string, enable bool, sg string, domain string) (err error) {
447+
func tencentCloudClusterInternetSwitch(ctx context.Context, service *TkeService, id string, enable bool, sg string, domain string, extensiveParameters string) (err error) {
440448
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
441449
if enable {
442-
err = service.CreateClusterEndpoint(ctx, id, "", sg, true, domain)
450+
err = service.CreateClusterEndpoint(ctx, id, "", sg, true, domain, extensiveParameters)
443451
if err != nil {
444452
return retryError(err, tke.RESOURCEUNAVAILABLE_CLUSTERSTATE)
445453
}
@@ -460,7 +468,7 @@ func tencentCloudClusterInternetSwitch(ctx context.Context, service *TkeService,
460468
func tencentCloudClusterIntranetSwitch(ctx context.Context, service *TkeService, id, subnetId string, enable bool, domain string) (err error) {
461469
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
462470
if enable {
463-
err = service.CreateClusterEndpoint(ctx, id, subnetId, "", false, domain)
471+
err = service.CreateClusterEndpoint(ctx, id, subnetId, "", false, domain, "")
464472
if err != nil {
465473
return retryError(err, tke.RESOURCEUNAVAILABLE_CLUSTERSTATE)
466474
}
@@ -476,4 +484,4 @@ func tencentCloudClusterIntranetSwitch(ctx context.Context, service *TkeService,
476484
return err
477485
}
478486
return nil
479-
}
487+
}

tencentcloud/resource_tc_kubernetes_cluster_endpoint_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func TestAccTencentCloudKubernetesClusterEndpoint(t *testing.T) {
4747
testAccCheckTkeExists("tencentcloud_kubernetes_cluster.managed_cluster"),
4848
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_endpoint.foo", "cluster_id"),
4949
resource.TestCheckResourceAttr("tencentcloud_kubernetes_cluster_endpoint.foo", "cluster_internet", "true"),
50+
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_endpoint.foo", "extensive_parameters"),
5051
),
5152
},
5253
{
@@ -174,6 +175,12 @@ resource "tencentcloud_kubernetes_cluster_endpoint" "foo" {
174175
cluster_intranet = true
175176
cluster_internet_security_group = local.new_sg
176177
cluster_intranet_subnet_id = data.tencentcloud_vpc_subnets.sub.instance_list.0.subnet_id
178+
extensive_parameters = jsonencode({
179+
InternetAccessible = {
180+
InternetChargeType = "BANDWIDTH_POSTPAID_BY_HOUR"
181+
InternetMaxBandwidthOut = 10
182+
}
183+
})
177184
depends_on = [
178185
tencentcloud_kubernetes_node_pool.np_test
179186
]

tencentcloud/service_tencentcloud_tke.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ func (me *TkeService) DeleteClusterAsGroups(ctx context.Context, id, asGroupId s
825825
/*
826826
open internet access
827827
*/
828-
func (me *TkeService) CreateClusterEndpoint(ctx context.Context, id string, subnetId, securityGroupId string, internet bool, domain string) (errRet error) {
828+
func (me *TkeService) CreateClusterEndpoint(ctx context.Context, id string, subnetId, securityGroupId string, internet bool, domain string, extensiveParameters string) (errRet error) {
829829
logId := getLogId(ctx)
830830

831831
request := tke.NewCreateClusterEndpointRequest()
@@ -850,6 +850,10 @@ func (me *TkeService) CreateClusterEndpoint(ctx context.Context, id string, subn
850850
request.Domain = helper.String(domain)
851851
}
852852

853+
if extensiveParameters != "" {
854+
request.ExtensiveParameters = helper.String(extensiveParameters)
855+
}
856+
853857
ratelimit.Check(request.GetAction())
854858
_, err := me.client.UseTkeClient().CreateClusterEndpoint(request)
855859
if err != nil {
@@ -2067,7 +2071,7 @@ func ModifyClusterInternetOrIntranetAccess(ctx context.Context, d *schema.Resour
20672071
// open access
20682072
if enable {
20692073
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2070-
inErr := tkeSvc.CreateClusterEndpoint(ctx, id, subnetId, sg, isInternet, domain)
2074+
inErr := tkeSvc.CreateClusterEndpoint(ctx, id, subnetId, sg, isInternet, domain, "")
20712075
if inErr != nil {
20722076
return retryError(inErr)
20732077
}
@@ -2197,4 +2201,4 @@ func (me *TkeService) deleteBackupStorageLocation(ctx context.Context, name stri
21972201
ratelimit.Check(request.GetAction())
21982202
_, err := me.client.UseTkeClient().DeleteBackupStorageLocation(request)
21992203
return err
2200-
}
2204+
}

website/docs/r/kubernetes_cluster_endpoint.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ The following arguments are supported:
4343
* `cluster_intranet_domain` - (Optional, String) Domain name for cluster Kube-apiserver intranet access. Be careful if you modify value of this parameter, the pgw_endpoint value may be changed automatically too.
4444
* `cluster_intranet_subnet_id` - (Optional, String) Subnet id who can access this independent cluster, this field must and can only set when `cluster_intranet` is true. `cluster_intranet_subnet_id` can not modify once be set.
4545
* `cluster_intranet` - (Optional, Bool) Open intranet access or not.
46+
* `extensive_parameters` - (Optional, String, ForceNew) The LB parameter. Only used for public network access.
4647
* `managed_cluster_internet_security_policies` - (Optional, List: [`String`], **Deprecated**) this argument was deprecated, use `cluster_internet_security_group` instead. Security policies for managed cluster internet, like:'192.168.1.0/24' or '113.116.51.27', '0.0.0.0/0' means all. This field can only set when field `cluster_deploy_type` is 'MANAGED_CLUSTER' and `cluster_internet` is true. `managed_cluster_internet_security_policies` can not delete or empty once be set.
4748

4849
## Attributes Reference

0 commit comments

Comments
 (0)