@@ -678,13 +678,14 @@ func TestAccComposerEnvironment_customBucket(t *testing.T) {
678678 envName := fmt .Sprintf ("%s-%d" , testComposerEnvironmentPrefix , acctest .RandInt (t ))
679679 network := fmt .Sprintf ("%s-%d" , testComposerNetworkPrefix , acctest .RandInt (t ))
680680 subnetwork := network + "-1"
681+ serviceAccount := fmt .Sprintf ("tf-test-%d" , acctest .RandInt (t ))
681682 acctest .VcrTest (t , resource.TestCase {
682683 PreCheck : func () { acctest .AccTestPreCheck (t ) },
683684 ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories (t ),
684685 CheckDestroy : testAccComposerEnvironmentDestroyProducer (t ),
685686 Steps : []resource.TestStep {
686687 {
687- Config : testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork ),
688+ Config : testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork , serviceAccount ),
688689 },
689690 {
690691 ResourceName : "google_composer_environment.test" ,
@@ -697,7 +698,7 @@ func TestAccComposerEnvironment_customBucket(t *testing.T) {
697698 {
698699 PlanOnly : true ,
699700 ExpectNonEmptyPlan : false ,
700- Config : testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork ),
701+ Config : testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork , serviceAccount ),
701702 Check : testAccCheckClearComposerEnvironmentFirewalls (t , network ),
702703 },
703704 },
@@ -1139,8 +1140,21 @@ func TestAccComposerEnvironmentComposer3_usesUnsupportedField_expectError(t *tes
11391140 })
11401141}
11411142
1142- func testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork string ) string {
1143+ func testAccComposerEnvironment_customBucket (bucketName , envName , network , subnetwork , serviceAccount string ) string {
11431144 return fmt .Sprintf (`
1145+ data "google_project" "project" {}
1146+
1147+ resource "google_service_account" "test" {
1148+ account_id = "%s"
1149+ display_name = "Test Service Account for Composer Environment"
1150+ }
1151+
1152+ resource "google_project_iam_member" "composer-worker" {
1153+ project = data.google_project.project.project_id
1154+ role = "roles/composer.worker"
1155+ member = "serviceAccount:${google_service_account.test.email}"
1156+ }
1157+
11441158resource "google_storage_bucket" "test" {
11451159 name = "%s"
11461160 location = "us-central1"
@@ -1154,6 +1168,7 @@ resource "google_composer_environment" "test" {
11541168 node_config {
11551169 network = google_compute_network.test.self_link
11561170 subnetwork = google_compute_subnetwork.test.self_link
1171+ service_account = google_service_account.test.name
11571172 ip_allocation_policy {
11581173 cluster_ipv4_cidr_block = "10.0.0.0/16"
11591174 }
@@ -1165,6 +1180,7 @@ resource "google_composer_environment" "test" {
11651180 storage_config {
11661181 bucket = google_storage_bucket.test.name
11671182 }
1183+ depends_on = [google_project_iam_member.composer-worker]
11681184}
11691185
11701186// use a separate network to avoid conflicts with other tests running in parallel
@@ -1180,7 +1196,7 @@ resource "google_compute_subnetwork" "test" {
11801196 region = "us-central1"
11811197 network = google_compute_network.test.self_link
11821198}
1183- ` , bucketName , envName , network , subnetwork )
1199+ ` , serviceAccount , bucketName , envName , network , subnetwork )
11841200}
11851201
11861202func testAccComposerEnvironment_customBucketWithUrl (bucketName , envName , network , subnetwork , serviceAccount string ) string {
@@ -1316,7 +1332,6 @@ resource "google_kms_crypto_key_iam_member" "iam" {
13161332 member = "serviceAccount:service-${data.google_project.project.number}@gs-project-accounts.iam.gserviceaccount.com"
13171333}
13181334resource "google_composer_environment" "test" {
1319- depends_on = [google_kms_crypto_key_iam_member.iam]
13201335 name = "%s"
13211336 region = "us-central1"
13221337 config {
@@ -1334,7 +1349,7 @@ resource "google_composer_environment" "test" {
13341349 kms_key_name = "%s"
13351350 }
13361351 }
1337- depends_on = [google_project_iam_member.composer-worker]
1352+ depends_on = [google_project_iam_member.composer-worker, google_kms_crypto_key_iam_member.iam ]
13381353}
13391354// use a separate network to avoid conflicts with other tests running in parallel
13401355// that use the default network/subnet
0 commit comments