Skip to content

Commit f6725eb

Browse files
qz267Zheng Qin
andauthored
feat: per module requirements configs to cloud-storage (#410)
Co-authored-by: Zheng Qin <zhengqin@google.com>
1 parent d1d3710 commit f6725eb

File tree

5 files changed

+52
-24
lines changed

5 files changed

+52
-24
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# Make will use bash instead of sh
1616
SHELL := /usr/bin/env bash
1717

18-
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.24
18+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.25.4
1919
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2020
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2121

@@ -86,7 +86,7 @@ docker_generate_docs:
8686
-e ENABLE_BPMETADATA \
8787
-v $(CURDIR):/workspace \
8888
$(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \
89-
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs'
89+
/bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs --per-module-requirements'
9090

9191
# Alias for backwards compatibility
9292
.PHONY: generate_docs

metadata.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ spec:
2727
version: 11.0.0
2828
actuationTool:
2929
flavor: Terraform
30-
version: ">= 0.13"
30+
version: ">= 1.3"
3131
description: {}
3232
content:
3333
subBlueprints:
@@ -701,18 +701,18 @@ spec:
701701
roles:
702702
- level: Project
703703
roles:
704-
- roles/cloudkms.cryptoKeyEncrypterDecrypter
705-
- roles/iam.serviceAccountUser
704+
- roles/resourcemanager.projectIamAdmin
705+
- roles/serviceusage.serviceUsageAdmin
706706
- roles/storage.admin
707+
- roles/iam.serviceAccountAdmin
708+
- roles/iam.serviceAccountUser
707709
services:
708-
- cloudkms.googleapis.com
709710
- cloudresourcemanager.googleapis.com
710-
- compute.googleapis.com
711711
- iam.googleapis.com
712712
- serviceusage.googleapis.com
713-
- storage-api.googleapis.com
713+
- storage.googleapis.com
714714
providerVersions:
715715
- source: hashicorp/google
716-
version: ">= 5.43.0, < 7"
716+
version: ">= 6.9.0, < 7"
717717
- source: hashicorp/random
718718
version: ">= 2.1"

modules/simple_bucket/metadata.yaml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ spec:
2828
version: 11.0.0
2929
actuationTool:
3030
flavor: Terraform
31-
version: ">= 0.13"
31+
version: ">= 1.3"
3232
description: {}
3333
content:
3434
examples:
@@ -97,7 +97,7 @@ spec:
9797
varType: bool
9898
defaultValue: false
9999
- name: hierarchical_namespace
100-
description: While set to true, hierarchical namespace is enabled for this bucket.
100+
description: When set to true, hierarchical namespace is enable for this bucket.
101101
varType: bool
102102
defaultValue: false
103103
- name: retention_policy
@@ -351,16 +351,14 @@ spec:
351351
roles:
352352
- level: Project
353353
roles:
354-
- roles/cloudkms.cryptoKeyEncrypterDecrypter
355-
- roles/iam.serviceAccountUser
356354
- roles/storage.admin
355+
- roles/iam.serviceAccountUser
356+
- roles/cloudkms.admin
357+
- roles/logging.logWriter
357358
services:
358359
- cloudkms.googleapis.com
359-
- cloudresourcemanager.googleapis.com
360-
- compute.googleapis.com
361360
- iam.googleapis.com
362-
- serviceusage.googleapis.com
363-
- storage-api.googleapis.com
361+
- storage.googleapis.com
364362
providerVersions:
365363
- source: hashicorp/google
366-
version: ">= 5.43.0, < 7"
364+
version: ">= 6.9.0, < 7"

test/setup/iam.tf

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,27 @@
1515
*/
1616

1717
locals {
18-
int_required_roles = [
18+
per_module_roles = {
19+
simple_bucket = [
20+
"roles/storage.admin",
21+
"roles/iam.serviceAccountUser",
22+
"roles/cloudkms.admin",
23+
"roles/logging.logWriter",
24+
]
25+
root = [
26+
"roles/resourcemanager.projectIamAdmin",
27+
"roles/serviceusage.serviceUsageAdmin",
28+
"roles/storage.admin",
29+
"roles/iam.serviceAccountAdmin",
30+
"roles/iam.serviceAccountUser",
31+
]
32+
}
33+
34+
int_required_roles = concat([
1935
"roles/cloudkms.cryptoKeyEncrypterDecrypter",
2036
"roles/iam.serviceAccountUser",
2137
"roles/storage.admin",
22-
]
38+
], flatten(values(local.per_module_roles)))
2339
}
2440

2541
resource "google_service_account" "int_test" {

test/setup/main.tf

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

17+
locals {
18+
per_module_services = {
19+
simple_bucket = [
20+
"storage.googleapis.com",
21+
"cloudkms.googleapis.com",
22+
"iam.googleapis.com",
23+
]
24+
root = [
25+
"storage.googleapis.com",
26+
"iam.googleapis.com",
27+
"serviceusage.googleapis.com",
28+
"cloudresourcemanager.googleapis.com",
29+
]
30+
}
31+
}
32+
1733
module "project" {
1834
source = "terraform-google-modules/project-factory/google"
1935
version = "~> 18.0"
@@ -24,12 +40,10 @@ module "project" {
2440
folder_id = var.folder_id
2541
billing_account = var.billing_account
2642

27-
activate_apis = [
28-
"cloudkms.googleapis.com",
43+
activate_apis = concat([
2944
"cloudresourcemanager.googleapis.com",
3045
"compute.googleapis.com",
31-
"iam.googleapis.com",
3246
"serviceusage.googleapis.com",
3347
"storage-api.googleapis.com",
34-
]
48+
], flatten(values(local.per_module_services)))
3549
}

0 commit comments

Comments
 (0)