File tree Expand file tree Collapse file tree 3 files changed +44
-5
lines changed
Expand file tree Collapse file tree 3 files changed +44
-5
lines changed Original file line number Diff line number Diff line change 1+ // The builder service account has enough permissions to build the code for the cloud function
2+
3+ locals {
4+ truncated_len = min (length (var. name ), 28 - length (" builder-" ))
5+ builder_name = " builder-${ substr (var. name , 0 , local. truncated_len )} "
6+ }
7+
8+ resource "google_service_account" "builder" {
9+ account_id = local. builder_name
10+ display_name = " Builder for pg db admin ${ var . name } "
11+ }
12+
13+ // Allow cloud builder to impersonate the builder service account
14+ resource "google_service_account_iam_member" "cloudbuild_impersonate_cf_build" {
15+ service_account_id = google_service_account. builder . name
16+ role = " roles/iam.serviceAccountUser"
17+ member = " serviceAccount:${ local . project_number } @cloudbuild.gserviceaccount.com"
18+ }
19+
20+ resource "google_project_iam_member" "builder_build" {
21+ project = local. project_id
22+ role = " roles/cloudbuild.builds.builder"
23+ member = " serviceAccount:${ google_service_account . builder . email } "
24+ }
25+
26+ resource "google_project_iam_member" "builder_publish_artifacts" {
27+ project = local. project_id
28+ role = " roles/artifactregistry.writer"
29+ member = " serviceAccount:${ google_service_account . builder . email } "
30+ }
31+
32+ resource "google_project_iam_member" "builder_code_access" {
33+ project = local. project_id
34+ role = " roles/storage.objectViewer"
35+ member = " serviceAccount:${ google_service_account . builder . email } "
36+ }
Original file line number Diff line number Diff line change @@ -12,8 +12,9 @@ resource "google_cloudfunctions2_function" "function" {
1212 labels = var. labels
1313
1414 build_config {
15- runtime = " go125"
16- entry_point = " pg-db-admin"
15+ runtime = " go125"
16+ entry_point = " pg-db-admin"
17+ service_account = google_service_account. builder . email
1718
1819 environment_variables = {
1920 " SOURCE_HASH" : filebase64sha256 (local. package_filename )
Original file line number Diff line number Diff line change 11data "google_client_config" "this" {}
2+ data "google_project" "this" {}
23
34locals {
4- project_id = data. google_client_config . this . project
5- region = data. google_client_config . this . region
6- region_prefix = lower (substr (local. region , 0 , 2 ))
5+ project_id = data. google_client_config . this . project
6+ project_number = data. google_project . this . number
7+ region = data. google_client_config . this . region
8+ region_prefix = lower (substr (local. region , 0 , 2 ))
79}
810
911resource "google_project_service" "run" {
You can’t perform that action at this time.
0 commit comments