@@ -296,38 +296,38 @@ func TestAccComposerEnvironment_withWebServerConfig(t *testing.T) {
296
296
}
297
297
298
298
func TestAccComposerEnvironment_withEncryptionConfig(t *testing.T) {
299
- t.Parallel()
299
+ t.Parallel()
300
300
301
- kms := BootstrapKMSKey(t )
301
+ kms := BootstrapKMSKeyInLocation(t, "us-central1" )
302
302
pid := getTestProjectFromEnv()
303
- envName := fmt.Sprintf("%s-%d", testComposerEnvironmentPrefix, randInt(t))
304
- network := fmt.Sprintf("%s-%d", testComposerNetworkPrefix, randInt(t))
305
- subnetwork := network + "-1"
306
-
307
- vcrTest(t, resource.TestCase{
308
- PreCheck: func() { testAccPreCheck(t) },
309
- Providers: testAccProviders,
310
- CheckDestroy: testAccComposerEnvironmentDestroyProducer(t),
311
- Steps: []resource.TestStep{
312
- {
313
- Config: testAccComposerEnvironment_encryptionCfg(pid, envName, kms.CryptoKey.Name, network, subnetwork),
314
- },
315
- {
316
- ResourceName: "google_composer_environment.test",
317
- ImportState: true,
318
- ImportStateVerify: true,
319
- },
320
- // This is a terrible clean-up step in order to get destroy to succeed,
321
- // due to dangling firewall rules left by the Composer Environment blocking network deletion.
322
- // TODO(emilyye ): Remove this check if firewall rules bug gets fixed by Composer.
323
- // {
324
- // PlanOnly: true,
325
- // ExpectNonEmptyPlan: false,
326
- // Config: testAccComposerEnvironment_encryptionCfgUpdated( envName, network, subnetwork),
327
- // Check: testAccCheckClearComposerEnvironmentFirewalls(t, network),
328
- // },
329
- },
330
- })
303
+ envName := fmt.Sprintf("%s-%d", testComposerEnvironmentPrefix, randInt(t))
304
+ network := fmt.Sprintf("%s-%d", testComposerNetworkPrefix, randInt(t))
305
+ subnetwork := network + "-1"
306
+
307
+ vcrTest(t, resource.TestCase{
308
+ PreCheck: func() { testAccPreCheck(t) },
309
+ Providers: testAccProviders,
310
+ CheckDestroy: testAccComposerEnvironmentDestroyProducer(t),
311
+ Steps: []resource.TestStep{
312
+ {
313
+ Config: testAccComposerEnvironment_encryptionCfg(pid, envName, kms.CryptoKey.Name, network, subnetwork),
314
+ },
315
+ {
316
+ ResourceName: "google_composer_environment.test",
317
+ ImportState: true,
318
+ ImportStateVerify: true,
319
+ },
320
+ // This is a terrible clean-up step in order to get destroy to succeed,
321
+ // due to dangling firewall rules left by the Composer Environment blocking network deletion.
322
+ // TODO(dzarmola ): Remove this check if firewall rules bug gets fixed by Composer.
323
+ {
324
+ PlanOnly: true,
325
+ ExpectNonEmptyPlan: false,
326
+ Config: testAccComposerEnvironment_encryptionCfg(pid, envName, kms.CryptoKey.Name , network, subnetwork),
327
+ Check: testAccCheckClearComposerEnvironmentFirewalls(t, network),
328
+ },
329
+ },
330
+ })
331
331
}
332
332
<% end -%>
333
333
// Checks behavior of node config, including dependencies on Compute resources.
@@ -771,78 +771,70 @@ resource "google_compute_subnetwork" "test" {
771
771
}
772
772
773
773
func testAccComposerEnvironment_encryptionCfg(pid, name, kmsKey, network, subnetwork string) string {
774
- return fmt.Sprintf(`
774
+ return fmt.Sprintf(`
775
775
data "google_project" "project" {
776
776
project_id = "%s"
777
777
}
778
-
779
778
resource "google_project_iam_member" "kms-project-binding1" {
780
779
project = data.google_project.project.project_id
781
780
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
782
781
member = "serviceAccount:service-${data.google_project.project.number}@cloudcomposer-accounts.iam.gserviceaccount.com"
783
782
}
784
-
785
783
resource "google_project_iam_member" "kms-project-binding2" {
786
784
project = data.google_project.project.project_id
787
785
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
788
786
member = "serviceAccount:service-${data.google_project.project.number}@compute-system.iam.gserviceaccount.com"
789
787
}
790
-
791
788
resource "google_project_iam_member" "kms-project-binding3" {
792
789
project = data.google_project.project.project_id
793
790
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
794
791
member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
795
792
}
796
-
797
793
resource "google_project_iam_member" "kms-project-binding4" {
798
794
project = data.google_project.project.project_id
799
795
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
800
796
member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com"
801
797
}
802
-
803
798
resource "google_project_iam_member" "kms-project-binding5" {
804
799
project = data.google_project.project.project_id
805
800
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
806
801
member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-pubsub.iam.gserviceaccount.com"
807
802
}
808
-
809
803
resource "google_kms_crypto_key_iam_member" "iam" {
810
- crypto_key_id = google_kms_crypto_key.crypto_key.id
804
+ crypto_key_id = "%s"
811
805
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
812
806
member = "serviceAccount:service-${data.google_project.project.number}@gs-project-accounts.iam.gserviceaccount.com"
813
807
}
814
-
815
808
resource "google_composer_environment" "test" {
816
- depends_on = [google_project_iam_member.kms-project-binding1]
817
-
818
- name = "%s"
819
- region = "us-central1"
820
- config {
821
- node_config {
822
- network = google_compute_network.test.self_link
823
- subnetwork = google_compute_subnetwork.test.self_link
824
- zone = "us-central1-a"
825
- }
826
- encryption_config {
827
- kms_key_name = "%s"
828
- }
829
- }
809
+ depends_on = [google_project_iam_member.kms-project-binding1, google_project_iam_member.kms-project-binding2,
810
+ google_project_iam_member.kms-project-binding3, google_project_iam_member.kms-project-binding4,
811
+ google_project_iam_member.kms-project-binding5, google_kms_crypto_key_iam_member.iam]
812
+ name = "%s"
813
+ region = "us-central1"
814
+ config {
815
+ node_config {
816
+ network = google_compute_network.test.self_link
817
+ subnetwork = google_compute_subnetwork.test.self_link
818
+ zone = "us-central1-a"
819
+ }
820
+ encryption_config {
821
+ kms_key_name = "%s"
822
+ }
823
+ }
830
824
}
831
-
832
825
// use a separate network to avoid conflicts with other tests running in parallel
833
826
// that use the default network/subnet
834
827
resource "google_compute_network" "test" {
835
- name = "%s"
836
- auto_create_subnetworks = false
828
+ name = "%s"
829
+ auto_create_subnetworks = false
837
830
}
838
-
839
831
resource "google_compute_subnetwork" "test" {
840
- name = "%s"
841
- ip_cidr_range = "10.2.0.0/16"
842
- region = "us-central1"
843
- network = google_compute_network.test.self_link
832
+ name = "%s"
833
+ ip_cidr_range = "10.2.0.0/16"
834
+ region = "us-central1"
835
+ network = google_compute_network.test.self_link
844
836
}
845
- `, name, kmsKey, network, subnetwork)
837
+ `, pid, kmsKey, name, kmsKey, network, subnetwork)
846
838
}
847
839
<% end -%>
848
840
func testAccComposerEnvironment_update(name, network, subnetwork string) string {
0 commit comments