1616
1717locals {
1818 repo_names = [" bu1-example-app" ]
19- cmd_prompt = " gcloud builds submit . --tag ${ local . confidential_space_image_tag } --project=${ local . cloudbuild_project_id } --service-account=projects/${ local . cloudbuild_project_id } /serviceAccounts/tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com --gcs-log-dir=gs://${ module . infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]} --worker-pool=${ local . cloud_build_private_worker_pool_id } || ( sleep 46 && gcloud builds submit . --tag ${ local . confidential_space_image_tag } --project=${ local . cloudbuild_project_id } --service-account=projects/${ local . cloudbuild_project_id } /serviceAccounts/tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com --gcs-log-dir=gs://${ module . infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]} --worker-pool=${ local . cloud_build_private_worker_pool_id } )"
19+ cmd_prompt = local . enable_cloudbuild_deploy ? " gcloud builds submit . --tag ${ local . confidential_space_image_tag } --project=${ local . cloudbuild_project_id } --service-account=projects/${ local . cloudbuild_project_id } /serviceAccounts/tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com --gcs-log-dir=gs://${ module . infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]} --worker-pool=${ local . cloud_build_private_worker_pool_id } || ( sleep 46 && gcloud builds submit . --tag ${ local . confidential_space_image_tag } --project=${ local . cloudbuild_project_id } --service-account=projects/${ local . cloudbuild_project_id } /serviceAccounts/tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com --gcs-log-dir=gs://${ module . infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]} --worker-pool=${ local . cloud_build_private_worker_pool_id } )" : " "
2020 confidential_space_image_version = " latest"
2121 confidential_space_image_tag = " ${ var . default_region } -docker.pkg.dev/${ local . cloudbuild_project_id } /tf-runners/confidential_space_image:${ local . confidential_space_image_version } "
2222
@@ -27,19 +27,24 @@ locals {
2727}
2828
2929resource "google_project_iam_member" "build_roles" {
30- for_each = toset (local. iam_roles_build )
31- project = local. cloudbuild_project_id
32- role = each. key
33- member = " serviceAccount:tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com"
30+ for_each = toset (local. enable_cloudbuild_deploy ? local. iam_roles_build : [])
31+
32+ project = local. cloudbuild_project_id
33+ role = each. key
34+ member = " serviceAccount:tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com"
3435}
3536
3637resource "google_project_iam_member" "bucket_admin_binding" {
38+ count = local. enable_cloudbuild_deploy ? 1 : 0
39+
3740 project = local. cloudbuild_project_id
3841 role = " roles/storage.objectAdmin"
3942 member = " serviceAccount:${ local . projects_terraform_sa } "
4043}
4144
4245resource "google_artifact_registry_repository_iam_member" "builder_on_artifact_registry" {
46+ count = local. enable_cloudbuild_deploy ? 1 : 0
47+
4348 project = local. cloudbuild_project_id
4449 location = var. default_region
4550 repository = " tf-runners"
@@ -48,24 +53,32 @@ resource "google_artifact_registry_repository_iam_member" "builder_on_artifact_r
4853}
4954
5055resource "google_project_iam_member" "cloudbuild_logging" {
56+ count = local. enable_cloudbuild_deploy ? 1 : 0
57+
5158 project = local. cloudbuild_project_id
5259 role = " roles/logging.logWriter"
5360 member = " serviceAccount:${ module . app_infra_cloudbuild_project [0 ]. sa } "
5461}
5562
5663resource "google_project_iam_member" "workload_identity_admin" {
64+ count = local. enable_cloudbuild_deploy ? 1 : 0
65+
5766 project = module. app_infra_cloudbuild_project [0 ]. project_id
5867 role = " roles/iam.workloadIdentityPoolAdmin"
5968 member = " serviceAccount:${ module . app_infra_cloudbuild_project [0 ]. sa } "
6069}
6170
6271resource "google_storage_bucket_iam_member" "cloudbuild_storage_read" {
72+ count = local. enable_cloudbuild_deploy ? 1 : 0
73+
6374 bucket = module. infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]
6475 role = " roles/storage.admin"
6576 member = " serviceAccount:${ module . app_infra_cloudbuild_project [0 ]. sa } "
6677}
6778
6879resource "google_storage_bucket_iam_member" "cloudbuild_sa_storage_admin" {
80+ count = local. enable_cloudbuild_deploy ? 1 : 0
81+
6982 bucket = module. infra_pipelines [0 ]. log_buckets [" bu1-example-app" ]
7083 role = " roles/storage.admin"
7184 member = " serviceAccount:tf-cb-builder-sa@${ local . cloudbuild_project_id } .iam.gserviceaccount.com"
@@ -131,8 +144,10 @@ resource "time_sleep" "wait_iam_propagation" {
131144}
132145
133146module "build_confidential_space_image" {
134- source = " terraform-google-modules/gcloud/google"
135- version = " ~> 4.0"
147+ source = " terraform-google-modules/gcloud/google"
148+ version = " ~> 4.0"
149+ count = local. enable_cloudbuild_deploy ? 1 : 0
150+
136151 upgrade = false
137152 module_depends_on = [time_sleep . wait_iam_propagation ]
138153
@@ -155,5 +170,3 @@ module "build_confidential_space_image" {
155170resource "null_resource" "jenkins_cicd" {
156171 count = ! local. enable_cloudbuild_deploy ? 1 : 0
157172}
158-
159-
0 commit comments