@@ -1027,6 +1027,39 @@ func TestAccSqlDatabaseInstance_insights(t *testing.T) {
10271027 })
10281028}
10291029
1030+ func TestAccSqlDatabaseInstance_encryptionKey (t * testing.T ) {
1031+ t .Parallel ()
1032+
1033+ context := map [string ]interface {}{
1034+ "key_name" : "tf-test-key-" + randString (t , 10 ),
1035+ "instance_name" : "tf-test-sql-" + randString (t , 10 ),
1036+ }
1037+
1038+ vcrTest (t , resource.TestCase {
1039+ PreCheck : func () { testAccPreCheck (t ) },
1040+ Providers : testAccProvidersOiCS ,
1041+ CheckDestroy : testAccSqlDatabaseInstanceDestroyProducer (t ),
1042+ Steps : []resource.TestStep {
1043+ {
1044+ Config : Nprintf (
1045+ testGoogleSqlDatabaseInstance_encryptionKey , context ),
1046+ },
1047+ {
1048+ ResourceName : "google_sql_database_instance.replica" ,
1049+ ImportState : true ,
1050+ ImportStateVerify : true ,
1051+ ImportStateVerifyIgnore : []string {"deletion_protection" },
1052+ },
1053+ {
1054+ ResourceName : "google_sql_database_instance.master" ,
1055+ ImportState : true ,
1056+ ImportStateVerify : true ,
1057+ ImportStateVerifyIgnore : []string {"deletion_protection" },
1058+ },
1059+ },
1060+ })
1061+ }
1062+
10301063var testGoogleSqlDatabaseInstance_basic2 = `
10311064resource "google_sql_database_instance" "instance" {
10321065 region = "us-central1"
@@ -1662,6 +1695,70 @@ resource "google_sql_database_instance" "instance" {
16621695 }
16631696}
16641697`
1698+ var testGoogleSqlDatabaseInstance_encryptionKey = `
1699+ resource "google_project_service_identity" "gcp_sa_cloud_sql" {
1700+ provider = google-beta
1701+ service = "sqladmin.googleapis.com"
1702+ }
1703+
1704+ resource "google_kms_key_ring" "keyring" {
1705+ provider = google-beta
1706+
1707+ name = "%{key_name}"
1708+ location = "us-central1"
1709+ }
1710+
1711+ resource "google_kms_crypto_key" "key" {
1712+ provider = google-beta
1713+
1714+ name = "%{key_name}"
1715+ key_ring = google_kms_key_ring.keyring.id
1716+ }
1717+
1718+ resource "google_kms_crypto_key_iam_binding" "crypto_key" {
1719+ provider = google-beta
1720+ crypto_key_id = google_kms_crypto_key.key.id
1721+ role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
1722+
1723+ members = [
1724+ "serviceAccount:${google_project_service_identity.gcp_sa_cloud_sql.email}",
1725+ ]
1726+ }
1727+
1728+ resource "google_sql_database_instance" "master" {
1729+ provider = google-beta
1730+ name = "%{instance_name}-master"
1731+ database_version = "MYSQL_5_7"
1732+ region = "us-central1"
1733+ deletion_protection = false
1734+ encryption_key_name = google_kms_crypto_key.key.id
1735+
1736+ settings {
1737+ tier = "db-n1-standard-1"
1738+
1739+ backup_configuration {
1740+ enabled = true
1741+ start_time = "00:00"
1742+ binary_log_enabled = true
1743+ }
1744+ }
1745+ }
1746+
1747+ resource "google_sql_database_instance" "replica" {
1748+ provider = google-beta
1749+ name = "%{instance_name}-replica"
1750+ database_version = "MYSQL_5_7"
1751+ region = "us-central1"
1752+ master_instance_name = google_sql_database_instance.master.name
1753+ deletion_protection = false
1754+
1755+ settings {
1756+ tier = "db-n1-standard-1"
1757+ }
1758+
1759+ depends_on = [google_sql_database_instance.master]
1760+ }
1761+ `
16651762
16661763func testGoogleSqlDatabaseInstance_PointInTimeRecoveryEnabled (masterID int , pointInTimeRecoveryEnabled bool ) string {
16671764 return fmt .Sprintf (`
0 commit comments