Skip to content

Commit 83d29c4

Browse files
qz267Zheng Qin
authored andcommitted
feat: per module requirements configs for lb-http (terraform-google-modules#520)
Co-authored-by: Zheng Qin <[email protected]>
1 parent f26db6d commit 83d29c4

File tree

8 files changed

+126
-82
lines changed

8 files changed

+126
-82
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ docker_generate_docs:
7979
-e ENABLE_BPMETADATA=1 \
8080
-v "$(CURDIR)":/workspace \
8181
$(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \
82-
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs'
82+
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs --per-module-requirements'
8383

8484
## Generate files from autogen
8585
.PHONY: docker_generate_modules

metadata.yaml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -338,25 +338,21 @@ spec:
338338
roles:
339339
- level: Project
340340
roles:
341-
- roles/compute.xpnAdmin
342-
- level: Project
343-
roles:
344-
- roles/storage.admin
345-
- roles/compute.admin
346341
- roles/run.admin
347342
- roles/iam.serviceAccountUser
348343
- roles/certificatemanager.owner
349344
- roles/vpcaccess.admin
350345
- roles/iam.serviceAccountAdmin
351-
- roles/iap.admin
346+
- roles/storage.admin
347+
- roles/compute.admin
352348
services:
349+
- certificatemanager.googleapis.com
353350
- cloudresourcemanager.googleapis.com
354-
- storage-api.googleapis.com
355-
- serviceusage.googleapis.com
356351
- compute.googleapis.com
357-
- run.googleapis.com
358352
- iam.googleapis.com
359-
- certificatemanager.googleapis.com
353+
- run.googleapis.com
354+
- serviceusage.googleapis.com
355+
- storage-api.googleapis.com
360356
- vpcaccess.googleapis.com
361357
providerVersions:
362358
- source: hashicorp/google

modules/backend/metadata.yaml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -331,25 +331,18 @@ spec:
331331
roles:
332332
- level: Project
333333
roles:
334-
- roles/compute.xpnAdmin
335-
- level: Project
336-
roles:
337-
- roles/storage.admin
338-
- roles/compute.admin
339334
- roles/run.admin
335+
- roles/compute.networkAdmin
336+
- roles/iap.admin
340337
- roles/iam.serviceAccountUser
341-
- roles/certificatemanager.owner
342-
- roles/vpcaccess.admin
343338
- roles/iam.serviceAccountAdmin
344-
- roles/iap.admin
339+
- roles/compute.admin
340+
- roles/storage.admin
345341
services:
346342
- cloudresourcemanager.googleapis.com
347-
- storage-api.googleapis.com
348-
- serviceusage.googleapis.com
349343
- compute.googleapis.com
350344
- run.googleapis.com
351-
- iam.googleapis.com
352-
- certificatemanager.googleapis.com
345+
- storage-api.googleapis.com
353346
- vpcaccess.googleapis.com
354347
providerVersions:
355348
- source: hashicorp/google

modules/dynamic_backends/metadata.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,6 @@ spec:
328328
description: The default URL map used by this module.
329329
requirements:
330330
roles:
331-
- level: Project
332-
roles:
333-
- roles/compute.xpnAdmin
334331
- level: Project
335332
roles:
336333
- roles/storage.admin
@@ -342,13 +339,13 @@ spec:
342339
- roles/iam.serviceAccountAdmin
343340
- roles/iap.admin
344341
services:
342+
- certificatemanager.googleapis.com
345343
- cloudresourcemanager.googleapis.com
346-
- storage-api.googleapis.com
347-
- serviceusage.googleapis.com
348344
- compute.googleapis.com
349-
- run.googleapis.com
350345
- iam.googleapis.com
351-
- certificatemanager.googleapis.com
346+
- run.googleapis.com
347+
- serviceusage.googleapis.com
348+
- storage-api.googleapis.com
352349
- vpcaccess.googleapis.com
353350
providerVersions:
354351
- source: hashicorp/google

modules/frontend/metadata.yaml

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -246,26 +246,18 @@ spec:
246246
roles:
247247
- level: Project
248248
roles:
249-
- roles/compute.xpnAdmin
250-
- level: Project
251-
roles:
252-
- roles/storage.admin
253249
- roles/compute.admin
254-
- roles/run.admin
255-
- roles/iam.serviceAccountUser
250+
- roles/storage.admin
251+
- roles/iap.admin
256252
- roles/certificatemanager.owner
257253
- roles/vpcaccess.admin
258254
- roles/iam.serviceAccountAdmin
259-
- roles/iap.admin
255+
- roles/iam.serviceAccountUser
260256
services:
261-
- cloudresourcemanager.googleapis.com
262-
- storage-api.googleapis.com
263-
- serviceusage.googleapis.com
257+
- certificatemanager.googleapis.com
264258
- compute.googleapis.com
265259
- run.googleapis.com
266-
- iam.googleapis.com
267-
- certificatemanager.googleapis.com
268-
- vpcaccess.googleapis.com
260+
- storage-api.googleapis.com
269261
providerVersions:
270262
- source: hashicorp/google
271263
version: ">= 6.0, < 7"

modules/serverless_negs/metadata.yaml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -294,25 +294,23 @@ spec:
294294
roles:
295295
- level: Project
296296
roles:
297-
- roles/compute.xpnAdmin
298-
- level: Project
299-
roles:
297+
- roles/vpcaccess.admin
298+
- roles/iam.serviceAccountAdmin
300299
- roles/storage.admin
301300
- roles/compute.admin
302301
- roles/run.admin
303302
- roles/iam.serviceAccountUser
304303
- roles/certificatemanager.owner
305304
- roles/vpcaccess.admin
306305
- roles/iam.serviceAccountAdmin
307-
- roles/iap.admin
308306
services:
307+
- certificatemanager.googleapis.com
309308
- cloudresourcemanager.googleapis.com
310-
- storage-api.googleapis.com
311-
- serviceusage.googleapis.com
312309
- compute.googleapis.com
313-
- run.googleapis.com
314310
- iam.googleapis.com
315-
- certificatemanager.googleapis.com
311+
- run.googleapis.com
312+
- serviceusage.googleapis.com
313+
- storage-api.googleapis.com
316314
- vpcaccess.googleapis.com
317315
providerVersions:
318316
- source: hashicorp/google

test/setup/iam.tf

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,54 @@
1515
*/
1616

1717
locals {
18-
int_required_project_roles = [
19-
"roles/storage.admin",
20-
"roles/compute.admin",
21-
"roles/run.admin",
22-
"roles/iam.serviceAccountUser",
23-
"roles/certificatemanager.owner",
24-
"roles/vpcaccess.admin",
25-
"roles/iam.serviceAccountAdmin",
26-
"roles/iap.admin"
27-
]
18+
per_module_roles = {
19+
root = [
20+
"roles/storage.admin",
21+
"roles/compute.admin",
22+
"roles/run.admin",
23+
"roles/iam.serviceAccountUser",
24+
"roles/certificatemanager.owner",
25+
"roles/vpcaccess.admin",
26+
"roles/iam.serviceAccountAdmin"
27+
]
28+
backend = [
29+
"roles/compute.admin",
30+
"roles/storage.admin",
31+
"roles/run.admin",
32+
"roles/compute.networkAdmin",
33+
"roles/iap.admin",
34+
"roles/iam.serviceAccountUser",
35+
"roles/iam.serviceAccountAdmin",
36+
"roles/iap.admin"
37+
]
38+
dynamic_backends = [
39+
"roles/storage.admin",
40+
"roles/compute.admin",
41+
"roles/run.admin",
42+
"roles/iam.serviceAccountUser",
43+
"roles/certificatemanager.owner",
44+
"roles/vpcaccess.admin",
45+
"roles/iam.serviceAccountAdmin"
46+
]
47+
frontend = [
48+
"roles/compute.admin",
49+
"roles/storage.admin",
50+
"roles/iap.admin",
51+
"roles/certificatemanager.owner",
52+
"roles/iam.serviceAccountUser"
53+
]
54+
serverless_negs = [
55+
"roles/storage.admin",
56+
"roles/compute.admin",
57+
"roles/run.admin",
58+
"roles/iam.serviceAccountUser",
59+
"roles/certificatemanager.owner",
60+
"roles/vpcaccess.admin",
61+
"roles/iam.serviceAccountAdmin"
62+
]
63+
}
64+
65+
int_required_project_roles = tolist(toset(flatten(values(local.per_module_roles))))
2866
int_required_folder_roles = [
2967
"roles/compute.xpnAdmin"
3068
]

test/setup/main.tf

Lines changed: 51 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,55 @@
1414
* limitations under the License.
1515
*/
1616

17+
locals {
18+
per_module_services = {
19+
root = [
20+
"cloudresourcemanager.googleapis.com",
21+
"storage-api.googleapis.com",
22+
"serviceusage.googleapis.com",
23+
"compute.googleapis.com",
24+
"run.googleapis.com",
25+
"iam.googleapis.com",
26+
"certificatemanager.googleapis.com",
27+
"vpcaccess.googleapis.com",
28+
]
29+
backend = [
30+
"compute.googleapis.com",
31+
"run.googleapis.com",
32+
"storage-api.googleapis.com",
33+
"vpcaccess.googleapis.com",
34+
"cloudresourcemanager.googleapis.com",
35+
"iap.googleapis.com",
36+
]
37+
dynamic_backends = [
38+
"cloudresourcemanager.googleapis.com",
39+
"storage-api.googleapis.com",
40+
"serviceusage.googleapis.com",
41+
"compute.googleapis.com",
42+
"run.googleapis.com",
43+
"iam.googleapis.com",
44+
"certificatemanager.googleapis.com",
45+
"vpcaccess.googleapis.com",
46+
]
47+
frontend = [
48+
"compute.googleapis.com",
49+
"storage-api.googleapis.com",
50+
"run.googleapis.com",
51+
"certificatemanager.googleapis.com",
52+
]
53+
serverless_negs = [
54+
"cloudresourcemanager.googleapis.com",
55+
"storage-api.googleapis.com",
56+
"serviceusage.googleapis.com",
57+
"compute.googleapis.com",
58+
"run.googleapis.com",
59+
"iam.googleapis.com",
60+
"certificatemanager.googleapis.com",
61+
"vpcaccess.googleapis.com",
62+
]
63+
}
64+
}
65+
1766
module "project-ci-lb-http" {
1867
source = "terraform-google-modules/project-factory/google"
1968
version = "~> 17.0"
@@ -28,16 +77,7 @@ module "project-ci-lb-http" {
2877
disable_services_on_destroy = false
2978
deletion_policy = "DELETE"
3079

31-
activate_apis = [
32-
"cloudresourcemanager.googleapis.com",
33-
"storage-api.googleapis.com",
34-
"serviceusage.googleapis.com",
35-
"compute.googleapis.com",
36-
"run.googleapis.com",
37-
"iam.googleapis.com",
38-
"certificatemanager.googleapis.com",
39-
"vpcaccess.googleapis.com",
40-
]
80+
activate_apis = tolist(toset(flatten(values(local.per_module_services))))
4181
}
4282

4383
module "project-ci-lb-http-1" {
@@ -54,15 +94,5 @@ module "project-ci-lb-http-1" {
5494
disable_services_on_destroy = false
5595
deletion_policy = "DELETE"
5696

57-
activate_apis = [
58-
"cloudresourcemanager.googleapis.com",
59-
"storage-api.googleapis.com",
60-
"serviceusage.googleapis.com",
61-
"compute.googleapis.com",
62-
"run.googleapis.com",
63-
"iam.googleapis.com",
64-
"certificatemanager.googleapis.com",
65-
"vpcaccess.googleapis.com",
66-
"iap.googleapis.com",
67-
]
97+
activate_apis = tolist(toset(flatten(values(local.per_module_services))))
6898
}

0 commit comments

Comments
 (0)