Skip to content

Commit ee20c52

Browse files
committed
Adding delay and creating a iam_member for service agent
1 parent 4dfc1ba commit ee20c52

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

examples/gcs_event_arc_trigger_workflow/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ resource "google_project_iam_binding" "project" {
5555
}
5656

5757
resource "random_string" "string" {
58-
length = 8
58+
length = 4
5959
lower = true
6060
upper = false
6161
special = false
@@ -66,7 +66,7 @@ module "service_account" {
6666
source = "terraform-google-modules/service-accounts/google"
6767
version = "~> 4.1.1"
6868
project_id = var.project_id
69-
prefix = "gcs-eventarc-workflow"
69+
prefix = "eventarc-wf-${random_string.string.result}"
7070
names = ["simple"]
7171
project_roles = ["${var.project_id}=>roles/workflows.invoker",
7272
"${var.project_id}=>roles/eventarc.serviceAgent",

examples/pubsub_event_arc_trigger_workflow/main.tf

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,19 @@ resource "google_pubsub_topic" "event_arc" {
2222
project = var.project_id
2323
}
2424

25+
resource "random_string" "string" {
26+
length = 4
27+
lower = true
28+
upper = false
29+
special = false
30+
numeric = false
31+
}
32+
2533
module "service_account" {
2634
source = "terraform-google-modules/service-accounts/google"
2735
version = "~> 4.1.1"
2836
project_id = var.project_id
29-
prefix = "eventarc-workflow"
37+
prefix = "eventarc-wf-${random_string.string.result}"
3038
names = ["simple"]
3139
project_roles = ["${var.project_id}=>roles/workflows.invoker"]
3240
}

test/setup/main.tf

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,42 @@ locals {
4141
}
4242

4343
module "project" {
44-
source = "terraform-google-modules/project-factory/google"
45-
version = "~> 13.0"
46-
44+
source = "terraform-google-modules/project-factory/google"
45+
version = "~> 13.0"
4746
name = "ci-cloud-workflow"
4847
random_project_id = "true"
4948
org_id = var.org_id
5049
folder_id = var.folder_id
5150
billing_account = var.billing_account
5251
default_service_account = "keep"
52+
activate_apis = flatten(values(local.per_module_services))
53+
}
54+
55+
resource "google_project_service_identity" "eventarc_sa" {
56+
provider = google-beta
57+
project = module.project.project_id
58+
service = "eventarc.googleapis.com"
59+
60+
depends_on = [module.project]
61+
}
62+
63+
# Wait after service identity is created to allow for propagation.
64+
resource "time_sleep" "wait_after_eventarc_sa_creation" {
65+
create_duration = "60s"
5366

54-
activate_apis = flatten(values(local.per_module_services))
67+
depends_on = [google_project_service_identity.eventarc_sa]
5568
}
5669

70+
resource "google_project_iam_member" "eventarc_service_agent" {
71+
project = module.project.project_id
72+
role = "roles/eventarc.serviceAgent"
73+
member = "serviceAccount:${google_project_service_identity.eventarc_sa.email}"
74+
75+
depends_on = [time_sleep.wait_after_eventarc_sa_creation]
76+
}
5777

5878
# Wait after APIs are enabled to give time for them to spin up
5979
resource "time_sleep" "wait_after_apis" {
60-
create_duration = "120s"
80+
create_duration = "240s"
6181
depends_on = [module.project]
6282
}

0 commit comments

Comments
 (0)