@@ -15,6 +15,27 @@ import (
15
15
cloudkms "google.golang.org/api/cloudkms/v1"
16
16
)
17
17
18
+ func bootstrapGkeTagManagerServiceAgents(t *testing.T) {
19
+ acctest.BootstrapIamMembers(t, []acctest.IamMember{
20
+ {
21
+ Member: "serviceAccount:service-{project_number}@container-engine-robot.iam.gserviceaccount.com",
22
+ Role: "roles/resourcemanager.tagAdmin",
23
+ },
24
+ {
25
+ Member: "serviceAccount:service-{project_number}@container-engine-robot.iam.gserviceaccount.com",
26
+ Role: "roles/resourcemanager.tagHoldAdmin",
27
+ },
28
+ {
29
+ Member: "serviceAccount:service-{project_number}@container-engine-robot.iam.gserviceaccount.com",
30
+ Role: "roles/resourcemanager.tagUser",
31
+ },
32
+ {
33
+ Member: "serviceAccount:{project_number}@cloudservices.gserviceaccount.com",
34
+ Role: "roles/resourcemanager.tagUser",
35
+ },
36
+ })
37
+ }
38
+
18
39
func TestAccContainerCluster_basic(t *testing.T) {
19
40
t.Parallel()
20
41
@@ -68,11 +89,8 @@ func TestAccContainerCluster_resourceManagerTags(t *testing.T) {
68
89
69
90
networkName := acctest.BootstrapSharedTestNetwork(t, "gke-cluster")
70
91
subnetworkName := acctest.BootstrapSubnet(t, "gke-cluster", networkName)
71
-
72
- if acctest.BootstrapPSARole(t, "service-", "container-engine-robot", "roles/resourcemanager.tagHoldAdmin") {
73
- t.Fatal("Stopping the test because a role was added to the policy.")
74
- }
75
-
92
+
93
+ bootstrapGkeTagManagerServiceAgents(t)
76
94
acctest.VcrTest(t, resource.TestCase{
77
95
PreCheck: func() { acctest.AccTestPreCheck(t) },
78
96
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
@@ -3642,6 +3660,8 @@ func TestAccContainerCluster_withAutopilotResourceManagerTags(t *testing.T) {
3642
3660
clusterNetName := fmt.Sprintf("tf-test-container-net-%s", randomSuffix)
3643
3661
clusterSubnetName := fmt.Sprintf("tf-test-container-subnet-%s", randomSuffix)
3644
3662
3663
+ bootstrapGkeTagManagerServiceAgents(t)
3664
+
3645
3665
acctest.VcrTest(t, resource.TestCase{
3646
3666
PreCheck: func() { acctest.AccTestPreCheck(t) },
3647
3667
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
@@ -3666,6 +3686,10 @@ func TestAccContainerCluster_withAutopilotResourceManagerTags(t *testing.T) {
3666
3686
{
3667
3687
Config: testAccContainerCluster_withAutopilotResourceManagerTagsUpdate1(pid, clusterName, clusterNetName, clusterSubnetName, randomSuffix),
3668
3688
Check: resource.ComposeTestCheckFunc(
3689
+ // Small sleep, to avoid case where cluster is ready but underlying GCE
3690
+ // resources apparently aren't.
3691
+ // b/390456348
3692
+ acctest.SleepInSecondsForTest(30),
3669
3693
resource.TestCheckResourceAttrSet("google_container_cluster.with_autopilot", "node_pool_auto_config.0.resource_manager_tags.%"),
3670
3694
),
3671
3695
},
@@ -11769,38 +11793,6 @@ data "google_project" "project" {
11769
11793
project_id = "%[1]s"
11770
11794
}
11771
11795
11772
- resource "google_project_iam_member" "tagHoldAdmin" {
11773
- project = "%[1]s"
11774
- role = "roles/resourcemanager.tagHoldAdmin"
11775
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
11776
- }
11777
-
11778
- resource "google_project_iam_member" "tagUser1" {
11779
- project = "%[1]s"
11780
- role = "roles/resourcemanager.tagUser"
11781
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
11782
-
11783
- depends_on = [google_project_iam_member.tagHoldAdmin]
11784
- }
11785
-
11786
- resource "google_project_iam_member" "tagUser2" {
11787
- project = "%[1]s"
11788
- role = "roles/resourcemanager.tagUser"
11789
- member = "serviceAccount:${data.google_project.project.number}@cloudservices.gserviceaccount.com"
11790
-
11791
- depends_on = [google_project_iam_member.tagHoldAdmin]
11792
- }
11793
-
11794
- resource "time_sleep" "wait_120_seconds" {
11795
- create_duration = "120s"
11796
-
11797
- depends_on = [
11798
- google_project_iam_member.tagHoldAdmin,
11799
- google_project_iam_member.tagUser1,
11800
- google_project_iam_member.tagUser2,
11801
- ]
11802
- }
11803
-
11804
11796
resource "google_tags_tag_key" "key1" {
11805
11797
parent = data.google_project.project.id
11806
11798
short_name = "foobarbaz-%[2]s"
@@ -11855,8 +11847,6 @@ resource "google_container_cluster" "primary" {
11855
11847
deletion_protection = false
11856
11848
network = "%[4]s"
11857
11849
subnetwork = "%[5]s"
11858
-
11859
- depends_on = [time_sleep.wait_120_seconds]
11860
11850
}
11861
11851
`, projectID, randomSuffix, clusterName, networkName, subnetworkName, tagResourceNumber)
11862
11852
}
@@ -11867,38 +11857,6 @@ data "google_project" "project" {
11867
11857
project_id = "%[1]s"
11868
11858
}
11869
11859
11870
- resource "google_project_iam_member" "tagHoldAdmin" {
11871
- project = "%[1]s"
11872
- role = "roles/resourcemanager.tagHoldAdmin"
11873
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
11874
- }
11875
-
11876
- resource "google_project_iam_member" "tagUser1" {
11877
- project = "%[1]s"
11878
- role = "roles/resourcemanager.tagUser"
11879
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
11880
-
11881
- depends_on = [google_project_iam_member.tagHoldAdmin]
11882
- }
11883
-
11884
- resource "google_project_iam_member" "tagUser2" {
11885
- project = "%[1]s"
11886
- role = "roles/resourcemanager.tagUser"
11887
- member = "serviceAccount:${data.google_project.project.number}@cloudservices.gserviceaccount.com"
11888
-
11889
- depends_on = [google_project_iam_member.tagHoldAdmin]
11890
- }
11891
-
11892
- resource "time_sleep" "wait_120_seconds" {
11893
- create_duration = "120s"
11894
-
11895
- depends_on = [
11896
- google_project_iam_member.tagHoldAdmin,
11897
- google_project_iam_member.tagUser1,
11898
- google_project_iam_member.tagUser2,
11899
- ]
11900
- }
11901
-
11902
11860
resource "google_tags_tag_key" "key1" {
11903
11861
parent = "projects/%[1]s"
11904
11862
short_name = "foobarbaz1-%[2]s"
@@ -11993,8 +11951,6 @@ resource "google_container_cluster" "with_autopilot" {
11993
11951
vertical_pod_autoscaling {
11994
11952
enabled = true
11995
11953
}
11996
-
11997
- depends_on = [time_sleep.wait_120_seconds]
11998
11954
}
11999
11955
`, projectID, randomSuffix, clusterName, networkName, subnetworkName)
12000
11956
}
@@ -12005,38 +11961,6 @@ data "google_project" "project" {
12005
11961
project_id = "%[1]s"
12006
11962
}
12007
11963
12008
- resource "google_project_iam_member" "tagHoldAdmin" {
12009
- project = "%[1]s"
12010
- role = "roles/resourcemanager.tagHoldAdmin"
12011
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
12012
- }
12013
-
12014
- resource "google_project_iam_member" "tagUser1" {
12015
- project = "%[1]s"
12016
- role = "roles/resourcemanager.tagUser"
12017
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
12018
-
12019
- depends_on = [google_project_iam_member.tagHoldAdmin]
12020
- }
12021
-
12022
- resource "google_project_iam_member" "tagUser2" {
12023
- project = "%[1]s"
12024
- role = "roles/resourcemanager.tagUser"
12025
- member = "serviceAccount:${data.google_project.project.number}@cloudservices.gserviceaccount.com"
12026
-
12027
- depends_on = [google_project_iam_member.tagHoldAdmin]
12028
- }
12029
-
12030
- resource "time_sleep" "wait_120_seconds" {
12031
- create_duration = "120s"
12032
-
12033
- depends_on = [
12034
- google_project_iam_member.tagHoldAdmin,
12035
- google_project_iam_member.tagUser1,
12036
- google_project_iam_member.tagUser2,
12037
- ]
12038
- }
12039
-
12040
11964
resource "google_tags_tag_key" "key1" {
12041
11965
parent = "projects/%[1]s"
12042
11966
short_name = "foobarbaz1-%[2]s"
@@ -12132,8 +12056,6 @@ resource "google_container_cluster" "with_autopilot" {
12132
12056
vertical_pod_autoscaling {
12133
12057
enabled = true
12134
12058
}
12135
-
12136
- depends_on = [time_sleep.wait_120_seconds]
12137
12059
}
12138
12060
`, projectID, randomSuffix, clusterName, networkName, subnetworkName)
12139
12061
}
@@ -12144,38 +12066,6 @@ data "google_project" "project" {
12144
12066
project_id = "%[1]s"
12145
12067
}
12146
12068
12147
- resource "google_project_iam_member" "tagHoldAdmin" {
12148
- project = "%[1]s"
12149
- role = "roles/resourcemanager.tagHoldAdmin"
12150
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
12151
- }
12152
-
12153
- resource "google_project_iam_member" "tagUser1" {
12154
- project = "%[1]s"
12155
- role = "roles/resourcemanager.tagUser"
12156
- member = "serviceAccount:service-${data.google_project.project.number}@container-engine-robot.iam.gserviceaccount.com"
12157
-
12158
- depends_on = [google_project_iam_member.tagHoldAdmin]
12159
- }
12160
-
12161
- resource "google_project_iam_member" "tagUser2" {
12162
- project = "%[1]s"
12163
- role = "roles/resourcemanager.tagUser"
12164
- member = "serviceAccount:${data.google_project.project.number}@cloudservices.gserviceaccount.com"
12165
-
12166
- depends_on = [google_project_iam_member.tagHoldAdmin]
12167
- }
12168
-
12169
- resource "time_sleep" "wait_120_seconds" {
12170
- create_duration = "120s"
12171
-
12172
- depends_on = [
12173
- google_project_iam_member.tagHoldAdmin,
12174
- google_project_iam_member.tagUser1,
12175
- google_project_iam_member.tagUser2,
12176
- ]
12177
- }
12178
-
12179
12069
resource "google_tags_tag_key" "key1" {
12180
12070
parent = "projects/%[1]s"
12181
12071
short_name = "foobarbaz1-%[2]s"
@@ -12264,8 +12154,6 @@ resource "google_container_cluster" "with_autopilot" {
12264
12154
vertical_pod_autoscaling {
12265
12155
enabled = true
12266
12156
}
12267
-
12268
- depends_on = [time_sleep.wait_120_seconds]
12269
12157
}
12270
12158
`, projectID, randomSuffix, clusterName, networkName, subnetworkName)
12271
12159
}
0 commit comments