Skip to content

Commit b3ae371

Browse files
authored
Merge pull request #445 from crab21/master
tencentcloud_kubernetes_cluster support labels
2 parents e20356f + 632819a commit b3ae371

12 files changed

+204
-21
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
## 1.37.0 (Unreleased)
2+
3+
ENHANCEMENTS:
4+
5+
* Resource: `tencentcloud_kubernetes_cluster` add new argument `labels`.
6+
* Resource: `tencentcloud_kubernetes_as_scaling_group` add new argument `labels`.
7+
28
## 1.36.0 (June 08, 2020)
39

410
FEATURES:

examples/tencentcloud-tke/main.tf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
3434
tags = {
3535
"test" = "test"
3636
}
37+
38+
labels = {
39+
"test1" = "test1",
40+
"test2" = "test2",
41+
}
3742
}
3843

3944
#examples for INDEPENDENT_CLUSTER cluster
@@ -89,6 +94,11 @@ resource "tencentcloud_kubernetes_cluster" "independing_cluster" {
8994
password = "ZZXXccvv1212"
9095
}
9196

97+
labels = {
98+
"test1" = "test1",
99+
"test2" = "test2",
100+
}
101+
92102
cluster_deploy_type = "INDEPENDENT_CLUSTER"
93103
}
94104

@@ -168,4 +178,9 @@ resource "tencentcloud_kubernetes_as_scaling_group" "test" {
168178
}
169179

170180
}
181+
182+
labels = {
183+
"test1" = "test1",
184+
"test2" = "test2",
185+
}
171186
}

tencentcloud/resource_tc_kubernetes_as_scaling_group.go

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ resource "tencentcloud_kubernetes_as_scaling_group" "test" {
3030
3131
auto_scaling_config {
3232
configuration_name = "tf-guagua-as-config"
33-
instance_type = "SN3ne.8XLARGE64"
33+
instance_type = "S1.SMALL1"
3434
project_id = 0
3535
system_disk_type = "CLOUD_PREMIUM"
3636
system_disk_size = "50"
@@ -52,6 +52,11 @@ resource "tencentcloud_kubernetes_as_scaling_group" "test" {
5252
}
5353
5454
}
55+
56+
labels = {
57+
"test1" = "test1",
58+
"test1" = "test2",
59+
}
5560
}
5661
```
5762
*/
@@ -66,6 +71,7 @@ import (
6671
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
6772
as "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as/v20180419"
6873
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
74+
tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525"
6975
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
7076
)
7177

@@ -101,6 +107,12 @@ func ResourceTencentCloudKubernetesAsScalingGroup() *schema.Resource {
101107
},
102108
Description: "Auto scaling config parameters.",
103109
},
110+
"labels": {
111+
Type: schema.TypeMap,
112+
Optional: true,
113+
ForceNew: true,
114+
Description: "Labels of kubernetes AS Group created nodes.",
115+
},
104116
},
105117
}
106118
}
@@ -702,7 +714,33 @@ func resourceKubernetesAsScalingGroupRead(d *schema.ResourceData, meta interface
702714
if number == 0 {
703715
return nil
704716
}
705-
return nil
717+
718+
var clusterAsGroupSet *tke.ClusterAsGroup
719+
err = resource.Retry(readRetryTimeout, func() *resource.RetryError {
720+
clusterAsGroupSet, err = service.DescribeClusterAsGroupsByGroupId(ctx, clusterId, asGroupId)
721+
if err != nil {
722+
return retryError(err)
723+
}
724+
725+
if clusterAsGroupSet == nil {
726+
return nil
727+
}
728+
729+
labels := clusterAsGroupSet.Labels
730+
var labelsMap = make(map[string]string, len(labels))
731+
732+
for _, v := range labels {
733+
labelsMap[*v.Name] = *v.Value
734+
}
735+
d.Set("labels", labelsMap)
736+
return nil
737+
})
738+
739+
if clusterAsGroupSet == nil {
740+
d.SetId("")
741+
}
742+
743+
return err
706744
}
707745

708746
func resourceKubernetesAsScalingGroupCreate(d *schema.ResourceData, meta interface{}) error {
@@ -730,9 +768,11 @@ func resourceKubernetesAsScalingGroupCreate(d *schema.ResourceData, meta interfa
730768
return err
731769
}
732770

771+
labels := GetTkeLabels(d, "labels")
772+
733773
service := TkeService{client: meta.(*TencentCloudClient).apiV3Conn}
734774

735-
asGroupId, err := service.CreateClusterAsGroup(ctx, clusterId, groupParaStr, configParaStr)
775+
asGroupId, err := service.CreateClusterAsGroup(ctx, clusterId, groupParaStr, configParaStr, labels)
736776
if err != nil {
737777
return err
738778
}

tencentcloud/resource_tc_kubernetes_as_scaling_group_test.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ func TestAccTencentCloudTkeAsResource(t *testing.T) {
2626
resource.TestCheckResourceAttrSet(testTkeClusterAsResourceKey, "cluster_id"),
2727
resource.TestCheckResourceAttr(testTkeClusterAsResourceKey, "auto_scaling_group.#", "1"),
2828
resource.TestCheckResourceAttr(testTkeClusterAsResourceKey, "auto_scaling_config.#", "1"),
29+
resource.TestCheckResourceAttr(testTkeClusterAsResourceKey, "labels.test1", "test1"),
30+
resource.TestCheckResourceAttr(testTkeClusterAsResourceKey, "labels.test2", "test2"),
2931
),
3032
},
3133
},
@@ -116,7 +118,7 @@ data "tencentcloud_vpc_subnets" "vpc" {
116118
}
117119
118120
variable "default_instance_type" {
119-
default = "SN3ne.8XLARGE64"
121+
default = "S1.SMALL1"
120122
}
121123
122124
resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
@@ -199,6 +201,11 @@ resource "tencentcloud_kubernetes_as_scaling_group" "as_test" {
199201
}
200202
201203
}
204+
205+
labels = {
206+
"test1" = "test1",
207+
"test2" = "test2",
208+
}
202209
}
203210
204211
`

