@@ -539,7 +539,7 @@ func TestAccSpannerDatabase_cmek(t *testing.T) {
539
539
ResourceName: "google_spanner_database.database",
540
540
ImportState: true,
541
541
ImportStateVerify: true,
542
- ImportStateVerifyIgnore: []string{"ddl", "deletion_protection"},
542
+ ImportStateVerifyIgnore: []string{"ddl", "deletion_protection", "encryption_config.0.kms_key_names" },
543
543
},
544
544
},
545
545
})
@@ -605,4 +605,74 @@ resource "google_project_service_identity" "ck_sa" {
605
605
606
606
`, context)
607
607
}
608
+
609
+ func TestAccSpannerDatabase_mrcmek(t *testing.T) {
610
+ acctest.SkipIfVcr(t)
611
+ t.Parallel()
612
+
613
+ kms1 := acctest.BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", "us-central1", "tf-mr-cmek-test-key-us-central1")
614
+ kms2 := acctest.BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", "us-east1", "tf-mr-cmek-test-key-us-east1")
615
+ kms3 := acctest.BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", "us-east4", "tf-mr-cmek-test-key-us-east4")
616
+ context := map[string]interface{}{
617
+ "random_suffix": acctest.RandString(t, 10),
618
+ "key_ring1": kms1.KeyRing.Name,
619
+ "key_name1": kms1.CryptoKey.Name,
620
+ "key_ring2": kms2.KeyRing.Name,
621
+ "key_name2": kms2.CryptoKey.Name,
622
+ "key_ring3": kms3.KeyRing.Name,
623
+ "key_name3": kms3.CryptoKey.Name,
624
+ }
625
+
626
+ acctest.VcrTest(t, resource.TestCase{
627
+ PreCheck: func() { acctest.AccTestPreCheck(t) },
628
+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderBetaFactories(t),
629
+ CheckDestroy: testAccCheckSpannerDatabaseDestroyProducer(t),
630
+ Steps: []resource.TestStep{
631
+ {
632
+ Config: testAccSpannerDatabase_mrcmek(context),
633
+ },
634
+ {
635
+ ResourceName: "google_spanner_database.database",
636
+ ImportState: true,
637
+ ImportStateVerify: true,
638
+ ImportStateVerifyIgnore: []string{"ddl", "deletion_protection"},
639
+ },
640
+ },
641
+ })
642
+ }
643
+
644
+ func testAccSpannerDatabase_mrcmek(context map[string]interface{}) string {
645
+ return acctest.Nprintf(`
646
+ resource "google_spanner_instance" "main" {
647
+ provider = google-beta
648
+ config = "nam3"
649
+ display_name = "main-instance1"
650
+ num_nodes = 1
651
+ }
652
+
653
+ resource "google_spanner_database" "database" {
654
+ provider = google-beta
655
+ instance = google_spanner_instance.main.name
656
+ name = "tf-test-mrcmek-db%{random_suffix}"
657
+ ddl = [
658
+ "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
659
+ "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
660
+ ]
661
+
662
+ encryption_config {
663
+ kms_key_names = [
664
+ "%{key_name1}",
665
+ "%{key_name2}",
666
+ "%{key_name3}",
667
+ ]
668
+ }
669
+
670
+ deletion_protection = false
671
+
672
+ }
673
+
674
+
675
+ `, context)
676
+ }
677
+
608
678
{{- end }}
0 commit comments