Skip to content

Commit 5dda581

Browse files
author
mikatong
committed
support kms_cluster_id
1 parent 6ddd7ff commit 5dda581

File tree

10 files changed

+152
-183
lines changed

10 files changed

+152
-183
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1154
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1156
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1153
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1111
@@ -70,7 +70,7 @@ require (
7070
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066
7171
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853
7272
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038
73-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1103
73+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156
7474
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038
7575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762
7676
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008

go.sum

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -959,12 +959,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148 h1:+2j
959959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
960960
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149 h1:a2N8e9YHftVvJmI6PIVJBLfPuy2dn+jZ92atTsmtJuc=
961961
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
962-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 h1:g/aw2nrrMfO/+sdBPCFsiq+sgSFNiUK/sAci6PT4O4E=
963-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
964962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1150 h1:r/cHvpMZ0oO5/HOuSsPdq3Dj1YX4pF0mhZS7G5gWKEs=
965963
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1150/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
964+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153 h1:g/aw2nrrMfO/+sdBPCFsiq+sgSFNiUK/sAci6PT4O4E=
965+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1153/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
966966
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1154 h1:tc2GXLGwpjaZdapd7pEpUjoeWU5gl3XUuZzDEyes7fg=
967967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1154/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
968+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1156 h1:Uz9TqzwTAtRYuV7gB0Fh2E013qPrUJpS6CeNJ7vlfAI=
969+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1156/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
968970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
969971
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
970972
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1029,6 +1031,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038
10291031
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038/go.mod h1:ZcauOIKWXstNwe6IlD3iBBxzljEWdQjZbTc6PfwsPxQ=
10301032
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1103 h1:lJW5ID6x9DS2xZzzALJVpY9zhNfqhBl/e2YDUkbzBcg=
10311033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1103/go.mod h1:PI4OqbnLLCWw6u/vNHnVVZeV/awmB9+zpLdhjYhWbKs=
1034+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156 h1:zf/4a8G7E7RlVaGCVyjVkljX5P4gjNJymQkHoEzhjs4=
1035+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156/go.mod h1:B1+7f2z0qF8G2EjFzPXtqHK3tPbzqb2y725eW1wIkaM=
10321036
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 h1:4rzyVxkDB27v73jDXPr5eGAwjN859R7SsqniCt+46XE=
10331037
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038/go.mod h1:TAHhxxDVV36Pe4P4Gel3dgX4kHUfQO7f27GzRf8DAro=
10341038
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA=

tencentcloud/services/postgresql/resource_tc_postgresql_instance.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,12 @@ func ResourceTencentCloudPostgresqlInstance() *schema.Resource {
203203
Computed: true,
204204
Description: "Region of the custom key.",
205205
},
206+
"kms_cluster_id": {
207+
Type: schema.TypeString,
208+
Optional: true,
209+
Computed: true,
210+
Description: "Specify the cluster served by KMS. If KMSClusterId is blank, use the KMS of the default cluster. If you choose to specify a KMS cluster, you need to pass in KMSClusterId.",
211+
},
206212
"public_access_switch": {
207213
Type: schema.TypeBool,
208214
Optional: true,
@@ -390,6 +396,7 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
390396
needSupportTde = 0
391397
kmsKeyId = ""
392398
kmsRegion = ""
399+
kmsClusterId = ""
393400
period = 1
394401
autoRenewFlag = 0
395402
autoVoucher = 0
@@ -432,6 +439,10 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
432439
kmsRegion = v.(string)
433440
}
434441

442+
if v, ok := d.GetOk("kms_cluster_id"); ok {
443+
kmsClusterId = v.(string)
444+
}
445+
435446
if v, ok := d.GetOkExists("auto_renew_flag"); ok {
436447
autoRenewFlag = v.(int)
437448
}
@@ -562,6 +573,7 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
562573
needSupportTde,
563574
kmsKeyId,
564575
kmsRegion,
576+
kmsClusterId,
565577
autoVoucher,
566578
voucherIds,
567579
)
@@ -925,6 +937,7 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
925937
if has {
926938
_ = d.Set("kms_key_id", kms.KeyId)
927939
_ = d.Set("kms_region", kms.KeyRegion)
940+
_ = d.Set("kms_cluster_id", kms.KMSClusterId)
928941
}
929942

930943
// Uid, must use
@@ -1084,7 +1097,7 @@ func resourceTencentCloudPostgresqlInstanceUpdate(d *schema.ResourceData, meta i
10841097
return err
10851098
}
10861099