tencentcloud/resource_tc_kubernetes_cluster.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ variable "subnet" {
1717
}
1818
1919
variable "default_instance_type" {
20-
default = "SA1.LARGE8"
20+
default = "S1.SMALL1"
2121
}
2222
2323
#examples for MANAGED_CLUSTER cluster
2424
resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
2525
vpc_id = var.vpc
26-
cluster_cidr = "10.1.0.0/16"
26+
cluster_cidr = "10.31.0.0/16"
2727
cluster_max_pod_num = 32
2828
cluster_name = "test"
2929
cluster_desc = "test cluster desc"
@@ -51,6 +51,11 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
5151
password = "ZZXXccvv1212"
5252
}
5353
54+
labels = {
55+
"test1" = "test1",
56+
"test2" = "test2",
57+
}
58+
5459
cluster_deploy_type = "MANAGED_CLUSTER"
5560
}
5661
@@ -107,6 +112,11 @@ resource "tencentcloud_kubernetes_cluster" "independing_cluster" {
107112
password = "ZZXXccvv1212"
108113
}
109114
115+
labels = {
116+
"test1" = "test1",
117+
"test2" = "test2",
118+
}
119+
110120
cluster_deploy_type = "INDEPENDENT_CLUSTER"
111121
}
112122
```
@@ -589,6 +599,12 @@ func resourceTencentCloudTkeCluster() *schema.Resource {
589599
},
590600
Description: "An information list of cvm within the 'WORKER' clusters. Each element contains the following attributes:",
591601
},
602+
"labels": {
603+
Type: schema.TypeMap,
604+
Optional: true,
605+
ForceNew: true,
606+
Description: "Labels of tke cluster nodes.",
607+
},
592608
}
593609

594610
for k, v := range tkeSecurityInfo() {
@@ -943,6 +959,8 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
943959

944960
tags := helper.GetTags(d, "tags")
945961

962+
iAdvanced.Labels = GetTkeLabels(d, "labels")
963+
946964
service := TkeService{client: meta.(*TencentCloudClient).apiV3Conn}
947965

948966
id, err := service.CreateCluster(ctx, basic, advanced, cvms, iAdvanced, cidrSet, tags)
@@ -1124,7 +1142,7 @@ func resourceTencentCloudTkeClusterRead(d *schema.ResourceData, meta interface{}
11241142

11251143
_, workers, err := service.DescribeClusterInstances(ctx, d.Id())
11261144
if err != nil {
1127-
err = resource.Retry(readRetryTimeout, func() *resource.RetryError {
1145+
err = resource.Retry(10*readRetryTimeout, func() *resource.RetryError {
11281146
_, workers, err = service.DescribeClusterInstances(ctx, d.Id())
11291147

11301148
if e, ok := err.(*errors.TencentCloudSDKError); ok {
@@ -1205,6 +1223,7 @@ func resourceTencentCloudTkeClusterRead(d *schema.ResourceData, meta interface{}
12051223
} else {
12061224
_ = d.Set("cluster_intranet", true)
12071225
}
1226+
12081227
return nil
12091228
}
12101229

tencentcloud/resource_tc_kubernetes_cluster_attachment.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ variable "availability_zone" {
1010
}
1111
1212
variable "cluster_cidr" {
13-
default = "172.31.0.0/16"
13+
default = "172.16.0.0/16"
1414
}
1515
1616
variable "default_instance_type" {
17-
default = "SA1.LARGE8"
17+
default = "S1.SMALL1"
1818
}
1919
2020
data "tencentcloud_images" "default" {
@@ -84,6 +84,11 @@ resource "tencentcloud_kubernetes_cluster_attachment" "test_attach" {
8484
cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id
8585
instance_id = tencentcloud_instance.foo.id
8686
password = "Lo4wbdit"
87+
88+
labels = {
89+
"test1" = "test1",
90+
"test2" = "test2",
91+
}
8792
}
8893
```
8994
*/
@@ -141,6 +146,12 @@ func resourceTencentCloudTkeClusterAttachment() *schema.Resource {
141146
Computed: true,
142147
Description: "A list of security group ids after attach to cluster.",
143148
},
149+
"labels": {
150+
Type: schema.TypeMap,
151+
Optional: true,
152+
ForceNew: true,
153+
Description: "Labels of tke attachment exits cvm.",
154+
},
144155
}
145156

