Skip to content

Commit 838cb4d

Browse files
authored
Merge pull request #1762 from xawei/fix/tke-new-clb-config
feat: add extensive_parameters in tke endpoint resource
2 parents 8b0ecef + b0010db commit 838cb4d

File tree

6 files changed

+36
-13
lines changed

6 files changed

+36
-13
lines changed

.changelog/1762.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_endpoint: add parameter extensive_parameters
3+
```

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 2 additions & 2 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
}

tencentcloud/resource_tc_kubernetes_cluster_endpoint.go

Lines changed: 16 additions & 8 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
}

tencentcloud/resource_tc_kubernetes_cluster_endpoint_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
77
)
88

9-
func TestAccTencentCloudKubernetesClusterEndpoint(t *testing.T) {
9+
func TestAccTencentCloudKubernetesClusterEndpointResource(t *testing.T) {
1010
t.Parallel()
1111
resource.Test(t, resource.TestCase{
1212
PreCheck: func() { testAccPreCheck(t) },
@@ -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: 6 additions & 2 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 {
@@ -2068,7 +2072,7 @@ func ModifyClusterInternetOrIntranetAccess(ctx context.Context, d *schema.Resour
20682072
// open access
20692073
if enable {
20702074
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
2071-
inErr := tkeSvc.CreateClusterEndpoint(ctx, id, subnetId, sg, isInternet, domain)
2075+
inErr := tkeSvc.CreateClusterEndpoint(ctx, id, subnetId, sg, isInternet, domain, "")
20722076
if inErr != nil {
20732077
return retryError(inErr)
20742078
}

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)