Skip to content

Commit eec2567

Browse files
qz267Zheng Qin
andauthored
feat: per module requirements configs for bigquery (#405)
Co-authored-by: Zheng Qin <[email protected]>
1 parent 27bee96 commit eec2567

File tree

9 files changed

+185
-102
lines changed

9 files changed

+185
-102
lines changed

.terraform.lock

Whitespace-only changes.

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Make will use bash instead of sh
1919
SHELL := /usr/bin/env bash
2020

21-
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.23
21+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.25
2222
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2323
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2424
ENABLE_BPMETADATA := 1
@@ -82,7 +82,7 @@ docker_generate_docs:
8282
-e ENABLE_BPMETADATA \
8383
-v $(CURDIR):/workspace \
8484
$(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \
85-
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs -d'
85+
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs -d --per-module-requirements'
8686

8787
# Alias for backwards compatibility
8888
.PHONY: generate_docs

metadata.yaml

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -387,26 +387,13 @@ spec:
387387
- level: Project
388388
roles:
389389
- roles/bigquery.admin
390-
- roles/aiplatform.admin
391-
- roles/cloudfunctions.admin
392-
- roles/dataform.admin
393-
- roles/datalineage.viewer
394-
- roles/iam.serviceAccountAdmin
395-
- roles/iam.serviceAccountTokenCreator
396-
- roles/iam.serviceAccountUser
397-
- roles/logging.configWriter
398-
- roles/resourcemanager.projectIamAdmin
399-
- roles/run.invoker
400-
- roles/serviceusage.serviceUsageAdmin
401390
- roles/storage.admin
402-
- roles/workflows.admin
391+
- roles/cloudkms.cryptoKeyEncrypterDecrypter
403392
services:
404-
- cloudkms.googleapis.com
405-
- cloudresourcemanager.googleapis.com
406393
- bigquery.googleapis.com
407394
- bigquerystorage.googleapis.com
408-
- bigqueryconnection.googleapis.com
409-
- serviceusage.googleapis.com
395+
- cloudkms.googleapis.com
396+
- cloudresourcemanager.googleapis.com
410397
- iam.googleapis.com
411398
providerVersions:
412399
- source: hashicorp/google

modules/authorization/metadata.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,28 +93,28 @@ spec:
9393
roles:
9494
- level: Project
9595
roles:
96+
- roles/run.invoker
97+
- roles/storage.admin
98+
- roles/workflows.admin
9699
- roles/bigquery.admin
97100
- roles/aiplatform.admin
98101
- roles/cloudfunctions.admin
99102
- roles/dataform.admin
100-
- roles/datalineage.viewer
101-
- roles/iam.serviceAccountAdmin
102103
- roles/iam.serviceAccountTokenCreator
103104
- roles/iam.serviceAccountUser
104105
- roles/logging.configWriter
105-
- roles/resourcemanager.projectIamAdmin
106-
- roles/run.invoker
107106
- roles/serviceusage.serviceUsageAdmin
108-
- roles/storage.admin
109-
- roles/workflows.admin
107+
- roles/datalineage.viewer
108+
- roles/iam.serviceAccountAdmin
109+
- roles/resourcemanager.projectIamAdmin
110110
services:
111-
- cloudkms.googleapis.com
112-
- cloudresourcemanager.googleapis.com
113111
- bigquery.googleapis.com
114-
- bigquerystorage.googleapis.com
115112
- bigqueryconnection.googleapis.com
116-
- serviceusage.googleapis.com
113+
- bigquerystorage.googleapis.com
114+
- cloudkms.googleapis.com
115+
- cloudresourcemanager.googleapis.com
117116
- iam.googleapis.com
117+
- serviceusage.googleapis.com
118118
providerVersions:
119119
- source: hashicorp/google
120120
version: ">= 4.44, < 7"

modules/data_warehouse/metadata.yaml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,23 @@ spec:
3838
description: cost of this solution is $0.65
3939
url: https://cloud.google.com/products/calculator/#id=857776c6-49e8-4c6a-adc5-42a15b8fb67d
4040
cloudProducts:
41-
- productId: search_BIGQUERY_SECTION
42-
pageUrl: ""
43-
- productId: WORKFLOWS_SECTION
44-
pageUrl: ""
45-
- productId: STORAGE_SECTION
46-
pageUrl: ""
47-
- productId: ai-platform
48-
pageUrl: ""
49-
- productId: LOOKER_STUDIO_SECTION
50-
pageUrl: lookerstudio.google.com
51-
isExternal: true
52-
- productId: CLOUD_DMS_SECTION
53-
pageUrl: ""
54-
- productId: FUNCTIONS_SECTION
55-
pageUrl: ""
56-
- productId: DATAFORM_SECTION
57-
pageUrl: ""
41+
- productId: search_BIGQUERY_SECTION
42+
pageUrl: ""
43+
- productId: WORKFLOWS_SECTION
44+
pageUrl: ""
45+
- productId: STORAGE_SECTION
46+
pageUrl: ""
47+
- productId: ai-platform
48+
pageUrl: ""
49+
- productId: LOOKER_STUDIO_SECTION
50+
pageUrl: lookerstudio.google.com
51+
isExternal: true
52+
- productId: CLOUD_DMS_SECTION
53+
pageUrl: ""
54+
- productId: FUNCTIONS_SECTION
55+
pageUrl: ""
56+
- productId: DATAFORM_SECTION
57+
pageUrl: ""
5858
content:
5959
architecture:
6060
diagramUrl: www.gstatic.com/pantheon/images/solutions/data-warehouse-architecture_v6.svg
@@ -135,40 +135,40 @@ spec:
135135
roles:
136136
- level: Project
137137
roles:
138-
- roles/bigquery.admin
138+
- roles/storage.admin
139139
- roles/aiplatform.admin
140140
- roles/cloudfunctions.admin
141141
- roles/dataform.admin
142+
- roles/iam.serviceAccountUser
143+
- roles/serviceusage.serviceUsageAdmin
144+
- roles/workflows.admin
145+
- roles/bigquery.admin
142146
- roles/datalineage.viewer
143147
- roles/iam.serviceAccountAdmin
144148
- roles/iam.serviceAccountTokenCreator
145-
- roles/iam.serviceAccountUser
146149
- roles/logging.configWriter
147150
- roles/resourcemanager.projectIamAdmin
148151
- roles/run.invoker
149-
- roles/serviceusage.serviceUsageAdmin
150-
- roles/storage.admin
151-
- roles/workflows.admin
152152
services:
153-
- cloudkms.googleapis.com
154-
- cloudresourcemanager.googleapis.com
155153
- bigquery.googleapis.com
156-
- bigquerystorage.googleapis.com
157154
- bigqueryconnection.googleapis.com
158-
- serviceusage.googleapis.com
155+
- bigquerystorage.googleapis.com
156+
- cloudkms.googleapis.com
157+
- cloudresourcemanager.googleapis.com
159158
- iam.googleapis.com
159+
- serviceusage.googleapis.com
160160
providerVersions:
161161
- source: hashicorp/archive
162-
version: 10.1.1
162+
version: ">= 2.4.2"
163163
- source: hashicorp/google
164164
version: ">= 6.11, < 7"
165165
- source: hashicorp/google-beta
166166
version: ">= 6.11, < 7"
167167
- source: hashicorp/http
168168
version: ">= 2"
169169
- source: hashicorp/local
170-
version: ">=2.4"
170+
version: ">= 2.4"
171171
- source: hashicorp/random
172-
version: 10.1.1
172+
version: ">= 3.6.2"
173173
- source: hashicorp/time
174174
version: ">= 0.9.1"

modules/scheduled_queries/metadata.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,28 +59,28 @@ spec:
5959
roles:
6060
- level: Project
6161
roles:
62-
- roles/bigquery.admin
63-
- roles/aiplatform.admin
6462
- roles/cloudfunctions.admin
6563
- roles/dataform.admin
6664
- roles/datalineage.viewer
65+
- roles/resourcemanager.projectIamAdmin
66+
- roles/run.invoker
67+
- roles/workflows.admin
68+
- roles/bigquery.admin
69+
- roles/aiplatform.admin
6770
- roles/iam.serviceAccountAdmin
6871
- roles/iam.serviceAccountTokenCreator
6972
- roles/iam.serviceAccountUser
7073
- roles/logging.configWriter
71-
- roles/resourcemanager.projectIamAdmin
72-
- roles/run.invoker
7374
- roles/serviceusage.serviceUsageAdmin
7475
- roles/storage.admin
75-
- roles/workflows.admin
7676
services:
77-
- cloudkms.googleapis.com
78-
- cloudresourcemanager.googleapis.com
7977
- bigquery.googleapis.com
80-
- bigquerystorage.googleapis.com
8178
- bigqueryconnection.googleapis.com
82-
- serviceusage.googleapis.com
79+
- bigquerystorage.googleapis.com
80+
- cloudkms.googleapis.com
81+
- cloudresourcemanager.googleapis.com
8382
- iam.googleapis.com
83+
- serviceusage.googleapis.com
8484
providerVersions:
8585
- source: hashicorp/google
8686
version: ">= 4.0, < 7"

modules/udf/metadata.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,28 +63,28 @@ spec:
6363
roles:
6464
- level: Project
6565
roles:
66-
- roles/bigquery.admin
67-
- roles/aiplatform.admin
68-
- roles/cloudfunctions.admin
69-
- roles/dataform.admin
70-
- roles/datalineage.viewer
7166
- roles/iam.serviceAccountAdmin
7267
- roles/iam.serviceAccountTokenCreator
7368
- roles/iam.serviceAccountUser
74-
- roles/logging.configWriter
7569
- roles/resourcemanager.projectIamAdmin
76-
- roles/run.invoker
7770
- roles/serviceusage.serviceUsageAdmin
71+
- roles/bigquery.admin
72+
- roles/cloudfunctions.admin
73+
- roles/logging.configWriter
74+
- roles/run.invoker
7875
- roles/storage.admin
7976
- roles/workflows.admin
77+
- roles/aiplatform.admin
78+
- roles/dataform.admin
79+
- roles/datalineage.viewer
8080
services:
81-
- cloudkms.googleapis.com
82-
- cloudresourcemanager.googleapis.com
8381
- bigquery.googleapis.com
84-
- bigquerystorage.googleapis.com
8582
- bigqueryconnection.googleapis.com
86-
- serviceusage.googleapis.com
83+
- bigquerystorage.googleapis.com
84+
- cloudkms.googleapis.com
85+
- cloudresourcemanager.googleapis.com
8786
- iam.googleapis.com
87+
- serviceusage.googleapis.com
8888
providerVersions:
8989
- source: hashicorp/google
9090
version: ">= 3.53, < 7"

test/setup/iam.tf

Lines changed: 73 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,79 @@
1515
*/
1616

1717
locals {
18-
int_required_roles = [
19-
"roles/bigquery.admin",
20-
"roles/aiplatform.admin",
21-
"roles/cloudfunctions.admin",
22-
"roles/dataform.admin",
23-
"roles/datalineage.viewer",
24-
"roles/iam.serviceAccountAdmin",
25-
"roles/iam.serviceAccountTokenCreator",
26-
"roles/iam.serviceAccountUser",
27-
"roles/logging.configWriter",
28-
"roles/resourcemanager.projectIamAdmin",
29-
"roles/run.invoker",
30-
"roles/serviceusage.serviceUsageAdmin",
31-
"roles/storage.admin",
32-
"roles/workflows.admin"
33-
]
18+
per_module_roles = {
19+
root = [
20+
"roles/bigquery.admin",
21+
"roles/storage.admin",
22+
"roles/cloudkms.cryptoKeyEncrypterDecrypter",
23+
]
24+
authorization = [
25+
"roles/bigquery.admin",
26+
"roles/aiplatform.admin",
27+
"roles/cloudfunctions.admin",
28+
"roles/dataform.admin",
29+
"roles/datalineage.viewer",
30+
"roles/iam.serviceAccountAdmin",
31+
"roles/iam.serviceAccountTokenCreator",
32+
"roles/iam.serviceAccountUser",
33+
"roles/logging.configWriter",
34+
"roles/resourcemanager.projectIamAdmin",
35+
"roles/run.invoker",
36+
"roles/serviceusage.serviceUsageAdmin",
37+
"roles/storage.admin",
38+
"roles/workflows.admin"
39+
]
40+
data_warehouse = [
41+
"roles/bigquery.admin",
42+
"roles/aiplatform.admin",
43+
"roles/cloudfunctions.admin",
44+
"roles/dataform.admin",
45+
"roles/datalineage.viewer",
46+
"roles/iam.serviceAccountAdmin",
47+
"roles/iam.serviceAccountTokenCreator",
48+
"roles/iam.serviceAccountUser",
49+
"roles/logging.configWriter",
50+
"roles/resourcemanager.projectIamAdmin",
51+
"roles/run.invoker",
52+
"roles/serviceusage.serviceUsageAdmin",
53+
"roles/storage.admin",
54+
"roles/workflows.admin"
55+
]
56+
scheduled_queries = [
57+
"roles/bigquery.admin",
58+
"roles/aiplatform.admin",
59+
"roles/cloudfunctions.admin",
60+
"roles/dataform.admin",
61+
"roles/datalineage.viewer",
62+
"roles/iam.serviceAccountAdmin",
63+
"roles/iam.serviceAccountTokenCreator",
64+
"roles/iam.serviceAccountUser",
65+
"roles/logging.configWriter",
66+
"roles/resourcemanager.projectIamAdmin",
67+
"roles/run.invoker",
68+
"roles/serviceusage.serviceUsageAdmin",
69+
"roles/storage.admin",
70+
"roles/workflows.admin"
71+
]
72+
udf = [
73+
"roles/bigquery.admin",
74+
"roles/aiplatform.admin",
75+
"roles/cloudfunctions.admin",
76+
"roles/dataform.admin",
77+
"roles/datalineage.viewer",
78+
"roles/iam.serviceAccountAdmin",
79+
"roles/iam.serviceAccountTokenCreator",
80+
"roles/iam.serviceAccountUser",
81+
"roles/logging.configWriter",
82+
"roles/resourcemanager.projectIamAdmin",
83+
"roles/run.invoker",
84+
"roles/serviceusage.serviceUsageAdmin",
85+
"roles/storage.admin",
86+
"roles/workflows.admin"
87+
]
88+
}
89+
90+
int_required_roles = tolist(toset(flatten(values(local.per_module_roles))))
3491
}
3592

3693
resource "google_service_account" "int_test" {

0 commit comments

Comments
 (0)