Skip to content

Commit bc4ff97

Browse files
authored
feat(tke): [118298202] tencentcloud_kubernetes_cluster support cdc_id and pre_start_user_script parameter (#2835)
* feat(tke): add cdc id * feat(tke): add cdc id * docs(tke): add changelog * docs(tke): add changelog * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): cdc id * feat(tke): datasource support cdcid * feat(tke): datasource support cdcid
1 parent 3f38027 commit bc4ff97

15 files changed

+793
-40
lines changed

.changelog/2835.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_kubernetes_cluster: support `cdc_id` and `pre_start_user_script` parameter
3+
datasource/tencentcloud_kubernetes_clusters: support `cdc_id` parameter
4+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ require (
9191
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955
9292
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
9393
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912
94-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1001
94+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008
9595
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947
9696
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857
9797
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,8 +1038,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912 h1:XGOKd5u
10381038
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912/go.mod h1:iqTDU0pVTQ8RCeMJPk/PAWl9HeI1DFMd1h07yMH7RGU=
10391039
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998 h1:f4/n0dVKQTD06xJ84B5asHViNJHrZmGojdAWEPIsITM=
10401040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998/go.mod h1:fyi/HUwCwVe2NCCCjz8k/C5GwPu3QazCZO+OBJ3MhLk=
1041-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1001 h1:qj+pw5MJFuOvA+a+yAA2JR8B4TmfX5H5D8jy3L0YKH0=
1042-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1001/go.mod h1:FVJUGrfLPiJWiKrH+62h38Iyo9mA2O1wuaPLMlbeDBI=
1041+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008 h1:Cz7JSuS2zxIBzAuZ2bKk3EmrZ1QgS2QAHmCDTDPWBz0=
1042+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008/go.mod h1:71PkDdVPT2Pd8yiuX6QFUDReTji39R/03dg1JwcjHWo=
10431043
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947 h1:iZfuU8S86kfqFsAVT/LUApP8L5cpT90hl2wSKiUDVvw=
10441044
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947/go.mod h1:eAgJ+XUEhffMq79zjpgHoR3PBVcciSg+LuPDC8hLWsE=
10451045
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857 h1:TkJnvSeRSXsRCwOwcwXSvruSK9s/kw8LC3FLeccw+A0=

tencentcloud/services/tke/data_source_tc_kubernetes_clusters.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tencentcloud/services/tke/resource_tc_kubernetes_cluster.go

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tencentcloud/services/tke/resource_tc_kubernetes_cluster.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,18 +767,46 @@ resource "tencentcloud_kubernetes_cluster" "managed_cluster" {
767767
768768
event_persistence {
769769
enabled = true
770-
log_set_id = "" # optional
770+
log_set_id = "" # optional
771771
topic_id = "" # optional
772772
}
773773
774774
cluster_audit {
775775
enabled = true
776-
log_set_id = "" # optional
776+
log_set_id = "" # optional
777777
topic_id = "" # optional
778778
}
779779
}
780780
```
781781

782+
Create a CDC scenario cluster
783+
```
784+
resource "tencentcloud_kubernetes_cluster" "cdc_cluster" {
785+
cdc_id = "cluster-xxxxx"
786+
vpc_id = "vpc-xxxxx"
787+
cluster_cidr = "192.168.0.0/16"
788+
cluster_max_pod_num = 64
789+
cluster_name = "test-cdc"
790+
cluster_desc = "test cluster desc"
791+
cluster_max_service_num = 1024
792+
cluster_version = "1.30.0"
793+
794+
cluster_os = "tlinux3.1x86_64"
795+
cluster_level = "L20"
796+
cluster_deploy_type = "INDEPENDENT_CLUSTER"
797+
798+
container_runtime = "containerd"
799+
runtime_version = "1.6.9"
800+
pre_start_user_script = "aXB0YWJsZXMgLUEgSU5QVVQgLXAgdGNwIC1zIDE2OS4yNTQuMC4wLzE5IC0tdGNwLWZsYWdzIFNZTixSU1QgU1lOIC1qIFRDUE1TUyAtLXNldC1tc3MgMTE2MAppcHRhYmxlcyAtQSBPVVRQVVQgLXAgdGNwIC1kIDE2OS4yNTQuMC4wLzE5IC0tdGNwLWZsYWdzIFNZTixSU1QgU1lOIC1qIFRDUE1TUyAtLXNldC1tc3MgMTE2MAoKZWNobyAnCmlwdGFibGVzIC1BIElOUFVUIC1wIHRjcCAtcyAxNjkuMjU0LjAuMC8xOSAtLXRjcC1mbGFncyBTWU4sUlNUIFNZTiAtaiBUQ1BNU1MgLS1zZXQtbXNzIDExNjAKaXB0YWJsZXMgLUEgT1VUUFVUIC1wIHRjcCAtZCAxNjkuMjU0LjAuMC8xOSAtLXRjcC1mbGFncyBTWU4sUlNUIFNZTiAtaiBUQ1BNU1MgLS1zZXQtbXNzIDExNjAKJyA+PiAvZXRjL3JjLmQvcmMubG9jYWw="
801+
exist_instance {
802+
node_role = "MASTER_ETCD"
803+
instances_para {
804+
instance_ids = ["ins-eeijdk16", "ins-84ku5rba", "ins-8oa3im2s"]
805+
}
806+
}
807+
}
808+
```
809+
782810
Import
783811

784812
tke cluster can be imported, e.g.

tencentcloud/services/tke/resource_tc_kubernetes_cluster_extension.go

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -149,34 +149,39 @@ func resourceTencentCloudKubernetesClusterCreatePostFillRequest0(ctx context.Con
149149
Master: make([]tke.InstanceAdvancedSettings, 0),
150150
Work: make([]tke.InstanceAdvancedSettings, 0),
151151
}
152-
if masters, ok := d.GetOk("master_config"); ok {
153-
if clusterDeployType == TKE_DEPLOY_TYPE_MANAGED {
154-
return fmt.Errorf("if `cluster_deploy_type` is `MANAGED_CLUSTER` , You don't need define the master yourself")
155-
}
156-
var masterCount int64 = 0
157-
masterList := masters.([]interface{})
158-
for index := range masterList {
159-
master := masterList[index].(map[string]interface{})
160-
paraJson, count, err := tkeGetCvmRunInstancesPara(master, meta, vpcId, basic.ProjectId)
161-
if err != nil {
162-
return err
152+
153+
cdc_id := d.Get("cdc_id").(string)
154+
155+
if cdc_id == "" {
156+
if masters, ok := d.GetOk("master_config"); ok {
157+
if clusterDeployType == TKE_DEPLOY_TYPE_MANAGED {
158+
return fmt.Errorf("if `cluster_deploy_type` is `MANAGED_CLUSTER` , You don't need define the master yourself")
163159
}
160+
var masterCount int64 = 0
161+
masterList := masters.([]interface{})
162+
for index := range masterList {
163+
master := masterList[index].(map[string]interface{})
164+
paraJson, count, err := tkeGetCvmRunInstancesPara(master, meta, vpcId, basic.ProjectId)
165+
if err != nil {
166+
return err
167+
}
164168

165-
cvms.Master = append(cvms.Master, paraJson)
166-
masterCount += count
169+
cvms.Master = append(cvms.Master, paraJson)
170+
masterCount += count
167171

168-
if v, ok := master["desired_pod_num"]; ok {
169-
dpNum := int64(v.(int))
170-
if dpNum != DefaultDesiredPodNum {
171-
overrideSettings.Master = append(overrideSettings.Master, tke.InstanceAdvancedSettings{DesiredPodNumber: helper.Int64(dpNum)})
172+
if v, ok := master["desired_pod_num"]; ok {
173+
dpNum := int64(v.(int))
174+
if dpNum != DefaultDesiredPodNum {
175+
overrideSettings.Master = append(overrideSettings.Master, tke.InstanceAdvancedSettings{DesiredPodNumber: helper.Int64(dpNum)})
176+
}
172177
}
173178
}
179+
if masterCount < 3 {
180+
return fmt.Errorf("if `cluster_deploy_type` is `TKE_DEPLOY_TYPE_INDEPENDENT` len(master_config) should >=3")
181+
}
182+
} else if clusterDeployType == TKE_DEPLOY_TYPE_INDEPENDENT {
183+
return fmt.Errorf("if `cluster_deploy_type` is `TKE_DEPLOY_TYPE_INDEPENDENT` , You need define the master yourself")
174184
}
175-
if masterCount < 3 {
176-
return fmt.Errorf("if `cluster_deploy_type` is `TKE_DEPLOY_TYPE_INDEPENDENT` len(master_config) should >=3")
177-
}
178-
} else if clusterDeployType == TKE_DEPLOY_TYPE_INDEPENDENT {
179-
return fmt.Errorf("if `cluster_deploy_type` is `TKE_DEPLOY_TYPE_INDEPENDENT` , You need define the master yourself")
180185
}
181186

182187
if workers, ok := d.GetOk("worker_config"); ok {
@@ -261,6 +266,10 @@ func resourceTencentCloudKubernetesClusterCreatePostFillRequest0(ctx context.Con
261266
iAdvanced.DockerGraphPath = "/var/lib/docker"
262267
}
263268

269+
if preStartUserScript, ok := d.GetOk("pre_start_user_script"); ok {
270+
iAdvanced.PreStartUserScript = preStartUserScript.(string)
271+
}
272+
264273
// ExistedInstancesForNode
265274
existInstances := make([]*tke.ExistedInstancesForNode, 0)
266275
if instances, ok := d.GetOk("exist_instance"); ok {
@@ -296,6 +305,7 @@ func resourceTencentCloudKubernetesClusterCreatePostFillRequest0(ctx context.Con
296305
req.ClusterAdvancedSettings.VpcCniType = &advanced.VpcCniType
297306

298307
req.InstanceAdvancedSettings.DockerGraphPath = &iAdvanced.DockerGraphPath
308+
req.InstanceAdvancedSettings.PreStartUserScript = &iAdvanced.PreStartUserScript
299309
req.InstanceAdvancedSettings.UserScript = &iAdvanced.UserScript
300310

301311
if len(iAdvanced.DataDisks) > 0 {
@@ -311,7 +321,9 @@ func resourceTencentCloudKubernetesClusterCreatePostFillRequest0(ctx context.Con
311321

312322
req.RunInstancesForNode = []*tke.RunInstancesForNode{}
313323

314-
if len(cvms.Master) != 0 {
324+
if cdc_id != "" {
325+
req.ClusterType = helper.String(clusterDeployType)
326+
} else if len(cvms.Master) != 0 {
315327

316328
var node tke.RunInstancesForNode
317329
node.NodeRole = helper.String(TKE_ROLE_MASTER_ETCD)

tencentcloud/services/tke/resource_tc_kubernetes_health_check_policy_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ resource "tencentcloud_kubernetes_health_check_policy" "kubernetes_health_check_
6565
`
6666

6767
// const testAccKubernetesHealthCheckPolicyUpdate = testAccTkeCluster + `
68-
const testAccKubernetesHealthCheckPolicyCreate = `
68+
const testAccKubernetesHealthCheckPolicyUpdate = `
6969
7070
resource "tencentcloud_kubernetes_health_check_policy" "kubernetes_health_check_policy" {
7171
cluster_id = "cls-eh0da110"

tencentcloud/services/tke/service_tencentcloud_tke.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,15 @@ type RunInstancesForNode struct {
7373
}
7474

7575
type InstanceAdvancedSettings struct {
76-
MountTarget string
77-
DockerGraphPath string
78-
UserScript string
79-
Unschedulable int64
80-
DesiredPodNum int64
81-
Labels []*tke.Label
82-
DataDisks []*tke.DataDisk
83-
ExtraArgs tke.InstanceExtraArgs
76+
MountTarget string
77+
DockerGraphPath string
78+
PreStartUserScript string
79+
UserScript string
80+
Unschedulable int64
81+
DesiredPodNum int64
82+
Labels []*tke.Label
83+
DataDisks []*tke.DataDisk
84+
ExtraArgs tke.InstanceExtraArgs
8485
}
8586

8687
type ClusterCidrSettings struct {

0 commit comments

Comments
 (0)