146157
return &schema.Resource{
@@ -270,6 +281,10 @@ func resourceTencentCloudTkeClusterAttachmentCreate(d *schema.ResourceData, meta
270281
return fmt.Errorf("parameters `key_ids` and `password` must set and only set one")
271282
}
272283

284+
request.InstanceAdvancedSettings = &tke.InstanceAdvancedSettings{}
285+
286+
request.InstanceAdvancedSettings.Labels = GetTkeLabels(d, "labels")
287+
273288
/*cvm has been attached*/
274289
var err error
275290
_, workers, err := tkeService.DescribeClusterInstances(ctx, *request.ClusterId)

tencentcloud/resource_tc_kubernetes_cluster_attachment_test.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ func TestAccTencentCloudTkeAttachResource(t *testing.T) {
2222
testAccCheckTkeAttachExists("tencentcloud_kubernetes_cluster_attachment.test_attach"),
2323
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_attachment.test_attach", "cluster_id"),
2424
resource.TestCheckResourceAttrSet("tencentcloud_kubernetes_cluster_attachment.test_attach", "instance_id"),
25+
resource.TestCheckResourceAttr("tencentcloud_kubernetes_cluster_attachment.test_attach", "labels.test1", "test1"),
26+
resource.TestCheckResourceAttr("tencentcloud_kubernetes_cluster_attachment.test_attach", "labels.test2", "test2"),
2527
),
2628
},
2729
},
@@ -131,11 +133,11 @@ variable "availability_zone" {
131133
}
132134
133135
variable "cluster_cidr" {
134-
default = "172.31.0.0/16"
136+
default = "172.16.0.0/16"
135137
}
136138
137139
variable "default_instance_type" {
138-
default = "SA1.LARGE8"
140+
default = "S1.SMALL1"
139141
}
140142
141143
data "tencentcloud_images" "default" {
@@ -166,11 +168,13 @@ resource "tencentcloud_instance" "foo" {
166168
instance_type = var.default_instance_type
167169
system_disk_type = "CLOUD_PREMIUM"
168170
system_disk_size = 50
171+
vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id
172+
subnet_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.subnet_id
169173
}
170174
171175
resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
172176
vpc_id = data.tencentcloud_vpc_subnets.vpc.instance_list.0.vpc_id
173-
cluster_cidr = "10.1.0.0/16"
177+
cluster_cidr = "10.31.0.0/16"
174178
cluster_max_pod_num = 32
175179
cluster_name = "keep"
176180
cluster_desc = "test cluster desc"
@@ -205,6 +209,11 @@ resource "tencentcloud_kubernetes_cluster_attachment" "test_attach" {
205209
cluster_id = tencentcloud_kubernetes_cluster.managed_cluster.id
206210
instance_id = tencentcloud_instance.foo.id
207211
password = "Lo4wbdit"
212+
213+
labels = {
214+
"test1" = "test1",
215+
"test2" = "test2",
216+
}
208217
}
209218
`
210219
}

tencentcloud/resource_tc_kubernetes_cluster_test.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestAccTencentCloudTkeResource(t *testing.T) {
2323
Config: testAccTkeCluster("test", "test"),
2424
Check: resource.ComposeTestCheckFunc(
2525
testAccCheckTkeExists(testTkeClusterResourceKey),
26-
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_cidr", "172.31.0.0/16"),
26+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_cidr", "10.31.0.0/16"),
2727
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_max_pod_num", "32"),
2828
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_name", "test"),
2929
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "cluster_desc", "test cluster desc"),
@@ -36,6 +36,8 @@ func TestAccTencentCloudTkeResource(t *testing.T) {
3636
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "tags.test", "test"),
3737
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "security_policy.#", "2"),
3838
resource.TestCheckResourceAttrSet(testTkeClusterResourceKey, "cluster_external_endpoint"),
39+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "labels.test1", "test1"),
40+
resource.TestCheckResourceAttr(testTkeClusterResourceKey, "labels.test2", "test2"),
3941
),
4042
},
4143
{
@@ -138,11 +140,11 @@ variable "availability_zone" {
138140
}
139141
140142
variable "cluster_cidr" {
141-
default = "172.31.0.0/16"
143+
default = "10.31.0.0/16"
142144
}
143145
144146
variable "default_instance_type" {
145-
default = "SA1.LARGE8"
147+
default = "S1.SMALL1"
146148
}
147149
148150
data "tencentcloud_vpc_subnets" "vpc" {
@@ -186,6 +188,11 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
186188
tags = {
187189
"%s" = "%s"
188190
}
191+
192+
labels = {
193+
"test1" = "test1",
194+
"test2" = "test2",
195+
}
189196
}
190197
`, key, value,
191198
)

0 commit comments

Comments
 (0)