@@ -41,22 +41,42 @@ locals {
4141}
4242
4343module "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
5979resource "time_sleep" "wait_after_apis" {
60- create_duration = " 120s "
80+ create_duration = " 240s "
6181 depends_on = [module . project ]
6282}
0 commit comments