Skip to content

Commit 7b06798

Browse files
authored
fix(as): [120908769] tencentcloud_as_scaling_config support cdc (#2980)
* add * add
1 parent 2e09358 commit 7b06798

File tree

9 files changed

+339
-135
lines changed

9 files changed

+339
-135
lines changed

.changelog/2980.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_as_scaling_config: support cdc
3+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ require (
3030
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285
3131
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825
33-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033
33+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.760
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1046
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1014
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825 h1:yiC2lsZ
828828
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825/go.mod h1:6qtSa8OZKwJOWoOCYWVZd6+T62O96AxbPll0I43d4yw=
829829
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033 h1:f39voqCh8s061EQojp1QHZSq+QbjrmOkz4LeVFA47r0=
830830
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033/go.mod h1:PzOW1D/Lzd4sUW3xlT+4oXp+6MLCN55J+V/W9q1acro=
831+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050 h1:uLV7suHZzLYQ7FzzPotAxHp8U2Cyu79Q9+DjHfGBS1o=
832+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050/go.mod h1:z8L5Brgaqaq9DK0p8wzOB+6alOD/qWABzkCFmitewAE=
831833
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+qd7tadUrCjVAkCCmE3TsbK2ZmwGd3AJcpWc=
832834
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw=
833835
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.760 h1:Ky9dRsTL2HXKWUrTFpQFZWQ1TrM+o+P35kczR7thalo=
@@ -938,6 +940,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1045 h1:3vv
938940
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1045/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
939941
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1046 h1:0FvA5Rw9dGqK5CTbWlgyE1HbiND1hLsoIfne4jzWuRI=
940942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1046/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
943+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050 h1:SnzAe4ntwwrUf0jzgxE5Qm7wH8atRwvaDT+njfNExJ4=
944+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
941945
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
942946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
943947
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=

tencentcloud/services/as/resource_tc_as_scaling_config.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func ResourceTencentCloudAsScalingConfig() *schema.Resource {
109109
"instance_charge_type": {
110110
Type: schema.TypeString,
111111
Optional: true,
112-
Description: "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.",
112+
Description: "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.",
113113
},
114114
"instance_charge_type_prepaid_period": {
115115
Type: schema.TypeInt,
@@ -262,6 +262,11 @@ func ResourceTencentCloudAsScalingConfig() *schema.Resource {
262262
},
263263
},
264264
},
265+
"dedicated_cluster_id": {
266+
Type: schema.TypeString,
267+
Optional: true,
268+
Description: "Dedicated Cluster ID.",
269+
},
265270
// Computed values
266271
"status": {
267272
Type: schema.TypeString,
@@ -485,6 +490,10 @@ func resourceTencentCloudAsScalingConfigCreate(d *schema.ResourceData, meta inte
485490
request.InstanceNameSettings = settings[0]
486491
}
487492

493+
if v, ok := d.GetOk("dedicated_cluster_id"); ok {
494+
request.DedicatedClusterId = helper.String(v.(string))
495+
}
496+
488497
response, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().CreateLaunchConfiguration(request)
489498
if err != nil {
490499
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
@@ -598,6 +607,11 @@ func resourceTencentCloudAsScalingConfigRead(d *schema.ResourceData, meta interf
598607
if config.InstanceChargePrepaid != nil {
599608
_ = d.Set("instance_charge_type_prepaid_renew_flag", config.InstanceChargePrepaid.RenewFlag)
600609
}
610+
611+
if config.DedicatedClusterId != nil {
612+
_ = d.Set("dedicated_cluster_id", config.DedicatedClusterId)
613+
}
614+
601615
return nil
602616
})
603617
if err != nil {
@@ -854,6 +868,12 @@ func resourceTencentCloudAsScalingConfigUpdate(d *schema.ResourceData, meta inte
854868
}
855869
}
856870

871+
if d.HasChange("dedicated_cluster_id") {
872+
if v, ok := d.GetOk("dedicated_cluster_id"); ok {
873+
request.DedicatedClusterId = helper.String(v.(string))
874+
}
875+
}
876+
857877
response, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().ModifyLaunchConfigurationAttributes(request)
858878
if err != nil {
859879
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",

tencentcloud/services/as/resource_tc_as_scaling_config.md

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ Provides a resource to create a configuration for an AS (Auto scaling) instance.
44

55
Example Usage
66

7+
Create a normal configuration
8+
79
```hcl
810
data "tencentcloud_images" "example" {
911
image_type = ["PUBLIC_IMAGE"]
10-
os_name = "TencentOS Server 3.2 (Final)"
12+
os_name = "TencentOS Server 4 for x86_64"
1113
}
1214
1315
resource "tencentcloud_as_scaling_config" "example" {
14-
configuration_name = "example-launch-configuration"
16+
configuration_name = "tf-example"
1517
image_id = data.tencentcloud_images.example.images.0.image_id
16-
instance_types = ["SA1.SMALL1"]
18+
instance_types = ["SA5.MEDIUM4"]
1719
project_id = 0
1820
system_disk_type = "CLOUD_PREMIUM"
1921
system_disk_size = "50"
@@ -33,7 +35,7 @@ resource "tencentcloud_as_scaling_config" "example" {
3335
user_data = "dGVzdA=="
3436
3537
host_name_settings {
36-
host_name = "host-name-test"
38+
host_name = "host-name"
3739
host_name_style = "UNIQUE"
3840
}
3941
@@ -48,13 +50,13 @@ Using `SPOTPAID` charge type
4850
```hcl
4951
data "tencentcloud_images" "example" {
5052
image_type = ["PUBLIC_IMAGE"]
51-
os_name = "TencentOS Server 3.2 (Final)"
53+
os_name = "TencentOS Server 4 for x86_64"
5254
}
5355
5456
resource "tencentcloud_as_scaling_config" "example" {
55-
configuration_name = "launch-configuration"
57+
configuration_name = "tf-example"
5658
image_id = data.tencentcloud_images.example.images.0.image_id
57-
instance_types = ["SA1.SMALL1"]
59+
instance_types = ["SA5.MEDIUM4"]
5860
instance_charge_type = "SPOTPAID"
5961
spot_instance_type = "one-time"
6062
spot_max_price = "1000"
@@ -88,6 +90,49 @@ resource "tencentcloud_as_scaling_config" "example" {
8890
}
8991
```
9092

93+
Create a CDC configuration
94+
95+
```hcl
96+
data "tencentcloud_images" "example" {
97+
image_type = ["PUBLIC_IMAGE"]
98+
os_name = "TencentOS Server 4 for x86_64"
99+
}
100+
101+
resource "tencentcloud_as_scaling_config" "example" {
102+
configuration_name = "tf-example"
103+
image_id = data.tencentcloud_images.example.images.0.image_id
104+
instance_types = ["SA5.MEDIUM4"]
105+
project_id = 0
106+
system_disk_type = "CLOUD_PREMIUM"
107+
system_disk_size = "50"
108+
instance_charge_type = "CDCPAID"
109+
dedicated_cluster_id = "cluster-262n63e8"
110+
111+
data_disk {
112+
disk_type = "CLOUD_PREMIUM"
113+
disk_size = 50
114+
}
115+
116+
internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR"
117+
internet_max_bandwidth_out = 10
118+
public_ip_assigned = true
119+
password = "Test@123#"
120+
enhanced_security_service = false
121+
enhanced_monitor_service = false
122+
enhanced_automation_tools_service = false
123+
user_data = "dGVzdA=="
124+
125+
host_name_settings {
126+
host_name = "host-name"
127+
host_name_style = "UNIQUE"
128+
}
129+
130+
instance_tags = {
131+
tag = "example"
132+
}
133+
}
134+
```
135+
91136
Import
92137

93138
AutoScaling Configuration can be imported using the id, e.g.

0 commit comments

Comments
 (0)