1087-
if d.HasChange("need_support_tde") || d.HasChange("kms_key_id") || d.HasChange("kms_region") {
1100+
if d.HasChange("need_support_tde") || d.HasChange("kms_key_id") || d.HasChange("kms_region") || d.HasChange("kms_cluster_id") {
10881101
return fmt.Errorf("Not support change params contact with data transparent encryption.")
10891102
}
10901103

tencentcloud/services/postgresql/resource_tc_postgresql_instance_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,30 @@ func TestAccTencentCloudPostgresqlInstanceResource_MAZ(t *testing.T) {
403403
})
404404
}
405405

406+
func TestAccTencentCloudPostgresqlInstanceResource_kms(t *testing.T) {
407+
// t.Parallel()
408+
resource.Test(t, resource.TestCase{
409+
PreCheck: func() {
410+
tcacctest.AccPreCheck(t)
411+
},
412+
Providers: tcacctest.AccProviders,
413+
CheckDestroy: testAccCheckPostgresqlInstanceDestroy,
414+
Steps: []resource.TestStep{
415+
{
416+
Config: testAccPostgresqlInstanceKMS,
417+
Check: resource.ComposeTestCheckFunc(
418+
testAccCheckPostgresqlInstanceExists("tencentcloud_postgresql_instance.pg_kms"),
419+
resource.TestCheckResourceAttrSet("tencentcloud_postgresql_instance.pg_kms", "id"),
420+
resource.TestCheckResourceAttr("tencentcloud_postgresql_instance.pg_kms", "need_support_tde", "1"),
421+
resource.TestCheckResourceAttr("tencentcloud_postgresql_instance.pg_kms", "kms_cluster_id", "cls-hsm-mwpd9cjm"),
422+
resource.TestCheckResourceAttr("tencentcloud_postgresql_instance.pg_kms", "kms_key_id", "4fc08855-24ee-11f0-b8ff-5254003580da"),
423+
resource.TestCheckResourceAttr("tencentcloud_postgresql_instance.pg_kms", "kms_region", "ap-hongkong"),
424+
),
425+
},
426+
},
427+
})
428+
}
429+
406430
func testAccCheckPostgresqlInstanceDestroy(s *terraform.State) error {
407431
for _, rs := range s.RootModule().Resources {
408432
if rs.Type != testPostgresqlInstanceResourceName {
@@ -764,3 +788,35 @@ resource "tencentcloud_postgresql_instance" "test" {
764788
}
765789
}
766790
`
791+
792+
const testAccPostgresqlInstanceKMS string = `
793+
resource "tencentcloud_vpc" "vpc" {
794+
cidr_block = "10.0.0.0/16"
795+
name = "vpc"
796+
}
797+
798+
resource "tencentcloud_subnet" "subnet" {
799+
vpc_id = tencentcloud_vpc.vpc.id
800+
availability_zone = "ap-hongkong-2"
801+
name = "subnet"
802+
cidr_block = "10.0.1.0/24"
803+
}
804+
805+
resource "tencentcloud_postgresql_instance" "pg_kms" {
806+
name = "tf_postsql_kms"
807+
availability_zone = "ap-hongkong-2"
808+
vpc_id = tencentcloud_vpc.vpc.id
809+
subnet_id = tencentcloud_subnet.subnet.id
810+
engine_version = "17.4"
811+
root_password = "t1qaA2k1wgvfa3?ZZZ"
812+
charset = "UTF8"
813+
project_id = 0
814+
memory = 2
815+
storage = 20
816+
need_support_tde = 1
817+
kms_cluster_id = "cls-hsm-mwpd9cjm"
818+
kms_key_id = "4fc08855-24ee-11f0-b8ff-5254003580da"
819+
kms_region = "ap-hongkong"
820+
db_kernel_version = "v17.4_r1.3"
821+
}
822+
`

tencentcloud/services/postgresql/service_tencentcloud_postgresql.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (me *PostgresqlService) CreatePostgresqlInstance(
3737
storage int,
3838
username, password, charset string,
3939
dbNodeSet []*postgresql.DBNode,
40-
needSupportTde int, kmsKeyId, kmsRegion string, autoVoucher int, voucherIds []*string,
40+
needSupportTde int, kmsKeyId, kmsRegion string, kmsClusterId string, autoVoucher int, voucherIds []*string,
4141
) (instanceId string, errRet error) {
4242
logId := tccommon.GetLogId(ctx)
4343
request := postgresql.NewCreateInstancesRequest()
@@ -76,6 +76,9 @@ func (me *PostgresqlService) CreatePostgresqlInstance(
7676
if kmsRegion != "" {
7777
request.KMSRegion = helper.String(kmsRegion)
7878
}
79+
if kmsClusterId != "" {
80+
request.KMSClusterId = helper.String(kmsClusterId)
81+
}
7982
}
8083

8184
if len(securityGroups) > 0 {

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/client.go

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

0 commit comments

Comments
 (0)