From ad5de9b7ea27f65414f61b64f5cc6dd9b19ee33a Mon Sep 17 00:00:00 2001 From: Ludovico Magnocavallo Date: Tue, 20 Aug 2024 17:45:42 +0100 Subject: [PATCH] Refactor FAST project factory and supporting documentation (#2505) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * untested * teams pattern * rework doc * README * boierplate * tflint * Fix tflint for project factory * Correct path to pf * resman changes * fix factory variable default * fix links * project factory module substitutions * tflint * stage test * tfdoc * rename schema, address review comments * README typos and wording * tfdoc * review comments * remove test from yaml * revert output workflow changes * fix sa reference errors * tfdoc * pf tag roles * schema validation * pf tag roles * avoid null values in pf context --------- Co-authored-by: Wiktor Niesiobędzki --- fast/README.md | 2 +- fast/stage-links.sh | 23 + fast/stages/1-resman/README.md | 42 +- fast/stages/1-resman/billing.tf | 28 +- fast/stages/1-resman/branch-networking.tf | 64 +- .../stages/1-resman/branch-project-factory.tf | 66 +- .../data/top-level-folders/teams.yaml | 32 + fast/stages/1-resman/iam.tf | 26 +- fast/stages/1-resman/main.tf | 51 +- fast/stages/1-resman/organization.tf | 16 +- fast/stages/1-resman/outputs.tf | 116 +- .../schemas/top-level-folder.schema.json | 233 +++ fast/stages/1-resman/top-level-folders.tf | 59 +- fast/stages/1-resman/variables.tf | 11 +- fast/stages/2-project-factory/README.md | 357 ++++ .../data/hierarchy/team-a/_config.yaml | 21 + .../data/hierarchy/team-a/dev/_config.yaml | 22 + .../data/hierarchy/team-a/prod/_config.yaml | 11 +- .../data/hierarchy/team-b/_config.yaml | 21 + .../data/hierarchy/team-b/dev/_config.yaml | 22 + .../data/hierarchy/team-b/prod/_config.yaml} | 13 +- .../data/projects/dev-ta-0.yaml | 14 +- .../data/projects/dev-tb-0.yaml | 21 + .../data/projects/prod-ta-0.yaml | 21 + .../data/projects/prod-tb-0.yaml | 21 + fast/stages/2-project-factory/diagram-env.png | Bin 0 -> 114130 bytes fast/stages/2-project-factory/diagram.png | Bin 0 -> 131666 bytes .../dev => 2-project-factory}/main.tf | 36 +- .../dev => 2-project-factory}/outputs.tf | 0 .../schemas/budget.schema.json | 1 + .../schemas/folder.schema.json | 1 + .../schemas/project.schema.json | 1 + .../variables-fast.tf | 41 + .../dev => 2-project-factory}/variables.tf | 19 +- fast/stages/3-gke-multitenant/README.md | 2 +- fast/stages/3-project-factory/README.md | 6 - fast/stages/3-project-factory/dev/README.md | 92 - fast/stages/3-project-factory/dev/diagram.png | Bin 57470 -> 0 bytes fast/stages/3-project-factory/dev/diagram.svg | 1530 ----------------- fast/stages/README.md | 4 +- fast/stages/diagrams.excalidraw.gz | Bin 65598 -> 82884 bytes modules/project-factory/README.md | 225 ++- modules/project-factory/automation.tf | 30 +- modules/project-factory/factory-folders.tf | 15 +- modules/project-factory/factory-projects.tf | 2 +- modules/project-factory/folders.tf | 143 +- modules/project-factory/main.tf | 71 +- .../schemas/folder.schema.json | 8 +- .../schemas/project.schema.json | 10 +- modules/project-factory/variables.tf | 12 +- tests/fast/stages/s1_resman/checklist.yaml | 27 +- tests/fast/stages/s1_resman/simple.yaml | 55 +- .../stages/s2_project_factory/simple.tfvars | 13 + .../stages/s2_project_factory/simple.yaml | 153 ++ .../tftest.yaml | 2 +- .../stages/s3_project_factory/simple.tfvars | 10 - .../project_factory/examples/example.yaml | 518 +++--- 57 files changed, 1948 insertions(+), 2392 deletions(-) create mode 100644 fast/stages/1-resman/data/top-level-folders/teams.yaml create mode 100644 fast/stages/1-resman/schemas/top-level-folder.schema.json create mode 100644 fast/stages/2-project-factory/README.md create mode 100644 fast/stages/2-project-factory/data/hierarchy/team-a/_config.yaml create mode 100644 fast/stages/2-project-factory/data/hierarchy/team-a/dev/_config.yaml rename tests/fast/stages/s3_project_factory/simple.yaml => fast/stages/2-project-factory/data/hierarchy/team-a/prod/_config.yaml (80%) create mode 100644 fast/stages/2-project-factory/data/hierarchy/team-b/_config.yaml create mode 100644 fast/stages/2-project-factory/data/hierarchy/team-b/dev/_config.yaml rename fast/stages/{3-project-factory/dev/data/projects/test-project.yaml => 2-project-factory/data/hierarchy/team-b/prod/_config.yaml} (76%) rename tests/fast/stages/s3_project_factory/data/projects/project.yaml => fast/stages/2-project-factory/data/projects/dev-ta-0.yaml (73%) create mode 100644 fast/stages/2-project-factory/data/projects/dev-tb-0.yaml create mode 100644 fast/stages/2-project-factory/data/projects/prod-ta-0.yaml create mode 100644 fast/stages/2-project-factory/data/projects/prod-tb-0.yaml create mode 100644 fast/stages/2-project-factory/diagram-env.png create mode 100644 fast/stages/2-project-factory/diagram.png rename fast/stages/{3-project-factory/dev => 2-project-factory}/main.tf (55%) rename fast/stages/{3-project-factory/dev => 2-project-factory}/outputs.tf (100%) create mode 120000 fast/stages/2-project-factory/schemas/budget.schema.json create mode 120000 fast/stages/2-project-factory/schemas/folder.schema.json create mode 120000 fast/stages/2-project-factory/schemas/project.schema.json rename fast/stages/{3-project-factory/dev => 2-project-factory}/variables-fast.tf (54%) rename fast/stages/{3-project-factory/dev => 2-project-factory}/variables.tf (59%) delete mode 100644 fast/stages/3-project-factory/README.md delete mode 100644 fast/stages/3-project-factory/dev/README.md delete mode 100644 fast/stages/3-project-factory/dev/diagram.png delete mode 100644 fast/stages/3-project-factory/dev/diagram.svg create mode 100644 tests/fast/stages/s2_project_factory/simple.tfvars create mode 100644 tests/fast/stages/s2_project_factory/simple.yaml rename tests/fast/stages/{s3_project_factory => s2_project_factory}/tftest.yaml (93%) delete mode 100644 tests/fast/stages/s3_project_factory/simple.tfvars diff --git a/fast/README.md b/fast/README.md index 6652465ee..35255fba1 100644 --- a/fast/README.md +++ b/fast/README.md @@ -32,7 +32,7 @@ FAST also aims to minimize the number of permissions granted to principals accor A resource factory consumes a simple representation of a resource (e.g., in YAML) and deploys it (e.g., using Terraform). Used correctly, factories can help decrease the management overhead of large-scale infrastructure deployments. See "[Resource Factories: A descriptive approach to Terraform](https://medium.com/google-cloud/resource-factories-a-descriptive-approach-to-terraform-581b3ebb59c)" for more details and the rationale behind factories. -FAST uses YAML-based factories to deploy subnets and firewall rules and, as its name suggests, in the [project factory](./stages/3-project-factory/) stage. +FAST uses YAML-based factories to deploy subnets and firewall rules and, as its name suggests, in the [project factory](./stages/2-project-factory/) stage. ### CI/CD diff --git a/fast/stage-links.sh b/fast/stage-links.sh index b690066d3..1363f5f43 100755 --- a/fast/stage-links.sh +++ b/fast/stage-links.sh @@ -45,6 +45,7 @@ fi GLOBALS="tfvars/0-globals.auto.tfvars.json" PROVIDER_CMD=$CMD STAGE_NAME=$(basename "$(pwd)") +EXTRA_FILES="" case $STAGE_NAME in @@ -74,6 +75,21 @@ case $STAGE_NAME in tenants/$TENANT/tfvars/1-resman.auto.tfvars.json" fi ;; +"2-project-factory"*) + if [[ -z "$TENANT" ]]; then + echo "# if this is a tenant stage, set a \$TENANT variable with the tenant shortname and run the command again" + PROVIDER="providers/2-project-factory-providers.tf" + TFVARS="tfvars/0-bootstrap.auto.tfvars.json + tfvars/1-resman.auto.tfvars.json" + EXTRA_FILES="tfvars/2-networking.auto.tfvars.json" + else + unset GLOBALS + PROVIDER="tenants/$TENANT/providers/2-project-factory-providers.tf" + TFVARS="tenants/$TENANT/tfvars/0-bootstrap-tenant.auto.tfvars.json + tenants/$TENANT/tfvars/1-resman.auto.tfvars.json" + EXTRA_FILES="tenants/$TENANT/tfvars/2-networking.auto.tfvars.json" + fi + ;; "2-security"*) if [[ -z "$TENANT" ]]; then echo "# if this is a tenant stage, set a \$TENANT variable with the tenant shortname and run the command again" @@ -138,6 +154,13 @@ for f in $TFVARS; do echo "$CMD/$f ./" done +if [[ ! -z ${EXTRA_FILES+x} ]]; then + echo "# optional files" + for f in $EXTRA_FILES; do + echo "$CMD/$f ./" + done +fi + if [[ ! -z ${MESSAGE+x} ]]; then echo -e "\n# ---> $MESSAGE <---" fi diff --git a/fast/stages/1-resman/README.md b/fast/stages/1-resman/README.md index 3e9ad6dc3..533b66b4f 100644 --- a/fast/stages/1-resman/README.md +++ b/fast/stages/1-resman/README.md @@ -60,13 +60,13 @@ For a discussion on naming, please refer to the [Bootstrap stage documentation]( Top-level folders for teams or departments can be easily created via the `top_level_folders` variable or the associated factory, which expose the full power of the underlying [folder module](../../../modules/folder/). -The suggestion is to use this feature sparingly so at to keep the top level of the hierarchy simple, and minimize changes to this stage due to its security implications. One approach is to create a grouping folder (e.g. `Departments` or `Teams`) here, and delegate management of lower level folders to the [project factory](../3-project-factory/) stage. +The suggestion is to use this feature sparingly so as to keep the top level of the hierarchy simple, and minimize changes to this stage due to its security implications. One approach is to create a grouping folder (e.g. `Departments` or `Teams`) here, and delegate management of lower level folders to the [project factory](../2-project-factory/) stage. Top-level folders also support defining associated resources for automation, and auto-created provider files to bootstrap Infrastructure and Code. An example is provided below. ### Multitenancy -Multitenancy is supported via a [separate stage](../1-tenant-factory/), which is entirely optional and can be applied after resource management has been deployed. For simpler use cases that do not require complex organization-level multitenancy, [top-level folders](#top-level-folders) can be used in combination with the [project factory stage](../3-project-factory/) support for folder and project management. +Multitenancy is supported via a [separate stage](../1-tenant-factory/), which is entirely optional and can be applied after resource management has been deployed. For simpler use cases that do not require complex organization-level multitenancy, [top-level folders](#top-level-folders) can be used in combination with the [project factory stage](../2-project-factory/) support for folder and project management. ### Workload Identity Federation and CI/CD @@ -148,7 +148,7 @@ The `fast_features` variable consists of 5 toggles: - **`data_platform`** controls the creation of required resources (folders, service accounts, buckets, IAM bindings) to deploy the [3-data-platform](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/3-data-platform) stage - **`gcve`** controls the creation of required resources (folders, service accounts, buckets, IAM bindings) to deploy the [3-gcve](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/3-gcve) stage - **`gke`** controls the creation of required resources (folders, service accounts, buckets, IAM bindings) to deploy the [3-gke-multitenant](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/3-gke-multitenant) stage -- **`project_factory`** controls the creation of required resources (folders, service accounts, buckets, IAM bindings) to deploy the [3-project-factory](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/3-project-factory) stage +- **`project_factory`** controls the creation of required resources (folders, service accounts, buckets, IAM bindings) to deploy the [2-project-factory](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/2-project-factory) stage - **`sandbox`** controls the creation of a "Sandbox" top level folder with relaxed policies, intended for sandbox environments where users can experiment - **`teams`** controls the creation of the top level "Teams" folder used by the [teams feature in resman](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/tree/master/fast/stages/1-resman#team-folders). @@ -272,30 +272,30 @@ A full reference of IAM roles managed by this stage [is available here](./IAM.md | [prefix](variables-fast.tf#L126) | Prefix used for resources that need unique names. Use 9 characters or less. | string | ✓ | | 0-bootstrap | | [cicd_repositories](variables.tf#L20) | CI/CD repository configuration. Identity providers reference keys in the `automation.federated_identity_providers` variable. Set to null to disable, or set individual repositories to null if not needed. | object({…}) | | null | | | [custom_roles](variables-fast.tf#L53) | Custom roles defined at the org level, in key => id format. | object({…}) | | null | 0-bootstrap | -| [factories_config](variables.tf#L122) | Configuration for the resource factories or external data. | object({…}) | | {} | | -| [fast_features](variables.tf#L133) | Selective control for top-level FAST features. | object({…}) | | {} | | -| [folder_iam](variables.tf#L146) | Authoritative IAM for top-level folders. | object({…}) | | {} | | +| [factories_config](variables.tf#L122) | Configuration for the resource factories or external data. | object({…}) | | {} | | +| [fast_features](variables.tf#L133) | Selective control for top-level FAST features. | object({…}) | | {} | | +| [folder_iam](variables.tf#L145) | Authoritative IAM for top-level folders. | object({…}) | | {} | | | [groups](variables-fast.tf#L67) | Group names or IAM-format principals to grant organization-level permissions. If just the name is provided, the 'group:' principal and organization domain are interpolated. | object({…}) | | {} | 0-bootstrap | | [locations](variables-fast.tf#L82) | Optional locations for GCS, BigQuery, and logging buckets created here. | object({…}) | | {} | 0-bootstrap | -| [outputs_location](variables.tf#L160) | Enable writing provider, tfvars and CI/CD workflow files to local filesystem. Leave null to disable. | string | | null | | +| [outputs_location](variables.tf#L159) | Enable writing provider, tfvars and CI/CD workflow files to local filesystem. Leave null to disable. | string | | null | | | [root_node](variables-fast.tf#L132) | Root node for the hierarchy, if running in tenant mode. | string | | null | 0-bootstrap | -| [tag_names](variables.tf#L166) | Customized names for resource management tags. | object({…}) | | {} | | -| [tags](variables.tf#L180) | Custom secure tags by key name. The `iam` attribute behaves like the similarly named one at module level. | map(object({…})) | | {} | | -| [top_level_folders](variables.tf#L201) | Additional top-level folders. Keys are used for service account and bucket names, values implement the folders module interface with the addition of the 'automation' attribute. | map(object({…})) | | {} | | +| [tag_names](variables.tf#L165) | Customized names for resource management tags. | object({…}) | | {} | | +| [tags](variables.tf#L179) | Custom secure tags by key name. The `iam` attribute behaves like the similarly named one at module level. | map(object({…})) | | {} | | +| [top_level_folders](variables.tf#L200) | Additional top-level folders. Keys are used for service account and bucket names, values implement the folders module interface with the addition of the 'automation' attribute. | map(object({…})) | | {} | | ## Outputs | name | description | sensitive | consumers | |---|---|:---:|---| -| [cicd_repositories](outputs.tf#L402) | WIF configuration for CI/CD repositories. | | | -| [dataplatform](outputs.tf#L416) | Data for the Data Platform stage. | | | -| [folder_ids](outputs.tf#L432) | Folder ids. | | | -| [gcve](outputs.tf#L437) | Data for the GCVE stage. | | 03-gcve | -| [gke_multitenant](outputs.tf#L458) | Data for the GKE multitenant stage. | | 03-gke-multitenant | -| [networking](outputs.tf#L479) | Data for the networking stage. | | | -| [project_factories](outputs.tf#L488) | Data for the project factories stage. | | | -| [providers](outputs.tf#L507) | Terraform provider files for this stage and dependent stages. | ✓ | 02-networking · 02-security · 03-dataplatform · 03-network-security | -| [sandbox](outputs.tf#L514) | Data for the sandbox stage. | | xx-sandbox | -| [security](outputs.tf#L528) | Data for the networking stage. | | 02-security | -| [tfvars](outputs.tf#L539) | Terraform variable files for the following stages. | ✓ | | +| [cicd_repositories](outputs.tf#L374) | WIF configuration for CI/CD repositories. | | | +| [dataplatform](outputs.tf#L388) | Data for the Data Platform stage. | | | +| [folder_ids](outputs.tf#L404) | Folder ids. | | | +| [gcve](outputs.tf#L409) | Data for the GCVE stage. | | 03-gcve | +| [gke_multitenant](outputs.tf#L430) | Data for the GKE multitenant stage. | | 03-gke-multitenant | +| [networking](outputs.tf#L451) | Data for the networking stage. | | | +| [project_factories](outputs.tf#L460) | Data for the project factories stage. | | | +| [providers](outputs.tf#L479) | Terraform provider files for this stage and dependent stages. | ✓ | 02-networking · 02-security · 03-dataplatform · 03-network-security | +| [sandbox](outputs.tf#L486) | Data for the sandbox stage. | | xx-sandbox | +| [security](outputs.tf#L500) | Data for the networking stage. | | 02-security | +| [tfvars](outputs.tf#L511) | Terraform variable files for the following stages. | ✓ | | diff --git a/fast/stages/1-resman/billing.tf b/fast/stages/1-resman/billing.tf index afa6958dc..c289ddfec 100644 --- a/fast/stages/1-resman/billing.tf +++ b/fast/stages/1-resman/billing.tf @@ -18,21 +18,19 @@ locals { # used here for convenience, in organization.tf members are explicit - billing_ext_users = concat( - [ - module.branch-network-sa.iam_email, - module.branch-security-sa.iam_email, - ], - local.branch_optional_sa_lists.dp-dev, - local.branch_optional_sa_lists.dp-prod, - local.branch_optional_sa_lists.gke-dev, - local.branch_optional_sa_lists.gke-prod, - local.branch_optional_sa_lists.gcve-dev, - local.branch_optional_sa_lists.gcve-prod, - local.branch_optional_sa_lists.pf, - local.branch_optional_sa_lists.pf-dev, - local.branch_optional_sa_lists.pf-prod, - ) + billing_ext_users = compact([ + try(module.branch-network-sa.iam_email, null), + try(module.branch-pf-dev-sa.iam_email, null), + try(module.branch-pf-prod-sa.iam_email, null), + try(module.branch-pf-sa.iam_email, null), + try(module.branch-security-sa.iam_email, null), + try(module.branch-dp-dev-sa[0].iam_email, null), + try(module.branch-dp-prod-sa[0].iam_email, null), + try(module.branch-gcve-dev-sa[0].iam_email, null), + try(module.branch-gcve-prod-sa[0].iam_email, null), + try(module.branch-gke-dev-sa[0].iam_email, null), + try(module.branch-gke-prod-sa[0].iam_email, null) + ]) billing_mode = ( var.billing_account.no_iam ? null diff --git a/fast/stages/1-resman/branch-networking.tf b/fast/stages/1-resman/branch-networking.tf index 263d1c4ae..ca2791d70 100644 --- a/fast/stages/1-resman/branch-networking.tf +++ b/fast/stages/1-resman/branch-networking.tf @@ -67,22 +67,24 @@ module "branch-network-prod-folder" { name = "Production" iam = { # read-write (apply) automation service accounts - (local.custom_roles.service_project_network_admin) = concat( - local.branch_optional_sa_lists.dp-prod, - local.branch_optional_sa_lists.gke-prod, - local.branch_optional_sa_lists.gcve-prod, - local.branch_optional_sa_lists.pf, - local.branch_optional_sa_lists.pf-prod, - ) + (local.custom_roles.service_project_network_admin) = compact([ + try(module.branch-dp-prod-sa[0].iam_email, null), + try(module.branch-gcve-prod-sa[0].iam_email, null), + try(module.branch-gke-prod-sa[0].iam_email, null), + try(module.branch-pf-sa.iam_email, null), + try(module.branch-pf-prod-sa.iam_email, null) + ]) # read-only (plan) automation service accounts - "roles/compute.networkViewer" = concat( - local.branch_optional_r_sa_lists.dp-prod, - local.branch_optional_r_sa_lists.gke-prod, - local.branch_optional_r_sa_lists.gcve-prod, - local.branch_optional_r_sa_lists.pf, - local.branch_optional_r_sa_lists.pf-prod, - ) - (local.custom_roles.gcve_network_admin) = local.branch_optional_sa_lists.gcve-prod + "roles/compute.networkViewer" = compact([ + try(module.branch-dp-prod-r-sa[0].iam_email, null), + try(module.branch-gcve-prod-r-sa[0].iam_email, null), + try(module.branch-gke-prod-r-sa[0].iam_email, null), + try(module.branch-pf-r-sa.iam_email, null), + try(module.branch-pf-prod-r-sa.iam_email, null) + ]) + (local.custom_roles.gcve_network_admin) = compact([ + try(module.branch-gcve-prod-sa[0].iam_email, null) + ]) } tag_bindings = { environment = try( @@ -98,22 +100,24 @@ module "branch-network-dev-folder" { name = "Development" iam = { # read-write (apply) automation service accounts - (local.custom_roles.service_project_network_admin) = concat( - local.branch_optional_sa_lists.dp-dev, - local.branch_optional_sa_lists.gke-dev, - local.branch_optional_sa_lists.gcve-dev, - local.branch_optional_sa_lists.pf, - local.branch_optional_sa_lists.pf-dev, - ) + (local.custom_roles.service_project_network_admin) = compact([ + try(module.branch-dp-dev-sa[0].iam_email, null), + try(module.branch-gcve-dev-sa[0].iam_email, null), + try(module.branch-gke-dev-sa[0].iam_email, null), + try(module.branch-pf-sa.iam_email, null), + try(module.branch-pf-dev-sa.iam_email, null) + ]) # read-only (plan) automation service accounts - "roles/compute.networkViewer" = concat( - local.branch_optional_r_sa_lists.dp-dev, - local.branch_optional_r_sa_lists.gke-dev, - local.branch_optional_r_sa_lists.gcve-dev, - local.branch_optional_r_sa_lists.pf, - local.branch_optional_r_sa_lists.pf-dev, - ) - (local.custom_roles.gcve_network_admin) = local.branch_optional_sa_lists.gcve-dev + "roles/compute.networkViewer" = compact([ + try(module.branch-dp-dev-r-sa[0].iam_email, null), + try(module.branch-gcve-dev-r-sa[0].iam_email, null), + try(module.branch-gke-dev-r-sa[0].iam_email, null), + try(module.branch-pf-r-sa.iam_email, null), + try(module.branch-pf-dev-r-sa.iam_email, null) + ]) + (local.custom_roles.gcve_network_admin) = compact([ + try(module.branch-gcve-dev-sa[0].iam_email, null) + ]) } tag_bindings = { environment = try( diff --git a/fast/stages/1-resman/branch-project-factory.tf b/fast/stages/1-resman/branch-project-factory.tf index 519fa587b..0e6c6134c 100644 --- a/fast/stages/1-resman/branch-project-factory.tf +++ b/fast/stages/1-resman/branch-project-factory.tf @@ -18,9 +18,13 @@ # automation service accounts +moved { + from = module.branch-pf-sa[0] + to = module.branch-pf-sa +} + module "branch-pf-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "resman-pf-0" display_name = "Terraform project factory main service account." @@ -38,9 +42,13 @@ module "branch-pf-sa" { } } +moved { + from = module.branch-pf-dev-sa[0] + to = module.branch-pf-dev-sa +} + module "branch-pf-dev-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "dev-resman-pf-0" display_name = "Terraform project factory development service account." @@ -58,9 +66,13 @@ module "branch-pf-dev-sa" { } } +moved { + from = module.branch-pf-prod-sa[0] + to = module.branch-pf-prod-sa +} + module "branch-pf-prod-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "prod-resman-pf-0" display_name = "Terraform project factory production service account." @@ -80,9 +92,13 @@ module "branch-pf-prod-sa" { # automation read-only service accounts +moved { + from = module.branch-pf-r-sa[0] + to = module.branch-pf-r-sa +} + module "branch-pf-r-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "resman-pf-0r" display_name = "Terraform project factory main service account (read-only)." @@ -100,9 +116,13 @@ module "branch-pf-r-sa" { } } +moved { + from = module.branch-pf-dev-r-sa[0] + to = module.branch-pf-dev-r-sa +} + module "branch-pf-dev-r-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "dev-resman-pf-0r" display_name = "Terraform project factory development service account (read-only)." @@ -120,9 +140,13 @@ module "branch-pf-dev-r-sa" { } } +moved { + from = module.branch-pf-prod-r-sa[0] + to = module.branch-pf-prod-r-sa +} + module "branch-pf-prod-r-sa" { source = "../../../modules/iam-service-account" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "prod-resman-pf-0r" display_name = "Terraform project factory production service account (read-only)." @@ -142,9 +166,13 @@ module "branch-pf-prod-r-sa" { # automation buckets +moved { + from = module.branch-pf-gcs[0] + to = module.branch-pf-gcs +} + module "branch-pf-gcs" { source = "../../../modules/gcs" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "resman-pf-0" prefix = var.prefix @@ -152,14 +180,18 @@ module "branch-pf-gcs" { storage_class = local.gcs_storage_class versioning = true iam = { - "roles/storage.objectAdmin" = [module.branch-pf-sa[0].iam_email] - "roles/storage.objectViewer" = [module.branch-pf-r-sa[0].iam_email] + "roles/storage.objectAdmin" = [module.branch-pf-sa.iam_email] + "roles/storage.objectViewer" = [module.branch-pf-r-sa.iam_email] } } +moved { + from = module.branch-pf-dev-gcs[0] + to = module.branch-pf-dev-gcs +} + module "branch-pf-dev-gcs" { source = "../../../modules/gcs" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "dev-resman-pf-0" prefix = var.prefix @@ -167,14 +199,18 @@ module "branch-pf-dev-gcs" { storage_class = local.gcs_storage_class versioning = true iam = { - "roles/storage.objectAdmin" = [module.branch-pf-dev-sa[0].iam_email] - "roles/storage.objectViewer" = [module.branch-pf-dev-r-sa[0].iam_email] + "roles/storage.objectAdmin" = [module.branch-pf-dev-sa.iam_email] + "roles/storage.objectViewer" = [module.branch-pf-dev-r-sa.iam_email] } } +moved { + from = module.branch-pf-prod-gcs[0] + to = module.branch-pf-prod-gcs +} + module "branch-pf-prod-gcs" { source = "../../../modules/gcs" - count = var.fast_features.project_factory ? 1 : 0 project_id = var.automation.project_id name = "prod-resman-pf-0" prefix = var.prefix @@ -182,7 +218,7 @@ module "branch-pf-prod-gcs" { storage_class = local.gcs_storage_class versioning = true iam = { - "roles/storage.objectAdmin" = [module.branch-pf-prod-sa[0].iam_email] - "roles/storage.objectViewer" = [module.branch-pf-prod-r-sa[0].iam_email] + "roles/storage.objectAdmin" = [module.branch-pf-prod-sa.iam_email] + "roles/storage.objectViewer" = [module.branch-pf-prod-r-sa.iam_email] } } diff --git a/fast/stages/1-resman/data/top-level-folders/teams.yaml b/fast/stages/1-resman/data/top-level-folders/teams.yaml new file mode 100644 index 000000000..3695ce69d --- /dev/null +++ b/fast/stages/1-resman/data/top-level-folders/teams.yaml @@ -0,0 +1,32 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../schemas/top-level-folder.schema.json + +name: Teams +automation: + enable: false +iam: + "roles/owner": + - project-factory + "roles/resourcemanager.folderAdmin": + - project-factory + "roles/resourcemanager.projectCreator": + - project-factory + "roles/resourcemanager.tagUser": + - project-factory + "service_project_network_admin": + - project-factory +tag_bindings: + context: context/project-factory diff --git a/fast/stages/1-resman/iam.tf b/fast/stages/1-resman/iam.tf index a5ff698c5..b396541ad 100644 --- a/fast/stages/1-resman/iam.tf +++ b/fast/stages/1-resman/iam.tf @@ -80,37 +80,37 @@ locals { } }, # optional billing roles for project factory - local.billing_mode != "org" || !var.fast_features.project_factory ? {} : { + local.billing_mode != "org" ? {} : { sa_pf_billing = { - member = module.branch-pf-sa[0].iam_email + member = module.branch-pf-sa.iam_email role = "roles/billing.user" } sa_pf_costs_manager = { - member = module.branch-pf-sa[0].iam_email + member = module.branch-pf-sa.iam_email role = "roles/billing.costsManager" } sa_pf_dev_billing = { - member = module.branch-pf-dev-sa[0].iam_email + member = module.branch-pf-dev-sa.iam_email role = "roles/billing.user" } sa_pf_dev_costs_manager = { - member = module.branch-pf-dev-sa[0].iam_email + member = module.branch-pf-dev-sa.iam_email role = "roles/billing.costsManager" } sa_pf_prod_billing = { - member = module.branch-pf-prod-sa[0].iam_email + member = module.branch-pf-prod-sa.iam_email role = "roles/billing.user" } sa_pf_prod_costs_manager = { - member = module.branch-pf-prod-sa[0].iam_email + member = module.branch-pf-prod-sa.iam_email role = "roles/billing.costsManager" } }, # scoped org policy admin grants for project factory # TODO: change to use context and environment tags, and tag bindings in stage 2s - !var.fast_features.project_factory || var.root_node != null ? {} : { + var.root_node != null ? {} : { sa_pf_conditional_org_policy = { - member = module.branch-pf-sa[0].iam_email + member = module.branch-pf-sa.iam_email role = "roles/orgpolicy.policyAdmin" condition = { title = "org_policy_tag_pf_scoped" @@ -121,23 +121,27 @@ locals { } } sa_pf_dev_conditional_org_policy = { - member = module.branch-pf-dev-sa[0].iam_email + member = module.branch-pf-dev-sa.iam_email role = "roles/orgpolicy.policyAdmin" condition = { title = "org_policy_tag_pf_scoped_dev" description = "Org policy tag scoped grant for project factory dev." expression = <<-END + resource.matchTag('${local.tag_root}/${var.tag_names.context}', 'project-factory') + && resource.matchTag('${local.tag_root}/${var.tag_names.environment}', 'development') END } } sa_pf_prod_conditional_org_policy = { - member = module.branch-pf-prod-sa[0].iam_email + member = module.branch-pf-prod-sa.iam_email role = "roles/orgpolicy.policyAdmin" condition = { title = "org_policy_tag_pf_scoped_prod" description = "Org policy tag scoped grant for project factory prod." expression = <<-END + resource.matchTag('${local.tag_root}/${var.tag_names.context}', 'project-factory') + && resource.matchTag('${local.tag_root}/${var.tag_names.environment}', 'production') END } diff --git a/fast/stages/1-resman/main.tf b/fast/stages/1-resman/main.tf index d94321acc..de21be519 100644 --- a/fast/stages/1-resman/main.tf +++ b/fast/stages/1-resman/main.tf @@ -16,33 +16,36 @@ locals { # leaving this here to document how to get self identity in a stage - # automation_resman_sa = try( # data.google_client_openid_userinfo.provider_identity[0].email, null # ) - - # service accounts that receive additional grants on networking/security - branch_optional_sa_lists = { - dp-dev = compact([try(module.branch-dp-dev-sa[0].iam_email, "")]) - dp-prod = compact([try(module.branch-dp-prod-sa[0].iam_email, "")]) - gcve-dev = compact([try(module.branch-gcve-dev-sa[0].iam_email, "")]) - gcve-prod = compact([try(module.branch-gcve-prod-sa[0].iam_email, "")]) - gke-dev = compact([try(module.branch-gke-dev-sa[0].iam_email, "")]) - gke-prod = compact([try(module.branch-gke-prod-sa[0].iam_email, "")]) - pf = compact([try(module.branch-pf-sa[0].iam_email, "")]) - pf-dev = compact([try(module.branch-pf-dev-sa[0].iam_email, "")]) - pf-prod = compact([try(module.branch-pf-prod-sa[0].iam_email, "")]) - } - branch_optional_r_sa_lists = { - dp-dev = compact([try(module.branch-dp-dev-r-sa[0].iam_email, "")]) - dp-prod = compact([try(module.branch-dp-prod-r-sa[0].iam_email, "")]) - gcve-dev = compact([try(module.branch-gcve-dev-r-sa[0].iam_email, "")]) - gcve-prod = compact([try(module.branch-gcve-prod-r-sa[0].iam_email, "")]) - gke-dev = compact([try(module.branch-gke-dev-r-sa[0].iam_email, "")]) - gke-prod = compact([try(module.branch-gke-prod-r-sa[0].iam_email, "")]) - pf = compact([try(module.branch-pf-r-sa[0].iam_email, "")]) - pf-dev = compact([try(module.branch-pf-dev-r-sa[0].iam_email, "")]) - pf-prod = compact([try(module.branch-pf-prod-r-sa[0].iam_email, "")]) + # stage service accounts, used in top folders and outputs + branch_service_accounts = { + data-platform-dev = try(module.branch-dp-dev-sa[0].email, null) + data-platform-dev-r = try(module.branch-dp-dev-r-sa[0].email, null) + data-platform-prod = try(module.branch-dp-prod-sa[0].email, null) + data-platform-prod-r = try(module.branch-dp-prod-r-sa[0].email, null) + gcve-dev = try(module.branch-gcve-dev-sa[0].email, null) + gcve-dev-r = try(module.branch-gcve-dev-r-sa[0].email, null) + gcve-prod = try(module.branch-gcve-prod-sa[0].email, null) + gcve-prod-r = try(module.branch-gcve-prod-r-sa[0].email, null) + gke-dev = try(module.branch-gke-dev-sa[0].email, null) + gke-dev-r = try(module.branch-gke-dev-r-sa[0].email, null) + gke-prod = try(module.branch-gke-prod-sa[0].email, null) + gke-prod-r = try(module.branch-gke-prod-r-sa[0].email, null) + nsec = module.branch-nsec-sa.email + nsec-r = module.branch-nsec-r-sa.email + networking = module.branch-network-sa.email + networking-r = module.branch-network-r-sa.email + project-factory = module.branch-pf-sa.email + project-factory-r = module.branch-pf-r-sa.email + project-factory-dev = module.branch-pf-dev-sa.email + project-factory-dev-r = module.branch-pf-dev-r-sa.email + project-factory-prod = module.branch-pf-prod-sa.email + project-factory-prod-r = module.branch-pf-prod-r-sa.email + sandbox = try(module.branch-sandbox-sa[0].email, null) + security = module.branch-security-sa.email + security-r = module.branch-security-r-sa.email } # normalize CI/CD repositories cicd_repositories = { diff --git a/fast/stages/1-resman/organization.tf b/fast/stages/1-resman/organization.tf index f5ec5c765..d6d04d370 100644 --- a/fast/stages/1-resman/organization.tf +++ b/fast/stages/1-resman/organization.tf @@ -84,11 +84,23 @@ module "organization" { iam = try(local.tags.environment.iam, {}) values = { development = { - iam = try(local.tags.environment.values.development.iam, {}) + iam = try(local.tags.environment.values.development.iam, {}) + iam_bindings = { + pf = { + members = [module.branch-pf-sa.iam_email] + role = "roles/resourcemanager.tagUser" + } + } description = try(local.tags.environment.values.development.description, null) } production = { - iam = try(local.tags.environment.values.production.iam, {}) + iam = try(local.tags.environment.values.production.iam, {}) + iam_bindings = { + pf = { + members = [module.branch-pf-sa.iam_email] + role = "roles/resourcemanager.tagUser" + } + } description = try(local.tags.environment.values.production.description, null) } } diff --git a/fast/stages/1-resman/outputs.tf b/fast/stages/1-resman/outputs.tf index 4dac75cef..a552c05ba 100644 --- a/fast/stages/1-resman/outputs.tf +++ b/fast/stages/1-resman/outputs.tf @@ -197,6 +197,42 @@ locals { name = "networking" sa = module.branch-network-r-sa.email }) + "2-project-factory" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-gcs.name + name = "project-factory" + sa = module.branch-pf-sa.email + }) + "2-project-factory-r" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-gcs.name + name = "project-factory" + sa = module.branch-pf-r-sa.email + }) + "2-project-factory-dev" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-dev-gcs.name + name = "project-factory-dev" + sa = module.branch-pf-dev-sa.email + }) + "2-project-factory-dev-r" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-dev-gcs.name + name = "project-factory-dev" + sa = module.branch-pf-dev-r-sa.email + }) + "2-project-factory-prod" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-prod-gcs.name + name = "project-factory-prod" + sa = module.branch-pf-prod-sa.email + }) + "2-project-factory-prod-r" = templatefile(local._tpl_providers, { + backend_extra = null + bucket = module.branch-pf-prod-gcs.name + name = "project-factory-prod" + sa = module.branch-pf-prod-r-sa.email + }) "2-security" = templatefile(local._tpl_providers, { backend_extra = null bucket = module.branch-security-gcs.name @@ -309,44 +345,6 @@ locals { sa = module.branch-gcve-prod-r-sa[0].email }) }, - !var.fast_features.project_factory ? {} : { - "3-project-factory" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-gcs[0].name - name = "project-factory" - sa = module.branch-pf-sa[0].email - }) - "3-project-factory-r" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-gcs[0].name - name = "project-factory" - sa = module.branch-pf-r-sa[0].email - }) - "3-project-factory-dev" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-dev-gcs[0].name - name = "project-factory-dev" - sa = module.branch-pf-dev-sa[0].email - }) - "3-project-factory-dev-r" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-dev-gcs[0].name - name = "project-factory-dev" - sa = module.branch-pf-dev-r-sa[0].email - }) - "3-project-factory-prod" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-prod-gcs[0].name - name = "project-factory-prod" - sa = module.branch-pf-prod-sa[0].email - }) - "3-project-factory-prod-r" = templatefile(local._tpl_providers, { - backend_extra = null - bucket = module.branch-pf-prod-gcs[0].name - name = "project-factory-prod" - sa = module.branch-pf-prod-r-sa[0].email - }) - }, !var.fast_features.sandbox ? {} : { "9-sandbox" = templatefile(local._tpl_providers, { backend_extra = null @@ -357,33 +355,7 @@ locals { }, ) service_accounts = merge( - { - data-platform-dev = try(module.branch-dp-dev-sa[0].email, null) - data-platform-dev-r = try(module.branch-dp-dev-r-sa[0].email, null) - data-platform-prod = try(module.branch-dp-prod-sa[0].email, null) - data-platform-prod-r = try(module.branch-dp-prod-r-sa[0].email, null) - gcve-dev = try(module.branch-gcve-dev-sa[0].email, null) - gcve-dev-r = try(module.branch-gcve-dev-r-sa[0].email, null) - gcve-prod = try(module.branch-gcve-prod-sa[0].email, null) - gcve-prod-r = try(module.branch-gcve-prod-r-sa[0].email, null) - gke-dev = try(module.branch-gke-dev-sa[0].email, null) - gke-dev-r = try(module.branch-gke-dev-r-sa[0].email, null) - gke-prod = try(module.branch-gke-prod-sa[0].email, null) - gke-prod-r = try(module.branch-gke-prod-r-sa[0].email, null) - nsec = module.branch-nsec-sa.email - nsec-r = module.branch-nsec-r-sa.email - networking = module.branch-network-sa.email - networking-r = module.branch-network-r-sa.email - project-factory = try(module.branch-pf-sa[0].email, null) - project-factory-r = try(module.branch-pf-r-sa[0].email, null) - project-factory-dev = try(module.branch-pf-dev-sa[0].email, null) - project-factory-dev-r = try(module.branch-pf-dev-r-sa[0].email, null) - project-factory-prod = try(module.branch-pf-prod-sa[0].email, null) - project-factory-prod-r = try(module.branch-pf-prod-r-sa[0].email, null) - sandbox = try(module.branch-sandbox-sa[0].email, null) - security = module.branch-security-sa.email - security-r = module.branch-security-r-sa.email - }, + local.branch_service_accounts, { for k, v in module.top-level-sa : k => try(v.email) } @@ -487,18 +459,18 @@ output "networking" { output "project_factories" { description = "Data for the project factories stage." - value = !var.fast_features.project_factory ? {} : { + value = { dev = { - bucket = module.branch-pf-dev-gcs[0].name - sa = module.branch-pf-dev-sa[0].email + bucket = module.branch-pf-dev-gcs.name + sa = module.branch-pf-dev-sa.email } main = { - bucket = module.branch-pf-gcs[0].name - sa = module.branch-pf-sa[0].email + bucket = module.branch-pf-gcs.name + sa = module.branch-pf-sa.email } prod = { - bucket = module.branch-pf-prod-gcs[0].name - sa = module.branch-pf-prod-sa[0].email + bucket = module.branch-pf-prod-gcs.name + sa = module.branch-pf-prod-sa.email } } } diff --git a/fast/stages/1-resman/schemas/top-level-folder.schema.json b/fast/stages/1-resman/schemas/top-level-folder.schema.json new file mode 100644 index 000000000..60e22c8ae --- /dev/null +++ b/fast/stages/1-resman/schemas/top-level-folder.schema.json @@ -0,0 +1,233 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Folder", + "type": "object", + "additionalProperties": false, + "properties": { + "automation": { + "type": "object", + "additionalProperties": false, + "properties": { + "enable": { + "type": "boolean" + }, + "sa_impersonation_principals": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "iam": { + "$ref": "#/$defs/iam" + }, + "iam_bindings": { + "$ref": "#/$defs/iam_bindings" + }, + "iam_bindings_additive": { + "$ref": "#/$defs/iam_bindings_additive" + }, + "iam_by_principals": { + "$ref": "#/$defs/iam_by_principals" + }, + "name": { + "type": "string" + }, + "org_policies": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-z]+\\.": { + "inherit_from_parent": { + "type": "boolean" + }, + "reset": { + "type": "boolean" + }, + "rules": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "allow": { + "type": "object", + "additionalProperties": false, + "properties": { + "all": { + "type": "boolean" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "deny": { + "type": "object", + "additionalProperties": false, + "properties": { + "all": { + "type": "boolean" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "enforce": { + "type": "boolean" + }, + "condition": { + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "location": { + "type": "string" + }, + "title": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "parent": { + "type": "string" + }, + "tag_bindings": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-z0-9_-]+$": { + "type": "string" + } + } + } + }, + "$defs": { + "iam": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^(?:roles/|[a-z_]+)": { + "type": "array", + "items": { + "type": "string", + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|project-factory|project-factory-dev|project-factory-prod|networking|security|vpcsc)" + } + } + } + }, + "iam_bindings": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-z0-9_-]+$": { + "type": "object", + "additionalProperties": false, + "properties": { + "members": { + "type": "array", + "items": { + "type": "string", + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|project-factory|project-factory-dev|project-factory-prod|networking|security|vpcsc)" + } + }, + "role": { + "type": "string", + "pattern": "^(?:roles/|[a-z_]+)" + }, + "condition": { + "type": "object", + "additionalProperties": false, + "required": [ + "expression", + "title" + ], + "properties": { + "expression": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + } + }, + "iam_bindings_additive": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^[a-z0-9_-]+$": { + "type": "object", + "additionalProperties": false, + "properties": { + "member": { + "type": "string", + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|project-factory|project-factory-dev|project-factory-prod|networking|security|vpcsc)" + }, + "role": { + "type": "string", + "pattern": "^(?:roles/|[a-z_]+)" + }, + "condition": { + "type": "object", + "additionalProperties": false, + "required": [ + "expression", + "title" + ], + "properties": { + "expression": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + } + } + } + }, + "iam_by_principals": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:)": { + "type": "array", + "items": { + "type": "string", + "pattern": "^(?:roles/|[a-z_]+)" + } + } + } + } + } +} \ No newline at end of file diff --git a/fast/stages/1-resman/top-level-folders.tf b/fast/stages/1-resman/top-level-folders.tf index 2de5eed9e..d7feeb8c1 100644 --- a/fast/stages/1-resman/top-level-folders.tf +++ b/fast/stages/1-resman/top-level-folders.tf @@ -56,25 +56,52 @@ locals { }, var.top_level_folders ) + top_level_sa = { + for k, v in local.branch_service_accounts : + k => "serviceAccount:${v}" if v != null + } + top_level_tags = { + for k, v in try(local.tag_values, {}) : k => v.id + } } module "top-level-folder" { - source = "../../../modules/folder" - for_each = local.top_level_folders - parent = "organizations/${var.organization.id}" - name = each.value.name - contacts = each.value.contacts - firewall_policy = each.value.firewall_policy - logging_data_access = each.value.logging_data_access - logging_exclusions = each.value.logging_exclusions - logging_settings = each.value.logging_settings - logging_sinks = each.value.logging_sinks - iam = each.value.iam - iam_bindings = each.value.iam_bindings - iam_bindings_additive = each.value.iam_bindings_additive - iam_by_principals = each.value.iam_by_principals - org_policies = each.value.org_policies - tag_bindings = each.value.tag_bindings + source = "../../../modules/folder" + for_each = local.top_level_folders + parent = "organizations/${var.organization.id}" + name = each.value.name + contacts = each.value.contacts + firewall_policy = each.value.firewall_policy + logging_data_access = each.value.logging_data_access + logging_exclusions = each.value.logging_exclusions + logging_settings = each.value.logging_settings + logging_sinks = each.value.logging_sinks + iam = { + for role, members in each.value.iam : + lookup(var.custom_roles, role, role) => [ + for member in members : lookup(local.top_level_sa, member, member) + ] + } + iam_bindings = { + for k, v in each.value.iam_bindings : k => merge(v, { + member = lookup(local.top_level_sa, v.member, v.member) + role = lookup(var.custom_roles, v.role, v.role) + }) + } + iam_bindings_additive = { + for k, v in each.value.iam_bindings_additive : k => merge(v, { + member = lookup(local.top_level_sa, v.member, v.member) + role = lookup(var.custom_roles, v.role, v.role) + }) + } + # we don't replace here to avoid dynamic values in keys + iam_by_principals = each.value.iam_by_principals + org_policies = each.value.org_policies + tag_bindings = { + for k, v in each.value.tag_bindings : k => lookup( + local.top_level_tags, v, v + ) + } } module "top-level-sa" { diff --git a/fast/stages/1-resman/variables.tf b/fast/stages/1-resman/variables.tf index f9f39ea14..c111404f8 100644 --- a/fast/stages/1-resman/variables.tf +++ b/fast/stages/1-resman/variables.tf @@ -124,7 +124,7 @@ variable "factories_config" { type = object({ checklist_data = optional(string) org_policies = optional(string, "data/org-policies") - top_level_folders = optional(string) + top_level_folders = optional(string, "data/top-level-folders") }) nullable = false default = {} @@ -133,11 +133,10 @@ variable "factories_config" { variable "fast_features" { description = "Selective control for top-level FAST features." type = object({ - data_platform = optional(bool, false) - gke = optional(bool, false) - gcve = optional(bool, false) - project_factory = optional(bool, false) - sandbox = optional(bool, false) + data_platform = optional(bool, false) + gke = optional(bool, false) + gcve = optional(bool, false) + sandbox = optional(bool, false) }) default = {} nullable = false diff --git a/fast/stages/2-project-factory/README.md b/fast/stages/2-project-factory/README.md new file mode 100644 index 000000000..f1ab1d6e8 --- /dev/null +++ b/fast/stages/2-project-factory/README.md @@ -0,0 +1,357 @@ +# Project factory + + +- [Design overview and choices](#design-overview-and-choices) +- [How to run this stage](#how-to-run-this-stage) + - [Resource Management stage configuration](#resource-management-stage-configuration) + - [Factory configuration](#factory-configuration) + - [Stage provider and Terraform variables](#stage-provider-and-terraform-variables) +- [Managing folders and projects](#managing-folders-and-projects) + - [Folder and hierarchy management](#folder-and-hierarchy-management) + - [Folder parent-child relationship and variable substitutions](#folder-parent-child-relationship-and-variable-substitutions) + - [Project Creation](#project-creation) + - [Automation Resources for Projects](#automation-resources-for-projects) +- [Alternative patterns](#alternative-patterns) + - [Per-environment Factories](#per-environment-factories) +- [Files](#files) +- [Variables](#variables) +- [Outputs](#outputs) + + +The Project Factory stage allows simplified management of folder hierarchies and projects via YAML-based configuration files. Multiple project factories can coexist in the same landing zone, and different patterns can be implemented by pointing them at different configuration files. + +The pattern implemented here by default allows management of a teams (or business units, applications, etc.) hierarchy. Different patterns are possible, and this document also tries to provide some guidance on how to implement them. + +

+ Project factory teams pattern +

+ +## Design overview and choices + +The project factory is "primed" by the resource management stage via + +- a set of service accounts with different scopes +- one or more user-defined top-level folders where those service accounts operate + +This stage does not directly depend on other stage 2 like networking and security, but it can optionally leverage resources created there like Shared VPC host projects, which are used to define service projects. + +The project factory stage is a thin wrapper of the underlying [project-factory module](../../../modules/project-factory/), which in turn exposes the full interface of the [project](../../../modules/project/) and [folder](../../../modules/folder/) modules. + +## How to run this stage + +This stage is meant to be executed after the [bootstrap](../0-bootstrap/) and [resource management](../1-resman/) "foundational stages". As mentioned above it runs in parallel with other stage 2 and can leverage resources they create but does not depend on them. + +### Resource Management stage configuration + +The resource management stage already contains a sample "Teams" folder defined via YAML, which can be used as-is or modified to provide a top-level folder for the project factory. More folders can of course be added, and Terraform variables used instead of or in addition to YAML files in the resource management stage. + +This is the teams YAML in resource management, leveraging attribute substitutions from provided context for the project factory service account and tag value. + +```yaml +name: Teams +automation: + enable: false +iam: + "roles/owner": + - project-factory + "roles/resourcemanager.folderAdmin": + - project-factory + "roles/resourcemanager.projectCreator": + - project-factory + "roles/resourcemanager.tagUser": + - project-factory + "service_project_network_admin": + - project-factory +tag_bindings: + context: context/project-factory +``` + +This is the alternative version that can be used instead of the YAML file above. + +```tfvars +top_level_folders = { + # more top-level folders might be present here + teams = { + name = "Teams" + iam = { + "roles/owner" = ["project-factory"] + "roles/resourcemanager.folderAdmin" = ["project-factory"] + "roles/resourcemanager.projectCreator" = ["project-factory"] + "roles/resourcemanager.tagUser" = ["project-factory"] + "service_project_network_admin" = ["project-factory"] + } + tag_bindings = { + context = "context/project-factory" + } + } +} +# tftest skip +``` + +You can of course extend these snippets to grant additional roles to groups or other service accounts via the `iam`, `iam_by_principals`, and `iam_bindings` folder-level variables. + +The project factory tag binding on the folder allows management of organization policies in the Teams hierarchy. If this functionality is not needed, the tag binding can be safely omitted. + +### Factory configuration + +The `data` folder in this stage contains factory files that can be used as examples to implement the team-based design shown above. Before running `terraform apply` check the YAML files, as project names and other attributes will need basic editing to match your desired setup. + +### Stage provider and Terraform variables + +As all other FAST stages, the [mechanism](../0-bootstrap/README.md#output-files-and-cross-stage-variables) used to pass variable values and pre-built provider files from one stage to the next is also leveraged here. + +The commands to link or copy the provider and terraform variable files can be easily derived from the `stage-links.sh` script in the FAST root folder, passing it a single argument with the local output files folder (if configured) or the GCS output bucket in the automation project (derived from stage 0 outputs). The following examples demonstrate both cases, and the resulting commands that then need to be copy/pasted and run. + +```bash +../../../stage-links.sh ~/fast-config + +# copy and paste the following commands for '2-project-factory' + +ln -s ~/fast-config/providers/2-project-factory-providers.tf ./ +ln -s ~/fast-config/tfvars/0-globals.auto.tfvars.json ./ +ln -s ~/fast-config/tfvars/0-bootstrap.auto.tfvars.json ./ +ln -s ~/fast-config/tfvars/1-resman.auto.tfvars.json ./ +# optional but recommended +ln -s ~/fast-config/tfvars/2-networking.auto.tfvars.json ./ +ln -s ~/fast-config/tfvars/2-security.auto.tfvars.json ./ +``` + +```bash +../../../stage-links.sh gs://xxx-prod-iac-core-outputs-0 + +# copy and paste the following commands for '2-project-factory' + +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/providers/2-project-factory-providers.tf ./ +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./ +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./ +# optional but recommended +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/2-networking.auto.tfvars.json ./ +gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/2-security.auto.tfvars.json ./ +``` + +If you're not using FAST, refer to the [Variables](#variables) table at the bottom of this document for a full list of variables, their origin (e.g., a stage or specific to this one), and descriptions explaining their meaning. + +Besides the values above, the project factory is driven by YAML data files, with one file per project. Please refer to the underlying [project factory module](../../../modules/project-factory/) documentation for details on the format. + +Once the configuration is complete, run the project factory with: + +```bash +terraform init +terraform apply +``` + +## Managing folders and projects + +The YAML data files are self-explanatory and the included [schema files](./schemas/) provide a reliable framework to allow editing the sample data, or starting from scratch to implement a different pattern. This section lists some general considerations on how folder and project files work to help getting up to speed with operations. + +### Folder and hierarchy management + +The project factory manages its folder hierarchy via a filesystem tree, rooted in the path defined via the `factories_config.hierarchy_data` variable. + +Filesystem folders which contain a `_config.yaml` file are mapped to folders in the resource management hierarchy. Their YAML configuration files allow definining folder attributes like descriptive name, IAM bindings, organization policies, tag bindings. + +This is the simple filesystem hierarchy provided here as an example. + +```bash +hierarchy +├── team-a +│   ├── _config.yaml +│   ├── dev +│   │   └── _config.yaml +│   └── prod +│   └── _config.yaml +└── team-b + ├── _config.yaml + ├── dev + │   └── _config.yaml + └── prod + └── _config.yaml +``` + +The approach is intentionally explicit and repetitive in order to simplify operations: copy/pasting an existing set of folders (or an ad hoc template) and changing a few YAML variables allows to quickly define new sub-hierarchy branches. Mass editing via search and replace functionality allows sweeping changes across the whole hierarchy. + +Where inheritance is leveraged in the overall design config files can be deceptively simple: the following is the config file for the dev Team A folder in the provided example. + +```yaml +name: Development +tag_bindings: + environment: environment/development +iam_by_principals: + "group:team-a-admins@example.com": + - roles/editor +``` + +All of the [folder module](../../../modules/folder/) attributes can of course be leveraged in the configuration files. Refer to the [folder schema](./schemas/folder.schema.json) for the complete set of available attributes. + +### Folder parent-child relationship and variable substitutions + +In the example YAML configuration above there's no explicitly specified folder parent: it is derived from the filesystem hierarchy, and set to the "Team A" folder. + +But what about the "Team A" folder itself? From the point of view of the project factory it's a top-level folder attached to the root of its hierarchy (the "Teams" folder), so how does it know where to create it in the GCP hierarchy? + +There are three different ways to pass this information to the project factory: + +- in the YAML file itself, by explicitly setting the folder's `parent` attribute to the explicit numeric id of the "Teams" folder +- in the YAML file itself, by explicitly setting the folder's `parent` attribute to the short name of the "Teams" folder in the resource management stage's outputs +- in the stage Terraform variables, by setting the `default` folder for the project factory to the numeric id of the "Teams" folder + +This flexibility is what allows the project factory to manage folders under multiple roots, and to also be used for folders created outside of FAST. Imagine a scenario where there's no single "Teams" folder, but multiple ones for different subsidiaries, or for internal and external teams, etc. + +The snippets below show how to set the `parent` attribute explicitly or via substitution in the YAML file. + +```yaml +name: Team A +# use the explicit id of the Teams folder +parent: folders/1234567890 +``` + +```yaml +name: Team A +# use variable substitution from stage 1 tfvars (preferred approach) +parent: teams +``` + +The third way explained above does not explicitly define a root folder in the YAML files, but sets a default folder in the Terraform variables for the stage via the `factories_config.substitutions.folder_ids`, by adding a `default` key pointing to the folder id of the root ("Teams") folder. + +```tfvars +factories_config = { + substitutions = { + folder_ids = { + # id of the top-level Teams folder + # derived from the 1-resman.auto.tfvars.json file + default = "folders/12345678" + } + } +} +# tftest skip +``` + +### Project Creation + +Project YAML files can be created in two different filesystem paths: + +- in the filesystem folder defined via the `factories_config.project_data` variable, and then explicitly setting their `parent` attribute in YAML files, or +- in the filesystem hierarchy discussed above, so that their `parent` attribute is automatically derived from the containing folder + +The two approaches can be mixed and matched, but the first approach is safer as is avoids potentially dangerous situations when folders are deleted with project configuration files still inside. + +When specifying projects outside of the folder hierarchy, setting the parent folder works in pretty much the same way as discussed above, with substitutions available for any folder defined in the filesystem hierarchy. This allows writing portable files, by referring to short names instead of resource ids. + +```yaml +# use the explicit id of the parent folder +parent: folders/1234509876 +``` + +```yaml +# use variable substitution from managed folders (preferred approach) +parent: team-a/dev +``` + +All of the [project module](../../../modules/project/) attributes (and some service account attributes) can of course be leveraged in the configuration files. Refer to the [project schema](./schemas/folder.schema.json) for the complete set of available attributes. + +### Automation Resources for Projects + +When created projects are meant to be managed via IaC downstream, an initial set of automation resources can be created in a "controlling project". The preferred pattern is to first create one or more controlling projects for the project factory, and then leverage them for service account and GCS bucket creation. + +```yaml +# controlling project shown in the diagram above +parent: teams +name: xxx-prod-iac-teams-0 +services: + - compute.googleapis.com + - storage.googleapis.com + # ... + # enable all services used by service accounts in this project +``` + +Once a controlling project is in place, it can be used in any other project declaration to host service accounts and buckets for automation. The service accounts can be used in IAM bindings in the same file by referring to their name via substitutions, as shown here. + +```yaml +# team or application-level project with automation resources +parent: team-a/dev +# project prefix is forced via override in `main.tf` +name: dev-ta-app-0 +iam: + roles/owner: + # refer to the rw service account defined below + - rw + roles/viewer: + # refer to the ro service account defined below + - ro +automation: + # no context is possible here + # use the complete project id + project: xxx-prod-iac-teams-0 + service_accounts: + # resulting sa name: xxx-dev-ta-app-0-rw + rw: + description: Read/write automation sa for team a app 0. + # resulting sa name: xxx-dev-ta-app-0-ro + ro: + description: Read-only automation sa for team a app 0. + buckets: + # resulting bucket name: xxx-dev-ta-app-0-state + state: + description: Terraform state bucket for team a app 0. + iam: + # service accounts can use short name substitutions from context + roles/storage.objectCreator: + - rw + roles/storage.objectViewer: + - rw + - ro + - group:devops@example.org +``` + +## Alternative patterns + +Some alternative patterns are captured here, the list will grow as we generalize approaches seen in the field. + +### Per-environment Factories + +A variation of this pattern uses separate project factories for each environment, as in the following diagram. + +

+ Project factory team-level per environment. +

+ +This approach leverages the per-environment project factory service accounts and tags created by the resource management stage, so that + +- the Teams folder hierarchy and IaC project are managed by a cross-environment factory using the "main" project factory service account +- IAM permissions are set on the environment folders to grant control to the prod and dev project factory service accounts +- one additional factory per environment manages project creation leveraging the folders created above + +The approach is not shown here but reasonably easy to implement. The main project factory output file can also be used to set up folder id susbtitution in the per-environment factories. + + + +## Files + +| name | description | modules | +|---|---|---| +| [main.tf](./main.tf) | Project factory. | project-factory | +| [outputs.tf](./outputs.tf) | Module outputs. | | +| [variables-fast.tf](./variables-fast.tf) | None | | +| [variables.tf](./variables.tf) | Module variables. | | + +## Variables + +| name | description | type | required | default | producer | +|---|---|:---:|:---:|:---:|:---:| +| [billing_account](variables-fast.tf#L17) | Billing account id. If billing account is not part of the same org set `is_org_level` to false. | object({…}) | ✓ | | 0-bootstrap | +| [prefix](variables-fast.tf#L55) | Prefix used for resources that need unique names. Use a maximum of 9 chars for organizations, and 11 chars for tenants. | string | ✓ | | 0-bootstrap | +| [factories_config](variables.tf#L17) | Configuration for YAML-based factories. | object({…}) | | {} | | +| [folder_ids](variables-fast.tf#L30) | Folders created in the resource management stage. | map(string) | | {} | 1-resman | +| [groups](variables-fast.tf#L38) | Group names or IAM-format principals to grant organization-level permissions. If just the name is provided, the 'group:' principal and organization domain are interpolated. | map(string) | | {} | 0-bootstrap | +| [host_project_ids](variables-fast.tf#L47) | Host project for the shared VPC. | map(string) | | {} | 2-networking | +| [service_accounts](variables-fast.tf#L65) | Automation service accounts in name => email format. | map(string) | | {} | 1-resman | +| [tag_values](variables-fast.tf#L73) | FAST-managed resource manager tag values. | map(string) | | {} | 1-resman | + +## Outputs + +| name | description | sensitive | consumers | +|---|---|:---:|---| +| [projects](outputs.tf#L17) | Created projects. | | | +| [service_accounts](outputs.tf#L27) | Created service accounts. | | | + diff --git a/fast/stages/2-project-factory/data/hierarchy/team-a/_config.yaml b/fast/stages/2-project-factory/data/hierarchy/team-a/_config.yaml new file mode 100644 index 000000000..410d9e86f --- /dev/null +++ b/fast/stages/2-project-factory/data/hierarchy/team-a/_config.yaml @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../../schemas/folder.schema.json + +name: Team A +parent: teams +# iam_by_principals: +# "group:team-a-admins@example.com": +# - roles/viewer diff --git a/fast/stages/2-project-factory/data/hierarchy/team-a/dev/_config.yaml b/fast/stages/2-project-factory/data/hierarchy/team-a/dev/_config.yaml new file mode 100644 index 000000000..da77cb7f1 --- /dev/null +++ b/fast/stages/2-project-factory/data/hierarchy/team-a/dev/_config.yaml @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../../../schemas/folder.schema.json + +name: Development +tag_bindings: + environment: environment/development +# iam_by_principals: +# "group:team-a-admins@example.com": +# - roles/editor diff --git a/tests/fast/stages/s3_project_factory/simple.yaml b/fast/stages/2-project-factory/data/hierarchy/team-a/prod/_config.yaml similarity index 80% rename from tests/fast/stages/s3_project_factory/simple.yaml rename to fast/stages/2-project-factory/data/hierarchy/team-a/prod/_config.yaml index af751a985..a7079ab36 100644 --- a/tests/fast/stages/s3_project_factory/simple.yaml +++ b/fast/stages/2-project-factory/data/hierarchy/team-a/prod/_config.yaml @@ -12,9 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -counts: - google_project: 1 - google_project_service: 3 - google_storage_project_service_account: 1 - modules: 2 - resources: 6 +# yaml-language-server: $schema=../../../../schemas/folder.schema.json + +name: Production +tag_bindings: + environment: environment/production \ No newline at end of file diff --git a/fast/stages/2-project-factory/data/hierarchy/team-b/_config.yaml b/fast/stages/2-project-factory/data/hierarchy/team-b/_config.yaml new file mode 100644 index 000000000..80d5faa67 --- /dev/null +++ b/fast/stages/2-project-factory/data/hierarchy/team-b/_config.yaml @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../../schemas/folder.schema.json + +name: Team B +parent: teams +# iam_by_principals: +# "group:team-b-admins@example.com": +# - roles/viewer diff --git a/fast/stages/2-project-factory/data/hierarchy/team-b/dev/_config.yaml b/fast/stages/2-project-factory/data/hierarchy/team-b/dev/_config.yaml new file mode 100644 index 000000000..e50bb7308 --- /dev/null +++ b/fast/stages/2-project-factory/data/hierarchy/team-b/dev/_config.yaml @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../../../schemas/folder.schema.json + +name: Development +tag_bindings: + environment: environment/development +# iam_by_principals: +# "group:team-b-admins@example.com": +# - roles/editor diff --git a/fast/stages/3-project-factory/dev/data/projects/test-project.yaml b/fast/stages/2-project-factory/data/hierarchy/team-b/prod/_config.yaml similarity index 76% rename from fast/stages/3-project-factory/dev/data/projects/test-project.yaml rename to fast/stages/2-project-factory/data/hierarchy/team-b/prod/_config.yaml index dfe34e6cc..a7079ab36 100644 --- a/fast/stages/3-project-factory/dev/data/projects/test-project.yaml +++ b/fast/stages/2-project-factory/data/hierarchy/team-b/prod/_config.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,9 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -labels: - team: team-0 -parent: folders/1234567890 -services: -- compute.googleapis.com -- storage.googleapis.com +# yaml-language-server: $schema=../../../../schemas/folder.schema.json + +name: Production +tag_bindings: + environment: environment/production \ No newline at end of file diff --git a/tests/fast/stages/s3_project_factory/data/projects/project.yaml b/fast/stages/2-project-factory/data/projects/dev-ta-0.yaml similarity index 73% rename from tests/fast/stages/s3_project_factory/data/projects/project.yaml rename to fast/stages/2-project-factory/data/projects/dev-ta-0.yaml index 922b4044f..c285e790c 100644 --- a/tests/fast/stages/s3_project_factory/data/projects/project.yaml +++ b/fast/stages/2-project-factory/data/projects/dev-ta-0.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,8 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -parent: folders/012345678901 -services: - - storage.googleapis.com - - stackdriver.googleapis.com - - compute.googleapis.com +# yaml-language-server: $schema=../../schemas/project.schema.json + +parent: team-a/dev +shared_vpc_service_config: + host_project: dev-spoke-0 + network_users: + - gcp-devops \ No newline at end of file diff --git a/fast/stages/2-project-factory/data/projects/dev-tb-0.yaml b/fast/stages/2-project-factory/data/projects/dev-tb-0.yaml new file mode 100644 index 000000000..1dd414fac --- /dev/null +++ b/fast/stages/2-project-factory/data/projects/dev-tb-0.yaml @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../schemas/project.schema.json + +parent: team-b/dev +shared_vpc_service_config: + host_project: dev-spoke-0 + network_users: + - gcp-devops \ No newline at end of file diff --git a/fast/stages/2-project-factory/data/projects/prod-ta-0.yaml b/fast/stages/2-project-factory/data/projects/prod-ta-0.yaml new file mode 100644 index 000000000..1bc5c895e --- /dev/null +++ b/fast/stages/2-project-factory/data/projects/prod-ta-0.yaml @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../schemas/project.schema.json + +parent: team-a/prod +shared_vpc_service_config: + host_project: prod-spoke-0 + network_users: + - gcp-devops \ No newline at end of file diff --git a/fast/stages/2-project-factory/data/projects/prod-tb-0.yaml b/fast/stages/2-project-factory/data/projects/prod-tb-0.yaml new file mode 100644 index 000000000..ee1e12cc1 --- /dev/null +++ b/fast/stages/2-project-factory/data/projects/prod-tb-0.yaml @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# yaml-language-server: $schema=../../schemas/project.schema.json + +parent: team-b/prod +shared_vpc_service_config: + host_project: prod-spoke-0 + network_users: + - gcp-devops \ No newline at end of file diff --git a/fast/stages/2-project-factory/diagram-env.png b/fast/stages/2-project-factory/diagram-env.png new file mode 100644 index 0000000000000000000000000000000000000000..f7761028f3e66c6de49e1946b830277314106122 GIT binary patch literal 114130 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 z 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 literal 0 HcmV?d00001 diff --git a/fast/stages/2-project-factory/diagram.png b/fast/stages/2-project-factory/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b442808b823a10100b530a79faf212fc22348345 GIT binary patch literal 131666 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 OXsSJYtb|rD3;GZ3#VlU{ literal 0 HcmV?d00001 diff --git a/fast/stages/3-project-factory/dev/main.tf b/fast/stages/2-project-factory/main.tf similarity index 55% rename from fast/stages/3-project-factory/dev/main.tf rename to fast/stages/2-project-factory/main.tf index c0b0094ad..0ec6053d3 100644 --- a/fast/stages/3-project-factory/dev/main.tf +++ b/fast/stages/2-project-factory/main.tf @@ -17,23 +17,41 @@ # tfdoc:file:description Project factory. module "projects" { - source = "../../../../modules/project-factory" + source = "../../../modules/project-factory" data_defaults = { - billing_account = var.billing_account.id # more defaults are available, check the project factory variables + billing_account = var.billing_account.id } data_merges = { - labels = { - environment = "dev" - } services = [ "stackdriver.googleapis.com" ] } data_overrides = { - prefix = "${var.prefix}-dev" + prefix = var.prefix } - factories_config = var.factories_config + factories_config = merge(var.factories_config, { + context = { + folder_ids = merge( + { for k, v in var.folder_ids : k => v if v != null }, + var.factories_config.context.folder_ids + ) + iam_principals = merge( + { + for k, v in var.service_accounts : + k => "serviceAccount:${v}" if v != null + }, + var.groups, + var.factories_config.context.iam_principals + ) + tag_values = merge( + var.tag_values, + var.factories_config.context.tag_values + ) + vpc_host_projects = merge( + var.host_project_ids, + var.factories_config.context.vpc_host_projects + ) + } + }) } - - diff --git a/fast/stages/3-project-factory/dev/outputs.tf b/fast/stages/2-project-factory/outputs.tf similarity index 100% rename from fast/stages/3-project-factory/dev/outputs.tf rename to fast/stages/2-project-factory/outputs.tf diff --git a/fast/stages/2-project-factory/schemas/budget.schema.json b/fast/stages/2-project-factory/schemas/budget.schema.json new file mode 120000 index 000000000..cc5d28d4d --- /dev/null +++ b/fast/stages/2-project-factory/schemas/budget.schema.json @@ -0,0 +1 @@ +../../../../modules/billing-account/schemas/budget.schema.json \ No newline at end of file diff --git a/fast/stages/2-project-factory/schemas/folder.schema.json b/fast/stages/2-project-factory/schemas/folder.schema.json new file mode 120000 index 000000000..d58a2759b --- /dev/null +++ b/fast/stages/2-project-factory/schemas/folder.schema.json @@ -0,0 +1 @@ +../../../../modules/project-factory/schemas/folder.schema.json \ No newline at end of file diff --git a/fast/stages/2-project-factory/schemas/project.schema.json b/fast/stages/2-project-factory/schemas/project.schema.json new file mode 120000 index 000000000..11f161f17 --- /dev/null +++ b/fast/stages/2-project-factory/schemas/project.schema.json @@ -0,0 +1 @@ +../../../../modules/project-factory/schemas/project.schema.json \ No newline at end of file diff --git a/fast/stages/3-project-factory/dev/variables-fast.tf b/fast/stages/2-project-factory/variables-fast.tf similarity index 54% rename from fast/stages/3-project-factory/dev/variables-fast.tf rename to fast/stages/2-project-factory/variables-fast.tf index 0144aae29..9b4c11807 100644 --- a/fast/stages/3-project-factory/dev/variables-fast.tf +++ b/fast/stages/2-project-factory/variables-fast.tf @@ -27,6 +27,31 @@ variable "billing_account" { } } +variable "folder_ids" { + # tfdoc:variable:source 1-resman + description = "Folders created in the resource management stage." + type = map(string) + nullable = false + default = {} +} + +variable "groups" { + # tfdoc:variable:source 0-bootstrap + # https://cloud.google.com/docs/enterprise/setup-checklist + description = "Group names or IAM-format principals to grant organization-level permissions. If just the name is provided, the 'group:' principal and organization domain are interpolated." + type = map(string) + nullable = false + default = {} +} + +variable "host_project_ids" { + # tfdoc:variable:source 2-networking + description = "Host project for the shared VPC." + type = map(string) + nullable = false + default = {} +} + variable "prefix" { # tfdoc:variable:source 0-bootstrap description = "Prefix used for resources that need unique names. Use a maximum of 9 chars for organizations, and 11 chars for tenants." @@ -36,3 +61,19 @@ variable "prefix" { error_message = "Use a maximum of 9 chars for organizations, and 11 chars for tenants." } } + +variable "service_accounts" { + # tfdoc:variable:source 1-resman + description = "Automation service accounts in name => email format." + type = map(string) + nullable = false + default = {} +} + +variable "tag_values" { + # tfdoc:variable:source 1-resman + description = "FAST-managed resource manager tag values." + type = map(string) + nullable = false + default = {} +} diff --git a/fast/stages/3-project-factory/dev/variables.tf b/fast/stages/2-project-factory/variables.tf similarity index 59% rename from fast/stages/3-project-factory/dev/variables.tf rename to fast/stages/2-project-factory/variables.tf index f5eb18eb1..a0bc5d7fd 100644 --- a/fast/stages/3-project-factory/dev/variables.tf +++ b/fast/stages/2-project-factory/variables.tf @@ -15,18 +15,23 @@ */ variable "factories_config" { - description = "Path to folder with YAML resource description data files." + description = "Configuration for YAML-based factories." type = object({ - hierarchy = optional(object({ - folders_data_path = string - parent_ids = optional(map(string), {}) - })) - projects_data_path = optional(string) + folders_data_path = optional(string, "data/hierarchy") + projects_data_path = optional(string, "data/projects") budgets = optional(object({ billing_account = string - budgets_data_path = string + budgets_data_path = optional(string, "data/budgets") notification_channels = optional(map(any), {}) })) + context = optional(object({ + # TODO: add KMS keys + folder_ids = optional(map(string), {}) + iam_principals = optional(map(string), {}) + tag_values = optional(map(string), {}) + vpc_host_projects = optional(map(string), {}) + }), {}) }) nullable = false + default = {} } diff --git a/fast/stages/3-gke-multitenant/README.md b/fast/stages/3-gke-multitenant/README.md index 9f9d9498e..f5d73a490 100644 --- a/fast/stages/3-gke-multitenant/README.md +++ b/fast/stages/3-gke-multitenant/README.md @@ -2,7 +2,7 @@ This directory contains a stage that can be used to centralize management of GKE multinenant clusters. -The Terraform code follows the same general approach used for the [project factory](../3-project-factory/) and [data platform](../3-data-platform/) stages, where a "fat module" contains the stage code and is used by thin code wrappers that localize it for each environment or specialized configuration: +The Terraform code follows the same general approach used for the [project factory](../2-project-factory/) and [data platform](../3-data-platform/) stages, where a "fat module" contains the stage code and is used by thin code wrappers that localize it for each environment or specialized configuration: The [`dev` folder](./dev/) contains an example setup for a generic development environment, and can be used as-is or cloned to implement other environments, or more specialized setups diff --git a/fast/stages/3-project-factory/README.md b/fast/stages/3-project-factory/README.md deleted file mode 100644 index 3a1394116..000000000 --- a/fast/stages/3-project-factory/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Project factory - -The Project Factory (PF) builds on top of your foundations to create and set up projects (and related resources) to be used for your workloads. -It is organized in folders representing environments (e.g. "dev", "prod"), each implemented by a stand-alone terraform [resource factory](https://medium.com/google-cloud/resource-factories-a-descriptive-approach-to-terraform-581b3ebb59c). - -This directory contains a single project factory ([`dev/`](./dev/)) as an example - to implement multiple environments (e.g. "prod" and "dev") you'll need to copy the `dev` folder into one folder per environment, then customize each one following the instructions found in [`dev/README.md`](./dev/README.md). diff --git a/fast/stages/3-project-factory/dev/README.md b/fast/stages/3-project-factory/dev/README.md deleted file mode 100644 index 933e8ec18..000000000 --- a/fast/stages/3-project-factory/dev/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# Project factory - -The Project Factory (or PF) builds on top of your foundations to create and set up projects (and related resources) to be used for your workloads. -It is organized in folders representing environments (e.g., "dev", "prod"), each implemented by a stand-alone terraform [process factory](../../../../blueprints/factories/README.md). - -## Design overview and choices - -

- Project factory diagram -

- -A single factory creates projects in a well-defined context, according to your resource management structure. For example, in the diagram above, each Team is structured to have specific folders projects for a given environment, such as Production and Development, per the resource management structure configured in stage `01-resman`. - -Projects for each environment across different teams are created by dedicated service accounts, as exemplified in the diagram above. While there's no intrinsic limitation regarding where the project factory can create a projects, the IAM bindings for the service account effectively enforce boundaries (e.g., the production service account shouldn't be able to create or have any access to the development projects, and vice versa). - -The project factory stage lightly wraps the underlying [project-factory module](../../../../modules/project-factory/), including Shared VPC service project attachment, VPC SC perimeter membership, etc. - -## How to run this stage - -This stage is meant to be executed after "foundational stages" (i.e., stages [`00-bootstrap`](../../0-bootstrap), [`01-resman`](../../1-resman), 02-networking (either [Peering/VPN](../../2-networking-a-simple), [NVA (w/ optional BGP support)](../../2-networking-b-nva) and [`02-security`](../../2-security)) have been run. - -It's of course possible to run this stage in isolation, by making sure the architectural prerequisites are satisfied (e.g., networking), and that the Service Account running the stage is granted the appropriate roles. - -### Provider and Terraform variables - -As all other FAST stages, the [mechanism used to pass variable values and pre-built provider files from one stage to the next](../../0-bootstrap/README.md#output-files-and-cross-stage-variables) is also leveraged here. - -The commands to link or copy the provider and terraform variable files can be easily derived from the `stage-links.sh` script in the FAST root folder, passing it a single argument with the local output files folder (if configured) or the GCS output bucket in the automation project (derived from stage 0 outputs). The following examples demonstrate both cases, and the resulting commands that then need to be copy/pasted and run. - -```bash -../../../stage-links.sh ~/fast-config - -# copy and paste the following commands for '3-project-factory' - -ln -s ~/fast-config/providers/3-project-factory-providers.tf ./ -ln -s ~/fast-config/tfvars/0-globals.auto.tfvars.json ./ -ln -s ~/fast-config/tfvars/0-bootstrap.auto.tfvars.json ./ -ln -s ~/fast-config/tfvars/1-resman.auto.tfvars.json ./ -ln -s ~/fast-config/tfvars/2-networking.auto.tfvars.json ./ -ln -s ~/fast-config/tfvars/2-security.auto.tfvars.json ./ -``` - -```bash -../../../stage-links.sh gs://xxx-prod-iac-core-outputs-0 - -# copy and paste the following commands for '3-project-factory' - -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/providers/3-project-factory-providers.tf ./ -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/0-globals.auto.tfvars.json ./ -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/0-bootstrap.auto.tfvars.json ./ -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/1-resman.auto.tfvars.json ./ -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/2-networking.auto.tfvars.json ./ -gcloud storage cp gs://xxx-prod-iac-core-outputs-0/tfvars/2-security.auto.tfvars.json ./ -``` - -If you're not using FAST, refer to the [Variables](#variables) table at the bottom of this document for a full list of variables, their origin (e.g., a stage or specific to this one), and descriptions explaining their meaning. - -Besides the values above, the project factory is driven by YAML data files, with one file per project. Please refer to the underlying [project factory module](../../../../modules/project-factory/) documentation for details on the format. - -Once the configuration is complete, run the project factory with: - -```bash -terraform init -terraform apply -``` - - - -## Files - -| name | description | modules | -|---|---|---| -| [main.tf](./main.tf) | Project factory. | project-factory | -| [outputs.tf](./outputs.tf) | Module outputs. | | -| [variables-fast.tf](./variables-fast.tf) | None | | -| [variables.tf](./variables.tf) | Module variables. | | - -## Variables - -| name | description | type | required | default | producer | -|---|---|:---:|:---:|:---:|:---:| -| [billing_account](variables-fast.tf#L17) | Billing account id. If billing account is not part of the same org set `is_org_level` to false. | object({…}) | ✓ | | 0-bootstrap | -| [factories_config](variables.tf#L17) | Path to folder with YAML resource description data files. | object({…}) | ✓ | | | -| [prefix](variables-fast.tf#L30) | Prefix used for resources that need unique names. Use a maximum of 9 chars for organizations, and 11 chars for tenants. | string | ✓ | | 0-bootstrap | - -## Outputs - -| name | description | sensitive | consumers | -|---|---|:---:|---| -| [projects](outputs.tf#L17) | Created projects. | | | -| [service_accounts](outputs.tf#L27) | Created service accounts. | | | - diff --git a/fast/stages/3-project-factory/dev/diagram.png b/fast/stages/3-project-factory/dev/diagram.png deleted file mode 100644 index b942ea47d934695831b1838d41766db699e9b64b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57470 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Ν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 diff --git a/fast/stages/3-project-factory/dev/diagram.svg b/fast/stages/3-project-factory/dev/diagram.svg deleted file mode 100644 index d7821c607..000000000 --- a/fast/stages/3-project-factory/dev/diagram.svg +++ /dev/null @@ -1,1530 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/fast/stages/README.md b/fast/stages/README.md index 8f5800ed8..b05c0bfc8 100644 --- a/fast/stages/README.md +++ b/fast/stages/README.md @@ -42,12 +42,12 @@ Implemented as an [add-on stage 1](./1-tenant-factory/), with optional FAST comp - Networking ([Peering/VPN](2-networking-a-simple/README.md)/[NVA (w/ optional BGP support)](2-networking-b-nva/README.md)/[Separate environments](2-networking-c-separate-envs/README.md)) Manages centralized network resources in a separate stage, and is typically owned by the networking team. This stage implements a hub-and-spoke design, and includes connectivity via VPN to on-premises, and YAML-based factories for firewall rules (hierarchical and VPC-level) and subnets. It's currently available in four flavors: [spokes connected via VPC peering/VPN](2-networking-a-simple/README.md), [spokes connected via appliances (w/ optional BGP support)](2-networking-b-nva/README.md) and [separated network environments](2-networking-c-separate-envs/README.md).\ Exports: host project ids and numbers, vpc self links +- [Project Factory](./2-project-factory/) + YAML-based factory to create and configure application or team-level projects. Configuration includes VPC-level settings for Shared VPC, service-level configuration for CMEK encryption via centralized keys, and service account creation for workloads and applications. This stage can be cloned if an org-wide or dedicated per-environment factories are needed. ## Environment-level resources (3) - [Networking Security](./3-network-security/) Manages NGFW Enterprise deployment for the production and development environments. -- [Project Factory](./3-project-factory/) - YAML-based factory to create and configure application or team-level projects. Configuration includes VPC-level settings for Shared VPC, service-level configuration for CMEK encryption via centralized keys, and service account creation for workloads and applications. This stage can be cloned if an org-wide or dedicated per-environment factories are needed. - [Data Platform](3-data-platform/dev/) - [GKE Multitenant](3-gke-multitenant/dev/) - [Google Cloud VMware Engine](3-gcve/) diff --git a/fast/stages/diagrams.excalidraw.gz b/fast/stages/diagrams.excalidraw.gz index 676741f0a16152f4c691b7543618cc47e1b55f7a..5cf62be67147194c888669dc17aa3008ce2c685c 100644 GIT binary patch literal 82884 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℘2S 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 @@ -392,7 +439,7 @@ update_rules: | name | description | type | required | default | |---|---|:---:|:---:|:---:| -| [factories_config](variables.tf#L96) | Path to folder with YAML resource description data files. | object({…}) | ✓ | | +| [factories_config](variables.tf#L96) | Path to folder with YAML resource description data files. | object({…}) | ✓ | | | [data_defaults](variables.tf#L17) | Optional default values used when corresponding project data from files are missing. | object({…}) | | {} | | [data_merges](variables.tf#L52) | Optional values that will be merged with corresponding data from files. Combines with `data_defaults`, file data, and `data_overrides`. | object({…}) | | {} | | [data_overrides](variables.tf#L71) | Optional values that override corresponding data from files. Takes precedence over file data and `data_defaults`. | object({…}) | | {} | diff --git a/modules/project-factory/automation.tf b/modules/project-factory/automation.tf index 104739f72..b5ff81451 100644 --- a/modules/project-factory/automation.tf +++ b/modules/project-factory/automation.tf @@ -48,11 +48,11 @@ module "automation-buckets" { prefix = each.value.prefix name = "${each.value.project}-${each.value.name}" encryption_key = lookup(each.value, "encryption_key", null) - # try interpolating service accounts by key in principals iam = { for k, v in lookup(each.value, "iam", {}) : k => [ for vv in v : try( module.automation-service-accounts["${each.value.project}/${vv}"].iam_email, + var.factories_config.context.iam_principals[vv], vv ) ] @@ -62,6 +62,7 @@ module "automation-buckets" { members = [ for vv in v.members : try( module.automation-service-accounts["${each.value.project}/${vv}"].iam_email, + var.factories_config.context.iam_principals[vv], vv ) ] @@ -71,6 +72,7 @@ module "automation-buckets" { for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { member = try( module.automation-service-accounts["${each.value.project}/${v.member}"].iam_email, + var.factories_config.context.iam_principals[v.member], v.member ) }) @@ -96,9 +98,29 @@ module "automation-service-accounts" { "display_name", "Service account ${each.value.name} for ${each.value.project}." ) - iam = lookup(each.value, "iam", {}) - iam_bindings = lookup(each.value, "iam_bindings", {}) - iam_bindings_additive = lookup(each.value, "iam_bindings_additive", {}) + iam = { + for k, v in lookup(each.value, "iam", {}) : k => [ + for vv in v : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + } + iam_bindings = { + for k, v in lookup(each.value, "iam_bindings", {}) : k => merge(v, { + members = [ + for vv in v.members : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + }) + } + iam_bindings_additive = { + for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { + member = lookup( + var.factories_config.context.iam_principals, v.member, v.member + ) + }) + } iam_billing_roles = lookup(each.value, "iam_billing_roles", {}) iam_folder_roles = lookup(each.value, "iam_folder_roles", {}) iam_organization_roles = lookup(each.value, "iam_organization_roles", {}) diff --git a/modules/project-factory/factory-folders.tf b/modules/project-factory/factory-folders.tf index cd9537f4f..bc9fb812a 100644 --- a/modules/project-factory/factory-folders.tf +++ b/modules/project-factory/factory-folders.tf @@ -18,11 +18,11 @@ locals { _folders_path = try( - pathexpand(var.factories_config.hierarchy.folders_data_path), null + pathexpand(var.factories_config.folders_data_path), null ) _folders = { for f in local._hierarchy_files : dirname(f) => yamldecode(file( - "${coalesce(var.factories_config.hierarchy.folders_data_path, "-")}/${f}" + "${coalesce(var.factories_config.folders_data_path, "-")}/${f}" )) } _hierarchy_files = try( @@ -37,19 +37,8 @@ locals { }) } hierarchy = merge( - try(var.factories_config.hierarchy.parent_ids, {}), { for k, v in module.hierarchy-folder-lvl-1 : k => v.id }, { for k, v in module.hierarchy-folder-lvl-2 : k => v.id }, { for k, v in module.hierarchy-folder-lvl-3 : k => v.id }, ) } - -check "hierarchy-data" { - assert { - condition = ( - var.factories_config.hierarchy == null || - try(var.factories_config.hierarchy.parent_ids.default, null) != null - ) - error_message = "No default set for hierarchy parent ids." - } -} diff --git a/modules/project-factory/factory-projects.tf b/modules/project-factory/factory-projects.tf index 6c66f9066..17e1add5c 100644 --- a/modules/project-factory/factory-projects.tf +++ b/modules/project-factory/factory-projects.tf @@ -21,7 +21,7 @@ locals { { for f in try(fileset(local._folders_path, "**/*.yaml"), []) : basename(trimsuffix(f, ".yaml")) => merge( - { parent = dirname(f) }, + { parent = dirname(f) == "." ? "default" : dirname(f) }, yamldecode(file("${local._folders_path}/${f}")) ) if !endswith(f, "/_config.yaml") diff --git a/modules/project-factory/folders.tf b/modules/project-factory/folders.tf index a846ce273..77199b2d5 100644 --- a/modules/project-factory/folders.tf +++ b/modules/project-factory/folders.tf @@ -16,52 +16,135 @@ # tfdoc:file:description Folder hierarchy factory resources. +locals { + folder_parent_default = try( + var.factories_config.context.folder_ids.default, null + ) +} + module "hierarchy-folder-lvl-1" { source = "../folder" for_each = { for k, v in local.folders : k => v if v.level == 1 } parent = try( # allow the YAML data to set the parent for this level lookup( - var.factories_config.hierarchy.parent_ids, + var.factories_config.context.folder_ids, each.value.parent, - # use the value as is if it's not in the parents map each.value.parent ), # use the default value in the initial parents map - var.factories_config.hierarchy.parent_ids.default + local.folder_parent_default # fail if we don't have an explicit parent ) - name = each.value.name - iam = lookup(each.value, "iam", {}) - iam_bindings = lookup(each.value, "iam_bindings", {}) - iam_bindings_additive = lookup(each.value, "iam_bindings_additive", {}) - iam_by_principals = lookup(each.value, "iam_by_principals", {}) - org_policies = lookup(each.value, "org_policies", {}) - tag_bindings = lookup(each.value, "tag_bindings", {}) + name = each.value.name + iam = { + for k, v in lookup(each.value, "iam", {}) : k => [ + # don't interpolate automation service account to prevent cycles + for vv in v : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + } + iam_bindings = { + for k, v in lookup(each.value, "iam_bindings", {}) : k => merge(v, { + members = [ + # don't interpolate automation service account to prevent cycles + for vv in v.members : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + }) + } + iam_bindings_additive = { + for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { + # don't interpolate automation service account to prevent cycles + member = lookup( + var.factories_config.context.iam_principals, v.member, v.member + ) + }) + } + iam_by_principals = lookup(each.value, "iam_by_principals", {}) + org_policies = lookup(each.value, "org_policies", {}) + tag_bindings = { + for k, v in lookup(each.value, "tag_bindings", {}) : + k => lookup(var.factories_config.context.tag_values, v, v) + } } module "hierarchy-folder-lvl-2" { - source = "../folder" - for_each = { for k, v in local.folders : k => v if v.level == 2 } - parent = module.hierarchy-folder-lvl-1[each.value.parent_key].id - name = each.value.name - iam = lookup(each.value, "iam", {}) - iam_bindings = lookup(each.value, "iam_bindings", {}) - iam_bindings_additive = lookup(each.value, "iam_bindings_additive", {}) - iam_by_principals = lookup(each.value, "iam_by_principals", {}) - org_policies = lookup(each.value, "org_policies", {}) - tag_bindings = lookup(each.value, "tag_bindings", {}) + source = "../folder" + for_each = { for k, v in local.folders : k => v if v.level == 2 } + parent = module.hierarchy-folder-lvl-1[each.value.parent_key].id + name = each.value.name + iam = { + for k, v in lookup(each.value, "iam", {}) : k => [ + # don't interpolate automation service account to prevent cycles + for vv in v : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + } + iam_bindings = { + for k, v in lookup(each.value, "iam_bindings", {}) : k => merge(v, { + members = [ + # don't interpolate automation service account to prevent cycles + for vv in v.members : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + }) + } + iam_bindings_additive = { + for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { + # don't interpolate automation service account to prevent cycles + member = lookup( + var.factories_config.context.iam_principals, v.member, v.member + ) + }) + } + iam_by_principals = lookup(each.value, "iam_by_principals", {}) + org_policies = lookup(each.value, "org_policies", {}) + tag_bindings = { + for k, v in lookup(each.value, "tag_bindings", {}) : + k => lookup(var.factories_config.context.tag_values, v, v) + } } module "hierarchy-folder-lvl-3" { - source = "../folder" - for_each = { for k, v in local.folders : k => v if v.level == 3 } - parent = module.hierarchy-folder-lvl-2[each.value.parent_key].id - name = each.value.name - iam = lookup(each.value, "iam", {}) - iam_bindings = lookup(each.value, "iam_bindings", {}) - iam_bindings_additive = lookup(each.value, "iam_bindings_additive", {}) - iam_by_principals = lookup(each.value, "iam_by_principals", {}) - org_policies = lookup(each.value, "org_policies", {}) - tag_bindings = lookup(each.value, "tag_bindings", {}) + source = "../folder" + for_each = { for k, v in local.folders : k => v if v.level == 3 } + parent = module.hierarchy-folder-lvl-2[each.value.parent_key].id + name = each.value.name + iam = { + for k, v in lookup(each.value, "iam", {}) : k => [ + # don't interpolate automation service account to prevent cycles + for vv in v : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + } + iam_bindings = { + for k, v in lookup(each.value, "iam_bindings", {}) : k => merge(v, { + members = [ + # don't interpolate automation service account to prevent cycles + for vv in v.members : lookup( + var.factories_config.context.iam_principals, vv, vv + ) + ] + }) + } + iam_bindings_additive = { + for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { + # don't interpolate automation service account to prevent cycles + member = lookup( + var.factories_config.context.iam_principals, v.member, v.member + ) + }) + } + iam_by_principals = lookup(each.value, "iam_by_principals", {}) + org_policies = lookup(each.value, "org_policies", {}) + tag_bindings = { + for k, v in lookup(each.value, "tag_bindings", {}) : + k => lookup(var.factories_config.context.tag_values, v, v) + } } diff --git a/modules/project-factory/main.tf b/modules/project-factory/main.tf index d123aa548..c806a7593 100644 --- a/modules/project-factory/main.tf +++ b/modules/project-factory/main.tf @@ -16,13 +16,29 @@ # tfdoc:file:description Projects and billing budgets factory resources. +locals { + context = { + folder_ids = merge( + var.factories_config.context.folder_ids, + local.hierarchy + ) + iam_principals = merge( + var.factories_config.context.iam_principals, + { + for k, v in module.automation-service-accounts : + k => v.iam_email + } + ) + } +} + module "projects" { source = "../project" for_each = local.projects billing_account = each.value.billing_account name = each.key - parent = try( - lookup(local.hierarchy, each.value.parent, each.value.parent), null + parent = lookup( + local.context.folder_ids, each.value.parent, each.value.parent ) prefix = each.value.prefix auto_create_network = try(each.value.auto_create_network, false) @@ -33,11 +49,14 @@ module "projects" { ) default_service_account = try(each.value.default_service_account, "keep") descriptive_name = try(each.value.descriptive_name, null) - # IAM interpolates automation service accounts iam = { for k, v in lookup(each.value, "iam", {}) : k => [ for vv in v : try( - module.automation-service-accounts["${each.key}/${vv}"].iam_email, + # automation service account + local.context.iam_principals["${each.key}/${vv}"], + # other context + local.context.iam_principals[vv], + # passthrough vv ) ] @@ -46,7 +65,11 @@ module "projects" { for k, v in lookup(each.value, "iam_bindings", {}) : k => merge(v, { members = [ for vv in v.members : try( - module.automation-service-accounts["${each.key}/${vv}"].iam_email, + # automation service account + local.context.iam_principals["${each.key}/${vv}"], + # other context + local.context.iam_principals[vv], + # passthrough vv ) ] @@ -55,12 +78,16 @@ module "projects" { iam_bindings_additive = { for k, v in lookup(each.value, "iam_bindings_additive", {}) : k => merge(v, { member = try( - module.automation-service-accounts["${each.key}/${v.member}"].iam_email, + # automation service account + local.context.iam_principals["${each.key}/${v.member}"], + # other context + local.context.iam_principals[v.member], + # passthrough v.member ) }) } - # IAM principals would trigger dynamic key errors so we don't interpolate + # IAM by principals would trigger dynamic key errors so we don't interpolate iam_by_principals = try(each.value.iam_by_principals, {}) labels = merge( each.value.labels, var.data_merges.labels @@ -81,12 +108,27 @@ module "projects" { each.value.services, var.data_merges.services )) - shared_vpc_host_config = each.value.shared_vpc_host_config - shared_vpc_service_config = each.value.shared_vpc_service_config - tag_bindings = merge( - each.value.tag_bindings, - var.data_merges.tag_bindings + shared_vpc_host_config = each.value.shared_vpc_host_config + shared_vpc_service_config = ( + try(each.value.shared_vpc_service_config.host_project, null) == null + ? null + : merge(each.value.shared_vpc_service_config, { + host_project = lookup( + var.factories_config.context.vpc_host_projects, + each.value.shared_vpc_service_config.host_project, + each.value.shared_vpc_service_config.host_project + ) + network_users = [ + for v in try(each.value.shared_vpc_service_config.network_users, []) : + lookup(local.context.iam_principals, v, v) + ] + # TODO: network subnet users + }) ) + tag_bindings = { + for k, v in merge(each.value.tag_bindings, var.data_merges.tag_bindings) : + k => lookup(var.factories_config.context.tag_values, v, v) + } vpc_sc = each.value.vpc_sc } @@ -99,7 +141,10 @@ module "service-accounts" { name = each.value.name display_name = each.value.display_name iam_project_roles = merge( - each.value.iam_project_roles, + { + for k, v in each.value.iam_project_roles : + lookup(var.factories_config.context.vpc_host_projects, k, k) => v + }, each.value.iam_self_roles == null ? {} : { (module.projects[each.value.project].project_id) = each.value.iam_self_roles } diff --git a/modules/project-factory/schemas/folder.schema.json b/modules/project-factory/schemas/folder.schema.json index 85e80c2bd..99bbf727a 100644 --- a/modules/project-factory/schemas/folder.schema.json +++ b/modules/project-factory/schemas/folder.schema.json @@ -115,7 +115,7 @@ "type": "array", "items": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" } } } @@ -132,7 +132,7 @@ "type": "array", "items": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" } }, "role": { @@ -172,7 +172,7 @@ "properties": { "member": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" }, "role": { "type": "string", @@ -205,7 +205,7 @@ "type": "object", "additionalProperties": false, "patternProperties": { - "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)": { + "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])": { "type": "array", "items": { "type": "string", diff --git a/modules/project-factory/schemas/project.schema.json b/modules/project-factory/schemas/project.schema.json index c2d63cbf7..82a2aa16e 100644 --- a/modules/project-factory/schemas/project.schema.json +++ b/modules/project-factory/schemas/project.schema.json @@ -389,7 +389,7 @@ "type": "array", "items": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" } } } @@ -406,7 +406,7 @@ "type": "array", "items": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" } }, "role": { @@ -446,7 +446,7 @@ "properties": { "member": { "type": "string", - "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)" + "pattern": "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])" }, "role": { "type": "string", @@ -479,7 +479,7 @@ "type": "object", "additionalProperties": false, "patternProperties": { - "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|ro|rw)": { + "^(?:domain:|group:|serviceAccount:|user:|principal:|principalSet:|[a-z])": { "type": "array", "items": { "type": "string", @@ -561,4 +561,4 @@ } } } -} +} \ No newline at end of file diff --git a/modules/project-factory/variables.tf b/modules/project-factory/variables.tf index 538eb4995..6fc369a58 100644 --- a/modules/project-factory/variables.tf +++ b/modules/project-factory/variables.tf @@ -96,10 +96,7 @@ variable "data_overrides" { variable "factories_config" { description = "Path to folder with YAML resource description data files." type = object({ - hierarchy = optional(object({ - folders_data_path = string - parent_ids = optional(map(string), {}) - })) + folders_data_path = optional(string) projects_data_path = optional(string) budgets = optional(object({ billing_account = string @@ -107,6 +104,13 @@ variable "factories_config" { # TODO: allow defining notification channels via YAML files notification_channels = optional(map(any), {}) })) + context = optional(object({ + # TODO: add KMS keys + folder_ids = optional(map(string), {}) + iam_principals = optional(map(string), {}) + tag_values = optional(map(string), {}) + vpc_host_projects = optional(map(string), {}) + }), {}) }) nullable = false } diff --git a/tests/fast/stages/s1_resman/checklist.yaml b/tests/fast/stages/s1_resman/checklist.yaml index fc32e6aef..2a1c0e3f5 100644 --- a/tests/fast/stages/s1_resman/checklist.yaml +++ b/tests/fast/stages/s1_resman/checklist.yaml @@ -415,18 +415,19 @@ values: timeouts: null counts: - google_folder: 56 - google_folder_iam_binding: 71 - google_organization_iam_member: 7 - google_project_iam_member: 6 - google_service_account: 6 - google_service_account_iam_binding: 6 - google_storage_bucket: 3 - google_storage_bucket_iam_binding: 6 - google_storage_bucket_iam_member: 6 - google_storage_bucket_object: 7 - google_tags_tag_binding: 4 + google_folder: 57 + google_folder_iam_binding: 76 + google_organization_iam_member: 16 + google_project_iam_member: 12 + google_service_account: 12 + google_service_account_iam_binding: 12 + google_storage_bucket: 6 + google_storage_bucket_iam_binding: 12 + google_storage_bucket_iam_member: 12 + google_storage_bucket_object: 13 + google_tags_tag_binding: 5 google_tags_tag_key: 2 google_tags_tag_value: 9 - modules: 66 - resources: 189 + google_tags_tag_value_iam_binding: 2 + modules: 76 + resources: 246 diff --git a/tests/fast/stages/s1_resman/simple.yaml b/tests/fast/stages/s1_resman/simple.yaml index a757afcf6..25823e40d 100644 --- a/tests/fast/stages/s1_resman/simple.yaml +++ b/tests/fast/stages/s1_resman/simple.yaml @@ -12,19 +12,48 @@ # See the License for the specific language governing permissions and # limitations under the License. +values: + module.top-level-folder["teams"].google_folder.folder[0]: + display_name: Teams + parent: organizations/123456789012 + timeouts: null + ? module.top-level-folder["teams"].google_folder_iam_binding.authoritative["organizations/123456789012/roles/xpnServiceAdmin"] + : condition: [] + members: + - serviceAccount:fast2-resman-pf-0@fast-prod-automation.iam.gserviceaccount.com + role: organizations/123456789012/roles/xpnServiceAdmin + module.top-level-folder["teams"].google_folder_iam_binding.authoritative["roles/owner"]: + condition: [] + members: + - serviceAccount:fast2-resman-pf-0@fast-prod-automation.iam.gserviceaccount.com + role: roles/owner + module.top-level-folder["teams"].google_folder_iam_binding.authoritative["roles/resourcemanager.folderAdmin"]: + condition: [] + members: + - serviceAccount:fast2-resman-pf-0@fast-prod-automation.iam.gserviceaccount.com + role: roles/resourcemanager.folderAdmin + module.top-level-folder["teams"].google_folder_iam_binding.authoritative["roles/resourcemanager.projectCreator"]: + condition: [] + members: + - serviceAccount:fast2-resman-pf-0@fast-prod-automation.iam.gserviceaccount.com + role: roles/resourcemanager.projectCreator + module.top-level-folder["teams"].google_tags_tag_binding.binding["context"]: + timeouts: null + counts: - google_folder: 4 - google_folder_iam_binding: 25 - google_organization_iam_member: 7 - google_project_iam_member: 6 - google_service_account: 6 - google_service_account_iam_binding: 6 - google_storage_bucket: 3 - google_storage_bucket_iam_binding: 6 - google_storage_bucket_iam_member: 6 - google_storage_bucket_object: 7 - google_tags_tag_binding: 4 + google_folder: 5 + google_folder_iam_binding: 30 + google_organization_iam_member: 16 + google_project_iam_member: 12 + google_service_account: 12 + google_service_account_iam_binding: 12 + google_storage_bucket: 6 + google_storage_bucket_iam_binding: 12 + google_storage_bucket_iam_member: 12 + google_storage_bucket_object: 13 + google_tags_tag_binding: 5 google_tags_tag_key: 2 google_tags_tag_value: 9 - modules: 14 - resources: 91 + google_tags_tag_value_iam_binding: 2 + modules: 24 + resources: 148 diff --git a/tests/fast/stages/s2_project_factory/simple.tfvars b/tests/fast/stages/s2_project_factory/simple.tfvars new file mode 100644 index 000000000..29b537332 --- /dev/null +++ b/tests/fast/stages/s2_project_factory/simple.tfvars @@ -0,0 +1,13 @@ +prefix = "test" +billing_account = { + id = "000000-111111-222222" +} +folder_ids = { + teams = "folders/1234567890" +} +groups = { + gcp-devops = "group:gcp-devops@example.org" +} +tag_values = { + "environment/development" = "tagValues/1234567890" +} diff --git a/tests/fast/stages/s2_project_factory/simple.yaml b/tests/fast/stages/s2_project_factory/simple.yaml new file mode 100644 index 000000000..ac5f5dccc --- /dev/null +++ b/tests/fast/stages/s2_project_factory/simple.yaml @@ -0,0 +1,153 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +tests/fast/stages/s2_project_factory/tftest.yaml values: + module.projects.module.hierarchy-folder-lvl-1["team-a"].google_folder.folder[0]: + display_name: Team A + parent: folders/1234567890 + timeouts: null + module.projects.module.hierarchy-folder-lvl-1["team-b"].google_folder.folder[0]: + display_name: Team B + parent: folders/1234567890 + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-a/dev"].google_folder.folder[0]: + display_name: Development + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-a/dev"].google_tags_tag_binding.binding["environment"]: + tag_value: tagValues/1234567890 + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-a/prod"].google_folder.folder[0]: + display_name: Production + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-a/prod"].google_tags_tag_binding.binding["environment"]: + tag_value: environment/production + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-b/dev"].google_folder.folder[0]: + display_name: Development + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-b/dev"].google_tags_tag_binding.binding["environment"]: + tag_value: tagValues/1234567890 + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-b/prod"].google_folder.folder[0]: + display_name: Production + timeouts: null + module.projects.module.hierarchy-folder-lvl-2["team-b/prod"].google_tags_tag_binding.binding["environment"]: + tag_value: environment/production + timeouts: null + module.projects.module.projects["dev-ta-0"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: + deletion_policy: null + host_project: dev-net-spoke-0 + service_project: test-dev-ta-0 + timeouts: null + module.projects.module.projects["dev-ta-0"].google_project.project[0]: + auto_create_network: false + billing_account: 000000-111111-222222 + deletion_policy: DELETE + labels: null + name: test-dev-ta-0 + project_id: test-dev-ta-0 + timeouts: null + module.projects.module.projects["dev-ta-0"].google_project_iam_member.shared_vpc_host_iam["group:gcp-devops@example.org"]: + condition: [] + member: group:gcp-devops@example.org + project: dev-net-spoke-0 + role: roles/compute.networkUser + module.projects.module.projects["dev-ta-0"].google_project_service.project_services["stackdriver.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-dev-ta-0 + service: stackdriver.googleapis.com + timeouts: null + module.projects.module.projects["dev-tb-0"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: + deletion_policy: null + host_project: dev-net-spoke-0 + service_project: test-dev-tb-0 + timeouts: null + module.projects.module.projects["dev-tb-0"].google_project.project[0]: + auto_create_network: false + billing_account: 000000-111111-222222 + deletion_policy: DELETE + labels: null + name: test-dev-tb-0 + project_id: test-dev-tb-0 + timeouts: null + module.projects.module.projects["dev-tb-0"].google_project_iam_member.shared_vpc_host_iam["group:gcp-devops@example.org"]: + condition: [] + member: group:gcp-devops@example.org + project: dev-net-spoke-0 + role: roles/compute.networkUser + module.projects.module.projects["dev-tb-0"].google_project_service.project_services["stackdriver.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-dev-tb-0 + service: stackdriver.googleapis.com + timeouts: null + module.projects.module.projects["prod-ta-0"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: + deletion_policy: null + host_project: prod-net-spoke-0 + service_project: test-prod-ta-0 + timeouts: null + module.projects.module.projects["prod-ta-0"].google_project.project[0]: + auto_create_network: false + billing_account: 000000-111111-222222 + deletion_policy: DELETE + labels: null + name: test-prod-ta-0 + project_id: test-prod-ta-0 + timeouts: null + module.projects.module.projects["prod-ta-0"].google_project_iam_member.shared_vpc_host_iam["group:gcp-devops@example.org"]: + condition: [] + member: group:gcp-devops@example.org + project: prod-net-spoke-0 + role: roles/compute.networkUser + module.projects.module.projects["prod-ta-0"].google_project_service.project_services["stackdriver.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-prod-ta-0 + service: stackdriver.googleapis.com + timeouts: null + module.projects.module.projects["prod-tb-0"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: + deletion_policy: null + host_project: prod-net-spoke-0 + service_project: test-prod-tb-0 + timeouts: null + module.projects.module.projects["prod-tb-0"].google_project.project[0]: + auto_create_network: false + billing_account: 000000-111111-222222 + deletion_policy: DELETE + labels: null + name: test-prod-tb-0 + project_id: test-prod-tb-0 + timeouts: null + module.projects.module.projects["prod-tb-0"].google_project_iam_member.shared_vpc_host_iam["group:gcp-devops@example.org"]: + condition: [] + member: group:gcp-devops@example.org + project: prod-net-spoke-0 + role: roles/compute.networkUser + module.projects.module.projects["prod-tb-0"].google_project_service.project_services["stackdriver.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-prod-tb-0 + service: stackdriver.googleapis.com + timeouts: null + +counts: + google_compute_shared_vpc_service_project: 4 + google_folder: 6 + google_project: 4 + google_project_iam_member: 4 + google_project_service: 4 + google_tags_tag_binding: 4 + modules: 11 + resources: 26 diff --git a/tests/fast/stages/s3_project_factory/tftest.yaml b/tests/fast/stages/s2_project_factory/tftest.yaml similarity index 93% rename from tests/fast/stages/s3_project_factory/tftest.yaml rename to tests/fast/stages/s2_project_factory/tftest.yaml index 0ee0f70a0..470b47fbc 100644 --- a/tests/fast/stages/s3_project_factory/tftest.yaml +++ b/tests/fast/stages/s2_project_factory/tftest.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -module: fast/stages/3-project-factory/dev +module: fast/stages/2-project-factory tests: simple: diff --git a/tests/fast/stages/s3_project_factory/simple.tfvars b/tests/fast/stages/s3_project_factory/simple.tfvars deleted file mode 100644 index e2a4a2c09..000000000 --- a/tests/fast/stages/s3_project_factory/simple.tfvars +++ /dev/null @@ -1,10 +0,0 @@ -factories_config = { - projects_data_path = "../../../../tests/fast/stages/s3_project_factory/data/projects/" -} -prefix = "test" -billing_account = { - id = "000000-111111-222222" -} -vpc_self_links = { - dev-spoke-0 = "link" -} diff --git a/tests/modules/project_factory/examples/example.yaml b/tests/modules/project_factory/examples/example.yaml index 266cda152..788f85f0e 100644 --- a/tests/modules/project_factory/examples/example.yaml +++ b/tests/modules/project_factory/examples/example.yaml @@ -13,7 +13,7 @@ # limitations under the License. values: - module.project-factory.module.automation-buckets["prj-app-3/state"].google_storage_bucket.bucket: + module.project-factory.module.automation-buckets["dev-tb-app0-0/state"].google_storage_bucket.bucket: autoclass: - enabled: false cors: [] @@ -26,8 +26,8 @@ values: lifecycle_rule: [] location: EU logging: [] - name: test-pf-prj-app-3-state - project: bar-baz-iac-0 + name: test-pf-dev-tb-app0-0-state + project: test-pf-teams-iac-0 requester_pays: null retention_policy: [] storage_class: MULTI_REGIONAL @@ -35,35 +35,36 @@ values: uniform_bucket_level_access: true versioning: - enabled: false - ? module.project-factory.module.automation-buckets["prj-app-3/state"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectCreator"] - : bucket: test-pf-prj-app-3-state + ? module.project-factory.module.automation-buckets["dev-tb-app0-0/state"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectCreator"] + : bucket: test-pf-dev-tb-app0-0-state condition: [] members: - - serviceAccount:test-pf-prj-app-3-rw@bar-baz-iac-0.iam.gserviceaccount.com + - serviceAccount:test-pf-dev-tb-app0-0-rw@test-pf-teams-iac-0.iam.gserviceaccount.com role: roles/storage.objectCreator - ? module.project-factory.module.automation-buckets["prj-app-3/state"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectViewer"] - : bucket: test-pf-prj-app-3-state + ? module.project-factory.module.automation-buckets["dev-tb-app0-0/state"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectViewer"] + : bucket: test-pf-dev-tb-app0-0-state condition: [] members: - - group:devops@example.org - - serviceAccount:test-pf-prj-app-3-ro@bar-baz-iac-0.iam.gserviceaccount.com - - serviceAccount:test-pf-prj-app-3-rw@bar-baz-iac-0.iam.gserviceaccount.com + - group:gcp-devops@example.org + - group:team-b-admins@example.org + - serviceAccount:test-pf-dev-tb-app0-0-ro@test-pf-teams-iac-0.iam.gserviceaccount.com + - serviceAccount:test-pf-dev-tb-app0-0-rw@test-pf-teams-iac-0.iam.gserviceaccount.com role: roles/storage.objectViewer - module.project-factory.module.automation-service-accounts["prj-app-3/ro"].google_service_account.service_account[0]: - account_id: test-pf-prj-app-3-ro + module.project-factory.module.automation-service-accounts["dev-tb-app0-0/ro"].google_service_account.service_account[0]: + account_id: test-pf-dev-tb-app0-0-ro create_ignore_already_exists: null - description: Read-only automation sa for app example 0. + description: Team B app 0 read-only automation sa. disabled: false - display_name: Service account ro for prj-app-3. - project: bar-baz-iac-0 + display_name: Service account ro for dev-tb-app0-0. + project: test-pf-teams-iac-0 timeouts: null - module.project-factory.module.automation-service-accounts["prj-app-3/rw"].google_service_account.service_account[0]: - account_id: test-pf-prj-app-3-rw + module.project-factory.module.automation-service-accounts["dev-tb-app0-0/rw"].google_service_account.service_account[0]: + account_id: test-pf-dev-tb-app0-0-rw create_ignore_already_exists: null - description: Read/write automation sa for app example 0. + description: Team B app 0 read/write automation sa. disabled: false - display_name: Service account rw for prj-app-3. - project: bar-baz-iac-0 + display_name: Service account rw for dev-tb-app0-0. + project: test-pf-teams-iac-0 timeouts: null module.project-factory.module.billing-account[0].google_billing_budget.default["test-100"]: all_updates_rule: @@ -97,407 +98,298 @@ values: enabled: true force_delete: false labels: - email_address: gcp-billing-admins@example.com + email_address: gcp-billing-admins@example.org project: foo-billing-audit sensitive_labels: [] timeouts: null type: email user_labels: null - module.project-factory.module.hierarchy-folder-lvl-1["bar"].google_folder.folder[0]: - display_name: Bar (level 1) - parent: folders/4567890 + module.project-factory.module.hierarchy-folder-lvl-1["team-a"].google_folder.folder[0]: + display_name: Team A + parent: folders/5678901234 timeouts: null - module.project-factory.module.hierarchy-folder-lvl-1["foo"].google_folder.folder[0]: - display_name: Foo (level 1) - parent: folders/12345678 - timeouts: null - module.project-factory.module.hierarchy-folder-lvl-1["foo"].google_folder_iam_binding.authoritative["roles/viewer"]: + module.project-factory.module.hierarchy-folder-lvl-1["team-a"].google_folder_iam_binding.authoritative["roles/viewer"]: condition: [] members: - - group:a@example.com + - group:gcp-devops@example.org + - group:team-a-admins@example.org role: roles/viewer - module.project-factory.module.hierarchy-folder-lvl-2["bar/baz"].google_folder.folder[0]: - display_name: Bar Baz (level 2) + module.project-factory.module.hierarchy-folder-lvl-1["team-b"].google_folder.folder[0]: + display_name: Team B + parent: folders/5678901234 timeouts: null - module.project-factory.module.hierarchy-folder-lvl-2["foo/baz"].google_folder.folder[0]: - display_name: Foo Baz (level 2) + module.project-factory.module.hierarchy-folder-lvl-1["team-c"].google_folder.folder[0]: + display_name: Team C + parent: folders/5678901234 timeouts: null - module.project-factory.module.projects["bar-baz-iac-0"].data.google_storage_project_service_account.gcs_sa[0]: - project: test-pf-bar-baz-iac-0 + module.project-factory.module.hierarchy-folder-lvl-2["team-a/app-0"].google_folder.folder[0]: + display_name: App 0 + timeouts: null + module.project-factory.module.hierarchy-folder-lvl-2["team-b/app-0"].google_folder.folder[0]: + display_name: App 0 + timeouts: null + module.project-factory.module.hierarchy-folder-lvl-2["team-b/app-0"].google_tags_tag_binding.binding["drs-allow-all"]: + tag_value: tagValues/123456 + timeouts: null + module.project-factory.module.projects["dev-ta-app0-be"].data.google_storage_project_service_account.gcs_sa[0]: + project: test-pf-dev-ta-app0-be user_project: null - module.project-factory.module.projects["bar-baz-iac-0"].google_essential_contacts_contact.contact["admin@example.com"]: - email: admin@example.com + module.project-factory.module.projects["dev-ta-app0-be"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: + deletion_policy: null + host_project: test-pf-dev-net-spoke-0 + service_project: test-pf-dev-ta-app0-be + timeouts: null + module.project-factory.module.projects["dev-ta-app0-be"].google_essential_contacts_contact.contact["admin@example.org"]: + email: admin@example.org language_tag: en notification_category_subscriptions: - ALL - parent: projects/test-pf-bar-baz-iac-0 + parent: projects/test-pf-dev-ta-app0-be timeouts: null - module.project-factory.module.projects["bar-baz-iac-0"].google_project.project[0]: - auto_create_network: false - billing_account: 012345-67890A-BCDEF0 - deletion_policy: 'DELETE' - effective_labels: - environment: test - labels: - environment: test - name: test-pf-bar-baz-iac-0 - project_id: test-pf-bar-baz-iac-0 - terraform_labels: - environment: test - timeouts: null - module.project-factory.module.projects["bar-baz-iac-0"].google_project_iam_member.service_agents["container-engine-robot"]: - condition: [] - project: test-pf-bar-baz-iac-0 - role: roles/container.serviceAgent - module.project-factory.module.projects["bar-baz-iac-0"].google_project_iam_member.service_agents["gkenode"]: - condition: [] - project: test-pf-bar-baz-iac-0 - role: roles/container.nodeServiceAgent - ? module.project-factory.module.projects["bar-baz-iac-0"].google_project_service.project_services["container.googleapis.com"] - : disable_dependent_services: false - disable_on_destroy: false - project: test-pf-bar-baz-iac-0 - service: container.googleapis.com - timeouts: null - ? module.project-factory.module.projects["bar-baz-iac-0"].google_project_service.project_services["stackdriver.googleapis.com"] - : disable_dependent_services: false - disable_on_destroy: false - project: test-pf-bar-baz-iac-0 - service: stackdriver.googleapis.com - timeouts: null - module.project-factory.module.projects["bar-baz-iac-0"].google_project_service.project_services["storage.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-bar-baz-iac-0 - service: storage.googleapis.com - timeouts: null - ? module.project-factory.module.projects["bar-baz-iac-0"].google_project_service_identity.default["container.googleapis.com"] - : project: test-pf-bar-baz-iac-0 - service: container.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-1"].data.google_storage_project_service_account.gcs_sa[0]: - project: test-pf-prj-app-1 - user_project: null - module.project-factory.module.projects["prj-app-1"].google_essential_contacts_contact.contact["admin@example.com"]: - email: admin@example.com - language_tag: en - notification_category_subscriptions: - - ALL - parent: projects/test-pf-prj-app-1 - timeouts: null - ? module.project-factory.module.projects["prj-app-1"].google_kms_crypto_key_iam_member.service_agent_cmek["projects/kms-central-prj/locations/europe-west3/keyRings/my-keyring/cryptoKeys/europe3-gce.gs-project-accounts"] + ? module.project-factory.module.projects["dev-ta-app0-be"].google_kms_crypto_key_iam_member.service_agent_cmek["projects/kms-central-prj/locations/europe-west3/keyRings/my-keyring/cryptoKeys/europe3-gce.gs-project-accounts"] : condition: [] crypto_key_id: projects/kms-central-prj/locations/europe-west3/keyRings/my-keyring/cryptoKeys/europe3-gce role: roles/cloudkms.cryptoKeyEncrypterDecrypter - module.project-factory.module.projects["prj-app-1"].google_project.project[0]: + module.project-factory.module.projects["dev-ta-app0-be"].google_project.project[0]: auto_create_network: false billing_account: 012345-67890A-BCDEF0 - deletion_policy: 'DELETE' + deletion_policy: DELETE effective_labels: - app: app-1 + app: app-0 environment: test - team: foo - folder_id: '12345678' + team: team-a labels: - app: app-1 + app: app-0 environment: test - team: foo - name: test-pf-prj-app-1 - org_id: null - project_id: test-pf-prj-app-1 + team: team-a + name: test-pf-dev-ta-app0-be + project_id: test-pf-dev-ta-app0-be terraform_labels: - app: app-1 + app: app-0 environment: test - team: foo + team: team-a timeouts: null - module.project-factory.module.projects["prj-app-1"].google_project_iam_member.service_agents["container-engine-robot"]: - condition: [] - project: test-pf-prj-app-1 + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_iam_member.service_agents["container-engine-robot"] + : condition: [] + project: test-pf-dev-ta-app0-be role: roles/container.serviceAgent - module.project-factory.module.projects["prj-app-1"].google_project_iam_member.service_agents["gkenode"]: + module.project-factory.module.projects["dev-ta-app0-be"].google_project_iam_member.service_agents["gkenode"]: condition: [] - project: test-pf-prj-app-1 + project: test-pf-dev-ta-app0-be role: roles/container.nodeServiceAgent - module.project-factory.module.projects["prj-app-1"].google_project_service.project_services["container.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-prj-app-1 - service: container.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-1"].google_project_service.project_services["stackdriver.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-prj-app-1 - service: stackdriver.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-1"].google_project_service.project_services["storage.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-prj-app-1 - service: storage.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-1"].google_project_service_identity.default["container.googleapis.com"]: - project: test-pf-prj-app-1 - service: container.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-2"].data.google_storage_project_service_account.gcs_sa[0]: - project: test-pf-prj-app-2 - user_project: null - module.project-factory.module.projects["prj-app-2"].google_compute_shared_vpc_service_project.shared_vpc_service[0]: - deletion_policy: null - host_project: foo-host - service_project: test-pf-prj-app-2 - timeouts: null - ? module.project-factory.module.projects["prj-app-2"].google_compute_subnetwork_iam_member.shared_vpc_host_robots["europe-west1:prod-default-ew1:cloudservices"] + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_iam_member.shared_vpc_host_iam["group:gcp-devops@example.org"] : condition: [] - project: foo-host - region: europe-west1 + member: group:gcp-devops@example.org + project: test-pf-dev-net-spoke-0 role: roles/compute.networkUser - subnetwork: prod-default-ew1 - ? module.project-factory.module.projects["prj-app-2"].google_compute_subnetwork_iam_member.shared_vpc_host_robots["europe-west1:prod-default-ew1:container-engine"] + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_iam_member.shared_vpc_host_robots["roles/compute.networkUser:container-engine"] : condition: [] - project: foo-host - region: europe-west1 + project: test-pf-dev-net-spoke-0 role: roles/compute.networkUser - subnetwork: prod-default-ew1 - ? module.project-factory.module.projects["prj-app-2"].google_compute_subnetwork_iam_member.shared_vpc_host_subnets_iam["europe-west1:prod-default-ew1:group:team-1@example.com"] + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_iam_member.shared_vpc_host_robots["roles/container.hostServiceAgentUser:container-engine"] : condition: [] - member: group:team-1@example.com - project: foo-host - region: europe-west1 - role: roles/compute.networkUser - subnetwork: prod-default-ew1 - module.project-factory.module.projects["prj-app-2"].google_essential_contacts_contact.contact["admin@example.com"]: - email: admin@example.com - language_tag: en - notification_category_subscriptions: - - ALL - parent: projects/test-pf-prj-app-2 - timeouts: null - ? module.project-factory.module.projects["prj-app-2"].google_org_policy_policy.default["compute.restrictSharedVpcSubnetworks"] - : dry_run_spec: [] - name: projects/test-pf-prj-app-2/policies/compute.restrictSharedVpcSubnetworks - parent: projects/test-pf-prj-app-2 - spec: - - inherit_from_parent: null - reset: null - rules: - - allow_all: null - condition: [] - deny_all: null - enforce: null - values: - - allowed_values: - - projects/foo-host/regions/europe-west1/subnetworks/prod-default-ew1 - denied_values: null - timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project.project[0]: - auto_create_network: false - billing_account: 123456-123456-123456 - deletion_policy: 'DELETE' - effective_labels: - app: app-2 - environment: test - team: foo - folder_id: '12345678' - labels: - app: app-2 - environment: test - team: foo - name: test-pf-prj-app-2 - org_id: null - project_id: test-pf-prj-app-2 - terraform_labels: - app: app-2 - environment: test - team: foo - timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_iam_member.service_agents["compute-system"]: - condition: [] - project: test-pf-prj-app-2 - role: roles/compute.serviceAgent - module.project-factory.module.projects["prj-app-2"].google_project_iam_member.service_agents["container-engine-robot"]: - condition: [] - project: test-pf-prj-app-2 - role: roles/container.serviceAgent - module.project-factory.module.projects["prj-app-2"].google_project_iam_member.service_agents["gkenode"]: - condition: [] - project: test-pf-prj-app-2 - role: roles/container.nodeServiceAgent - module.project-factory.module.projects["prj-app-2"].google_project_iam_member.service_agents["serverless-robot-prod"]: - condition: [] - project: test-pf-prj-app-2 - role: roles/run.serviceAgent - ? module.project-factory.module.projects["prj-app-2"].google_project_iam_member.shared_vpc_host_robots["roles/container.hostServiceAgentUser:container-engine"] - : condition: [] - project: foo-host + project: test-pf-dev-net-spoke-0 role: roles/container.hostServiceAgentUser - ? module.project-factory.module.projects["prj-app-2"].google_project_iam_member.shared_vpc_host_robots["roles/vpcaccess.user:cloudrun"] - : condition: [] - project: foo-host - role: roles/vpcaccess.user - module.project-factory.module.projects["prj-app-2"].google_project_service.project_services["compute.googleapis.com"]: - disable_dependent_services: false + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_service.project_services["container.googleapis.com"] + : disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-2 - service: compute.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service.project_services["container.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-prj-app-2 + project: test-pf-dev-ta-app0-be service: container.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service.project_services["run.googleapis.com"]: - disable_dependent_services: false + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_service.project_services["stackdriver.googleapis.com"] + : disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-2 - service: run.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service.project_services["stackdriver.googleapis.com"]: - disable_dependent_services: false - disable_on_destroy: false - project: test-pf-prj-app-2 + project: test-pf-dev-ta-app0-be service: stackdriver.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service.project_services["storage.googleapis.com"]: + module.project-factory.module.projects["dev-ta-app0-be"].google_project_service.project_services["storage.googleapis.com"]: disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-2 + project: test-pf-dev-ta-app0-be service: storage.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service_identity.default["container.googleapis.com"]: - project: test-pf-prj-app-2 + ? module.project-factory.module.projects["dev-ta-app0-be"].google_project_service_identity.default["container.googleapis.com"] + : project: test-pf-dev-ta-app0-be service: container.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-2"].google_project_service_identity.default["run.googleapis.com"]: - project: test-pf-prj-app-2 - service: run.googleapis.com - timeouts: null - module.project-factory.module.projects["prj-app-3"].data.google_storage_project_service_account.gcs_sa[0]: - project: test-pf-prj-app-3 + module.project-factory.module.projects["dev-tb-app0-0"].data.google_storage_project_service_account.gcs_sa[0]: + project: test-pf-dev-tb-app0-0 user_project: null - module.project-factory.module.projects["prj-app-3"].google_compute_shared_vpc_host_project.shared_vpc_host[0]: - project: test-pf-prj-app-3 + module.project-factory.module.projects["dev-tb-app0-0"].google_compute_shared_vpc_host_project.shared_vpc_host[0]: + project: test-pf-dev-tb-app0-0 timeouts: null - module.project-factory.module.projects["prj-app-3"].google_essential_contacts_contact.contact["admin@example.com"]: - email: admin@example.com + module.project-factory.module.projects["dev-tb-app0-0"].google_essential_contacts_contact.contact["admin@example.org"]: + email: admin@example.org language_tag: en notification_category_subscriptions: - ALL - parent: projects/test-pf-prj-app-3 + parent: projects/test-pf-dev-tb-app0-0 timeouts: null - module.project-factory.module.projects["prj-app-3"].google_project.project[0]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project.project[0]: auto_create_network: false billing_account: 123456-123456-123456 - deletion_policy: 'DELETE' + deletion_policy: DELETE effective_labels: environment: test labels: environment: test - name: test-pf-prj-app-3 - project_id: test-pf-prj-app-3 + name: test-pf-dev-tb-app0-0 + project_id: test-pf-dev-tb-app0-0 terraform_labels: environment: test timeouts: null - module.project-factory.module.projects["prj-app-3"].google_project_iam_binding.authoritative["roles/owner"]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project_iam_binding.authoritative["roles/owner"]: condition: [] members: - - serviceAccount:test-pf-prj-app-3-rw@bar-baz-iac-0.iam.gserviceaccount.com - project: test-pf-prj-app-3 + - serviceAccount:test-pf-dev-tb-app0-0-rw@test-pf-teams-iac-0.iam.gserviceaccount.com + project: test-pf-dev-tb-app0-0 role: roles/owner - module.project-factory.module.projects["prj-app-3"].google_project_iam_binding.authoritative["roles/viewer"]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project_iam_binding.authoritative["roles/viewer"]: condition: [] members: - - serviceAccount:test-pf-prj-app-3-ro@bar-baz-iac-0.iam.gserviceaccount.com - project: test-pf-prj-app-3 + - serviceAccount:test-pf-dev-tb-app0-0-ro@test-pf-teams-iac-0.iam.gserviceaccount.com + project: test-pf-dev-tb-app0-0 role: roles/viewer - module.project-factory.module.projects["prj-app-3"].google_project_iam_member.service_agents["serverless-robot-prod"]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project_iam_member.service_agents["serverless-robot-prod"]: condition: [] - project: test-pf-prj-app-3 + project: test-pf-dev-tb-app0-0 role: roles/run.serviceAgent - module.project-factory.module.projects["prj-app-3"].google_project_service.project_services["run.googleapis.com"]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project_service.project_services["run.googleapis.com"]: disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-3 + project: test-pf-dev-tb-app0-0 service: run.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-3"].google_project_service.project_services["stackdriver.googleapis.com"]: - disable_dependent_services: false + ? module.project-factory.module.projects["dev-tb-app0-0"].google_project_service.project_services["stackdriver.googleapis.com"] + : disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-3 + project: test-pf-dev-tb-app0-0 service: stackdriver.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-3"].google_project_service.project_services["storage.googleapis.com"]: + module.project-factory.module.projects["dev-tb-app0-0"].google_project_service.project_services["storage.googleapis.com"]: disable_dependent_services: false disable_on_destroy: false - project: test-pf-prj-app-3 + project: test-pf-dev-tb-app0-0 service: storage.googleapis.com timeouts: null - module.project-factory.module.projects["prj-app-3"].google_project_service_identity.default["run.googleapis.com"]: - project: test-pf-prj-app-3 + module.project-factory.module.projects["dev-tb-app0-0"].google_project_service_identity.default["run.googleapis.com"]: + project: test-pf-dev-tb-app0-0 service: run.googleapis.com timeouts: null - ? module.project-factory.module.service-accounts["prj-app-1/app-1-be"].google_project_iam_member.project-roles["my-host-project-roles/compute.networkUser"] + module.project-factory.module.projects["teams-iac-0"].data.google_storage_project_service_account.gcs_sa[0]: + project: test-pf-teams-iac-0 + user_project: null + module.project-factory.module.projects["teams-iac-0"].google_essential_contacts_contact.contact["admin@example.org"]: + email: admin@example.org + language_tag: en + notification_category_subscriptions: + - ALL + parent: projects/test-pf-teams-iac-0 + timeouts: null + module.project-factory.module.projects["teams-iac-0"].google_project.project[0]: + auto_create_network: false + billing_account: 012345-67890A-BCDEF0 + deletion_policy: DELETE + effective_labels: + environment: test + folder_id: '5678901234' + labels: + environment: test + name: test-pf-teams-iac-0 + org_id: null + project_id: test-pf-teams-iac-0 + terraform_labels: + environment: test + timeouts: null + module.project-factory.module.projects["teams-iac-0"].google_project_iam_member.service_agents["container-engine-robot"]: + condition: [] + project: test-pf-teams-iac-0 + role: roles/container.serviceAgent + module.project-factory.module.projects["teams-iac-0"].google_project_iam_member.service_agents["gkenode"]: + condition: [] + project: test-pf-teams-iac-0 + role: roles/container.nodeServiceAgent + module.project-factory.module.projects["teams-iac-0"].google_project_service.project_services["container.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-pf-teams-iac-0 + service: container.googleapis.com + timeouts: null + ? module.project-factory.module.projects["teams-iac-0"].google_project_service.project_services["stackdriver.googleapis.com"] + : disable_dependent_services: false + disable_on_destroy: false + project: test-pf-teams-iac-0 + service: stackdriver.googleapis.com + timeouts: null + module.project-factory.module.projects["teams-iac-0"].google_project_service.project_services["storage.googleapis.com"]: + disable_dependent_services: false + disable_on_destroy: false + project: test-pf-teams-iac-0 + service: storage.googleapis.com + timeouts: null + module.project-factory.module.projects["teams-iac-0"].google_project_service_identity.default["container.googleapis.com"]: + project: test-pf-teams-iac-0 + service: container.googleapis.com + timeouts: null + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-be"].google_project_iam_member.project-roles["test-pf-dev-net-spoke-0-roles/compute.networkUser"] : condition: [] - project: my-host-project + project: test-pf-dev-net-spoke-0 role: roles/compute.networkUser - ? module.project-factory.module.service-accounts["prj-app-1/app-1-be"].google_project_iam_member.project-roles["test-pf-prj-app-1-roles/logging.logWriter"] + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-be"].google_project_iam_member.project-roles["test-pf-dev-ta-app0-be-roles/logging.logWriter"] : condition: [] - project: test-pf-prj-app-1 + project: test-pf-dev-ta-app0-be role: roles/logging.logWriter - ? module.project-factory.module.service-accounts["prj-app-1/app-1-be"].google_project_iam_member.project-roles["test-pf-prj-app-1-roles/monitoring.metricWriter"] + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-be"].google_project_iam_member.project-roles["test-pf-dev-ta-app0-be-roles/monitoring.metricWriter"] : condition: [] - project: test-pf-prj-app-1 + project: test-pf-dev-ta-app0-be role: roles/monitoring.metricWriter - module.project-factory.module.service-accounts["prj-app-1/app-1-be"].google_service_account.service_account[0]: - account_id: app-1-be + module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-be"].google_service_account.service_account[0]: + account_id: app-0-be create_ignore_already_exists: null description: null disabled: false - display_name: Terraform-managed. - project: test-pf-prj-app-1 + display_name: Backend instances. + project: test-pf-dev-ta-app0-be timeouts: null - ? module.project-factory.module.service-accounts["prj-app-1/app-1-fe"].google_project_iam_member.project-roles["my-host-project-roles/compute.networkUser"] + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-fe"].google_project_iam_member.project-roles["test-pf-dev-net-spoke-0-roles/compute.networkUser"] : condition: [] - project: my-host-project + project: test-pf-dev-net-spoke-0 role: roles/compute.networkUser - module.project-factory.module.service-accounts["prj-app-1/app-1-fe"].google_service_account.service_account[0]: - account_id: app-1-fe + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-fe"].google_project_iam_member.project-roles["test-pf-dev-ta-app0-be-roles/logging.logWriter"] + : condition: [] + project: test-pf-dev-ta-app0-be + role: roles/logging.logWriter + ? module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-fe"].google_project_iam_member.project-roles["test-pf-dev-ta-app0-be-roles/monitoring.metricWriter"] + : condition: [] + project: test-pf-dev-ta-app0-be + role: roles/monitoring.metricWriter + module.project-factory.module.service-accounts["dev-ta-app0-be/app-0-fe"].google_service_account.service_account[0]: + account_id: app-0-fe create_ignore_already_exists: null description: null disabled: false - display_name: Test app 1 frontend. - project: test-pf-prj-app-1 - timeouts: null - module.project-factory.module.service-accounts["prj-app-2/app-2-be"].google_service_account.service_account[0]: - account_id: app-2-be - create_ignore_already_exists: null - description: null - disabled: false - display_name: Terraform-managed. - project: test-pf-prj-app-2 + display_name: Frontend instances. + project: test-pf-dev-ta-app0-be timeouts: null counts: google_billing_budget: 1 google_compute_shared_vpc_host_project: 1 google_compute_shared_vpc_service_project: 1 - google_compute_subnetwork_iam_member: 3 - google_essential_contacts_contact: 4 - google_folder: 4 + google_essential_contacts_contact: 3 + google_folder: 5 google_folder_iam_binding: 1 google_kms_crypto_key_iam_member: 1 google_monitoring_notification_channel: 1 - google_org_policy_policy: 1 - google_project: 4 + google_project: 3 google_project_iam_binding: 2 - google_project_iam_member: 15 - google_project_service: 14 - google_project_service_identity: 5 - google_service_account: 5 + google_project_iam_member: 14 + google_project_service: 9 + google_project_service_identity: 3 + google_service_account: 4 google_storage_bucket: 1 google_storage_bucket_iam_binding: 2 - google_storage_project_service_account: 4 - modules: 16 - resources: 70 + google_storage_project_service_account: 3 + google_tags_tag_binding: 1 + modules: 15 + resources: 56