Skip to content

Commit 9da8cc8

Browse files
committed
feat: support cdc
1 parent 9d7f28f commit 9da8cc8

File tree

6 files changed

+23
-5
lines changed

6 files changed

+23
-5
lines changed

builder/tencentcloud/cvm/builder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
109109
SubnetCidrBlock: b.config.SubnectCidrBlock,
110110
SubnetName: b.config.SubnetName,
111111
Zone: b.config.Zone,
112+
CdcId: b.config.CdcId,
112113
},
113114
&stepConfigSecurityGroup{
114115
SecurityGroupId: b.config.SecurityGroupId,
@@ -132,6 +133,7 @@ func (b *Builder) Run(ctx context.Context, ui packersdk.Ui, hook packersdk.Hook)
132133
AssociatePublicIpAddress: b.config.AssociatePublicIpAddress,
133134
CamRoleName: b.config.CamRoleName,
134135
Tags: b.config.RunTags,
136+
CdcId: b.config.CdcId,
135137
},
136138
&communicator.StepConnect{
137139
Config: &b.config.TencentCloudRunConfig.Comm,

builder/tencentcloud/cvm/run_config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ type TencentCloudRunConfig struct {
103103
// [`dynamic_block`](/packer/docs/templates/hcl_templates/expressions#dynamic-blocks)
104104
// will allow you to create those programatically.
105105
RunTag config.KeyValues `mapstructure:"run_tag" required:"false"`
106+
// Support for local dedicated cluster CDC
107+
CdcId string `mapstructure:"cdc_id" required:"false"`
106108

107109
// Communicator settings
108110
Comm communicator.Config `mapstructure:",squash"`

builder/tencentcloud/cvm/step_config_subnet.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type stepConfigSubnet struct {
1717
SubnetName string
1818
Zone string
1919
isCreate bool
20+
CdcId string
2021
}
2122

2223
func (s *stepConfigSubnet) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
@@ -57,6 +58,7 @@ func (s *stepConfigSubnet) Run(ctx context.Context, state multistep.StateBag) mu
5758
req.SubnetName = &s.SubnetName
5859
req.CidrBlock = &s.SubnetCidrBlock
5960
req.Zone = &s.Zone
61+
req.CdcId = &s.CdcId
6062
var resp *vpc.CreateSubnetResponse
6163
err := Retry(ctx, func(ctx context.Context) error {
6264
var e error

builder/tencentcloud/cvm/step_run_instance.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type stepRunInstance struct {
3232
AssociatePublicIpAddress bool
3333
Tags map[string]string
3434
DataDisks []tencentCloudDataDisk
35+
CdcId string
3536
}
3637

3738
func (s *stepRunInstance) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
@@ -66,9 +67,13 @@ func (s *stepRunInstance) Run(ctx context.Context, state multistep.StateBag) mul
6667
if instanceChargeType == "" {
6768
instanceChargeType = "POSTPAID_BY_HOUR"
6869
}
70+
if s.CdcId != "" {
71+
instanceChargeType = "CDCPAID"
72+
}
6973
req.InstanceChargeType = &instanceChargeType
7074
req.ImageId = source_image.ImageId
7175
req.InstanceType = &s.InstanceType
76+
req.DedicatedClusterId = &s.CdcId
7277
// TODO: Add check for system disk size, it should be larger than image system disk size.
7378
req.SystemDisk = &cvm.SystemDisk{
7479
DiskType: &s.DiskType,
@@ -157,6 +162,7 @@ func (s *stepRunInstance) Run(ctx context.Context, state multistep.StateBag) mul
157162
},
158163
}
159164
}
165+
Message(state, req.ToJsonString(), "[DEBUG] request data")
160166

161167
var resp *cvm.RunInstancesResponse
162168
err = Retry(ctx, func(ctx context.Context) error {

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ require (
66
github.com/hashicorp/hcl/v2 v2.19.1
77
github.com/hashicorp/packer-plugin-sdk v0.5.2
88
github.com/pkg/errors v0.9.1
9-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799
10-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.799
9+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072
10+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1072
1111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.797
12-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.799
12+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1072
1313
github.com/zclconf/go-cty v1.13.3
1414
)
1515

go.sum

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,9 @@ github.com/hashicorp/go-getter/s3/v2 v2.2.1/go.mod h1:KDqfEPgpwZIy+1sAplFX231CE+
145145
github.com/hashicorp/go-getter/v2 v2.2.1 h1:2JXqPZs1Jej67RtdTi0YZaEB2hEFB3fkBA4cPYKQwFQ=
146146
github.com/hashicorp/go-getter/v2 v2.2.1/go.mod h1:EcJx6oZE8hmGuRR1l38QrfnyiujQbwsEAn11eHv6l2M=
147147
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
148+
github.com/hashicorp/go-hclog v1.2.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
148149
github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
149150
github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
150-
github.com/hashicorp/go-hclog v1.2.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
151151
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
152152
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
153153
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
@@ -329,11 +329,15 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797 h1:jDSf
329329
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
330330
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799 h1:jAMelFh7c+sBrR2kzdNB2zfmkhsEXLIR9YFQcBuTnzI=
331331
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
332+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072 h1:zoo8LhsH0kC3ysBCMDmgOCVzyQKTpw7foOzNoxAXcGE=
333+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
332334
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.366 h1:NJm4RjeL2btX3alWLQvyzObmlDtGC0pCFCoeqWw2Veg=
333335
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.366/go.mod h1:x9QV7qu6FpnSdVyGQoirhjKsPd1dEpWnr9RL75DpgJ4=
334336
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
335337
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.799 h1:FnXNkHQhPX7sNvxKNYyMB6PGpbMCce6bfXkzRwGHS74=
336338
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.799/go.mod h1:bNuzbq27CiymhqONoqE1CnhK6aJJjWWcZG8J3ragVfs=
339+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1072 h1:BO6eEqw2CxeP73AnOfkq99mJAPccP+w3exmVuBDMvAc=
340+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1072/go.mod h1:Ot4h9BuqIbyOPotq8cIT3vCCMDdn6LXkc37jU2teHnQ=
337341
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.797 h1:Z9rTZBoR4arEXA9gYLu8AQnMInG1scb+WnlIWczLH2A=
338342
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.797/go.mod h1:IugQh1ZI86ZeEUBYf+u/REwTeKZcneP449FPU8BbLxA=
339343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.366 h1:7wbTvCCJ41Hx9KWO9pcmvOFWFS1A9iPs0jtQJLwe++U=
@@ -342,6 +346,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.779 h1:4NpjQiF
342346
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.779/go.mod h1:kYBG2jgpjL7CuhYM+K1fkEtbWvNXrtt7NSLwXVCqmKA=
343347
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.799 h1:6M8TGTEvrLAjxaKl53RyDIktCmF8kPuL0swJeKsbR/E=
344348
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.799/go.mod h1:jq1PLPim6gB9soBqQ/H6fRAI/NYlj/Qtn8JZfOK+eWw=
349+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1072 h1:qG5L/VZcw4PC+OSMjxM1BNXlOfJ9vvDfToItgmCxfLE=
350+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1072/go.mod h1:fynFW8ciFiCFLVyIKyQKENQ6g+Tm7mXw687lFgPmU/Y=
345351
github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.47 h1:6e9miVImuKP6g2HDDyNNTGrh/UnCmgkqJ+CInE6kZ7s=
346352
github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.47/go.mod h1:YuYFm1AJbAELr9L799QJdLkZVkBaeFHokCeBG4J02Lc=
347353
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
@@ -350,12 +356,12 @@ github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ
350356
github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw=
351357
github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
352358
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
353-
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI=
354359
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
355360
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
356361
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
357362
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1 h1:q6c//IMJug6THoqsseZ+Z/zq53HQvADPh5a66E9hb+I=
358363
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1/go.mod h1:Rl8MvKI/yVRGN91gMEZAIf/92QtFQBSG/QFRHWQZtmo=
364+
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI=
359365
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
360366
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
361367
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=

0 commit comments

Comments
 (0)