From 2259f3f44cc4c9dafe67fb718fcc4890e3b686f2 Mon Sep 17 00:00:00 2001 From: Ludovico Magnocavallo Date: Fri, 18 Feb 2022 14:39:04 +0100 Subject: [PATCH] add support for optional project suffix --- .../data-platform-foundations/01-landing.tf | 2 +- .../data-solutions/data-platform-foundations/02-load.tf | 2 +- .../data-platform-foundations/03-orchestration.tf | 2 +- .../data-platform-foundations/04-transformation.tf | 2 +- .../data-platform-foundations/05-datalake.tf | 8 ++++---- .../data-platform-foundations/07-exposure.tf | 2 +- .../data-solutions/data-platform-foundations/README.md | 3 ++- examples/data-solutions/data-platform-foundations/main.tf | 1 + .../data-solutions/data-platform-foundations/variables.tf | 6 ++++++ 9 files changed, 18 insertions(+), 10 deletions(-) diff --git a/examples/data-solutions/data-platform-foundations/01-landing.tf b/examples/data-solutions/data-platform-foundations/01-landing.tf index fa5278032..49f32aff9 100644 --- a/examples/data-solutions/data-platform-foundations/01-landing.tf +++ b/examples/data-solutions/data-platform-foundations/01-landing.tf @@ -25,7 +25,7 @@ module "land-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "lnd" + name = "lnd${local.project_suffix}" group_iam = { (local.groups.data-engineers) = [ "roles/bigquery.dataEditor", diff --git a/examples/data-solutions/data-platform-foundations/02-load.tf b/examples/data-solutions/data-platform-foundations/02-load.tf index 7d7392f9a..8fdbe2153 100644 --- a/examples/data-solutions/data-platform-foundations/02-load.tf +++ b/examples/data-solutions/data-platform-foundations/02-load.tf @@ -38,7 +38,7 @@ module "load-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "lod" + name = "lod${local.project_suffix}" group_iam = { (local.groups.data-engineers) = [ "roles/compute.viewer", diff --git a/examples/data-solutions/data-platform-foundations/03-orchestration.tf b/examples/data-solutions/data-platform-foundations/03-orchestration.tf index d8b9254e0..137d4e93b 100644 --- a/examples/data-solutions/data-platform-foundations/03-orchestration.tf +++ b/examples/data-solutions/data-platform-foundations/03-orchestration.tf @@ -32,7 +32,7 @@ module "orch-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "orc" + name = "orc${local.project_suffix}" group_iam = { (local.groups.data-engineers) = [ "roles/bigquery.dataEditor", diff --git a/examples/data-solutions/data-platform-foundations/04-transformation.tf b/examples/data-solutions/data-platform-foundations/04-transformation.tf index 66780c766..6f2aacad3 100644 --- a/examples/data-solutions/data-platform-foundations/04-transformation.tf +++ b/examples/data-solutions/data-platform-foundations/04-transformation.tf @@ -32,7 +32,7 @@ module "transf-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "trf" + name = "trf${local.project_suffix}" group_iam = { (local.groups.data-engineers) = [ "roles/bigquery.jobUser", diff --git a/examples/data-solutions/data-platform-foundations/05-datalake.tf b/examples/data-solutions/data-platform-foundations/05-datalake.tf index 86f5edf6a..64ec1b242 100644 --- a/examples/data-solutions/data-platform-foundations/05-datalake.tf +++ b/examples/data-solutions/data-platform-foundations/05-datalake.tf @@ -92,7 +92,7 @@ module "lake-0-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "dtl-0" + name = "dtl-0${local.project_suffix}" group_iam = local.lake_group_iam iam = local.lake_0_iam services = local.lake_services @@ -107,7 +107,7 @@ module "lake-1-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "dtl-1" + name = "dtl-1${local.project_suffix}" group_iam = local.lake_group_iam iam = local.lake_iam services = local.lake_services @@ -122,7 +122,7 @@ module "lake-2-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "dtl-2" + name = "dtl-2${local.project_suffix}" group_iam = local.lake_group_iam iam = local.lake_iam services = local.lake_services @@ -137,7 +137,7 @@ module "lake-plg-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "dtl-plg" + name = "dtl-plg${local.project_suffix}" group_iam = local.lake_plg_group_iam iam = {} services = local.lake_services diff --git a/examples/data-solutions/data-platform-foundations/07-exposure.tf b/examples/data-solutions/data-platform-foundations/07-exposure.tf index 8fa819f6c..030be0b83 100644 --- a/examples/data-solutions/data-platform-foundations/07-exposure.tf +++ b/examples/data-solutions/data-platform-foundations/07-exposure.tf @@ -19,5 +19,5 @@ module "exp-project" { parent = var.folder_id billing_account = var.billing_account_id prefix = var.prefix - name = "exp" + name = "exp${local.project_suffix}" } diff --git a/examples/data-solutions/data-platform-foundations/README.md b/examples/data-solutions/data-platform-foundations/README.md index 90ed73fee..645dc27c6 100644 --- a/examples/data-solutions/data-platform-foundations/README.md +++ b/examples/data-solutions/data-platform-foundations/README.md @@ -234,7 +234,8 @@ Description of commands: | [location](variables.tf#L47) | Location used for multi-regional resources. | string | | "eu" | | [network_config](variables.tf#L63) | Shared VPC network configurations to use. If null networks will be created in projects with preconfigured values. | object({…}) | | null | | [project_services](variables.tf#L96) | List of core services enabled on all projects. | list(string) | | […] | -| [region](variables.tf#L107) | Region used for regional resources. | string | | "europe-west1" | +| [project_suffix](variables.tf#L107) | Suffix used only for project ids. | string | | null | +| [region](variables.tf#L113) | Region used for regional resources. | string | | "europe-west1" | ## Outputs diff --git a/examples/data-solutions/data-platform-foundations/main.tf b/examples/data-solutions/data-platform-foundations/main.tf index f8a801b25..536dc0b5f 100644 --- a/examples/data-solutions/data-platform-foundations/main.tf +++ b/examples/data-solutions/data-platform-foundations/main.tf @@ -35,6 +35,7 @@ locals { groups_iam = { for k, v in local.groups : k => "group:${v}" } + project_suffix = var.project_suffix == null ? "" : "-${var.project_suffix}" service_encryption_keys = var.service_encryption_keys shared_vpc_project = try(var.network_config.host_project, null) # this is needed so that for_each only uses static values diff --git a/examples/data-solutions/data-platform-foundations/variables.tf b/examples/data-solutions/data-platform-foundations/variables.tf index f403243a6..037471dfd 100644 --- a/examples/data-solutions/data-platform-foundations/variables.tf +++ b/examples/data-solutions/data-platform-foundations/variables.tf @@ -104,6 +104,12 @@ variable "project_services" { ] } +variable "project_suffix" { + description = "Suffix used only for project ids." + type = string + default = null +} + variable "region" { description = "Region used for regional resources." type = string