|
| 1 | + |
| 2 | +// ============== TERRAFOM SCRIPT - CLOUD BUILD WORKER POOL PERMISSIONS ============== |
| 3 | +// This is an optional terraform script |
| 4 | +// - Assigns workerPoolUser to Cloud Build Service Agent and Service Account |
| 5 | +// - Allows the use of worker pool in separate project |
| 6 | +// - Admin projects will be able to build images using workerpool |
| 7 | +// ****************** |
| 8 | +// ** REQUIREMENTS ** |
| 9 | +// ****************** |
| 10 | +// To run this script in AppFactory Pipeline: |
| 11 | +// - Application Factory Pipeline SA must have `roles/resourcemanager.projectIamAdmin` on the workerpool project |
| 12 | + |
| 13 | +locals { |
| 14 | + projects_re = "projects/([^/]+)/" |
| 15 | + worker_pool_project = regex(local.projects_re, var.worker_pool_id)[0] |
| 16 | +} |
| 17 | + |
| 18 | +data "google_project" "admin_projects" { |
| 19 | + project_id = local.admin_project_id |
| 20 | +} |
| 21 | + |
| 22 | +resource "google_project_iam_member" "assign_permissions" { |
| 23 | + project = local.worker_pool_project |
| 24 | + role = "roles/cloudbuild.workerPoolUser" |
| 25 | + member = "serviceAccount:service-${data.google_project.admin_projects.number}@gcp-sa-cloudbuild.iam.gserviceaccount.com" |
| 26 | +} |
| 27 | + |
| 28 | +resource "google_project_iam_member" "assign_permissions_service_agent" { |
| 29 | + project = local.worker_pool_project |
| 30 | + role = "roles/cloudbuild.workerPoolUser" |
| 31 | + member = "serviceAccount:${data.google_project.admin_projects.number}@cloudbuild.gserviceaccount.com" |
| 32 | +} |
| 33 | + |
| 34 | +resource "google_project_iam_member" "sd_viewer" { |
| 35 | + project = local.worker_pool_project |
| 36 | + role = "roles/servicedirectory.viewer" |
| 37 | + member = "serviceAccount:service-${data.google_project.admin_projects.number}@gcp-sa-cloudbuild.iam.gserviceaccount.com" |
| 38 | +} |
| 39 | + |
| 40 | +resource "google_project_iam_member" "access_network" { |
| 41 | + project = local.worker_pool_project |
| 42 | + role = "roles/servicedirectory.pscAuthorizedService" |
| 43 | + member = "serviceAccount:service-${data.google_project.admin_projects.number}@gcp-sa-cloudbuild.iam.gserviceaccount.com" |
| 44 | +} |
0 commit comments