Fix Project Name logic

This commit is contained in:
Lorenzo Caggioni 2022-02-08 17:46:34 +01:00
parent 042266f28c
commit e270adf516
9 changed files with 43 additions and 46 deletions

View File

@ -64,11 +64,11 @@ locals {
module "lnd-prj" {
source = "../../../modules/project"
name = var.project_id["landing"]
name = try(var.project_ids["landing"], "lnd")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["landing"])
prefix = can(var.project_ids["landing"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_lnd : {}
iam_additive = var.project_create == null ? local.iam_lnd : {}

View File

@ -52,11 +52,11 @@ locals {
module "lod-prj" {
source = "../../../modules/project"
name = var.project_id["load"]
name = try(var.project_ids["load"], "lod")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["load"])
prefix = can(var.project_ids["load"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_lod : {}
iam_additive = var.project_create == null ? local.iam_lod : {}

View File

@ -73,11 +73,11 @@ locals {
module "orc-prj" {
source = "../../../modules/project"
name = var.project_id["orchestration"]
name = try(var.project_ids["orchestration"], "orc")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["orchestration"])
prefix = can(var.project_ids["orchestration"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_orc : {}
iam_additive = var.project_create == null ? local.iam_orc : {}

View File

@ -47,11 +47,11 @@ locals {
module "trf-prj" {
source = "../../../modules/project"
name = var.project_id["trasformation"]
name = try(var.project_ids["trasformation"], "trf")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["trasformation"])
prefix = can(var.project_ids["trasformation"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_trf : {}
iam_additive = var.project_create == null ? local.iam_trf : {}

View File

@ -63,11 +63,11 @@ locals {
module "dtl-0-prj" {
source = "../../../modules/project"
name = var.project_id["datalake-l0"]
name = try(var.project_ids["datalake-l0"], "dtl-0")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["datalake-l0"])
prefix = can(var.project_ids["datalake-l0"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_dtl : {}
iam_additive = var.project_create == null ? local.iam_dtl : {}
@ -92,11 +92,11 @@ module "dtl-0-prj" {
module "dtl-1-prj" {
source = "../../../modules/project"
name = var.project_id["datalake-l1"]
name = try(var.project_ids["datalake-l1"], "dtl-1")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["datalake-l1"])
prefix = can(var.project_ids["datalake-l1"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_dtl : {}
iam_additive = var.project_create == null ? local.iam_dtl : {}
@ -121,11 +121,11 @@ module "dtl-1-prj" {
module "dtl-2-prj" {
source = "../../../modules/project"
name = var.project_id["datalake-l2"]
name = try(var.project_ids["datalake-l2"], "dtl-2")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["datalake-l2"])
prefix = can(var.project_ids["datalake-l2"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_dtl : {}
iam_additive = var.project_create == null ? local.iam_dtl : {}
@ -150,11 +150,11 @@ module "dtl-2-prj" {
module "dtl-plg-prj" {
source = "../../../modules/project"
name = var.project_id["datalake-playground"]
name = try(var.project_ids["datalake-playground"], "dtl-plg")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["datalake-playground"])
prefix = can(var.project_ids["datalake-playground"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_dtl : {}
iam_additive = var.project_create == null ? local.iam_dtl : {}

View File

@ -38,11 +38,11 @@ locals {
module "cmn-prj" {
source = "../../../modules/project"
name = var.project_id["common"]
name = try(var.project_ids["common"], "cmn")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["common"])
prefix = can(var.project_ids["common"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_cmn : {}
iam_additive = var.project_create == null ? local.iam_cmn : {}
@ -53,8 +53,7 @@ module "cmn-prj" {
])
}
# Uncomment this section and assigne key links accondingly in local. variable
# if you want to create KMS keys in the common projet
# To create KMS keys in the common projet: uncomment this section and assigne key links accondingly in local.service_encryption_keys variable
# module "cmn-kms-0" {
# source = "../../../modules/kms"

View File

@ -28,11 +28,11 @@ locals {
module "exp-prj" {
source = "../../../modules/project"
name = var.project_id["exposure"]
name = try(var.project_ids["exposure"], "exp")
parent = try(var.project_create.parent, null)
billing_account = try(var.project_create.billing_account_id, null)
project_create = var.project_create != null
prefix = var.project_create == null ? null : var.prefix
project_create = can(var.project_ids["exposure"])
prefix = can(var.project_ids["exposure"]) ? var.prefix : null
# additive IAM bindings avoid disrupting bindings in existing project
iam = var.project_create != null ? local.iam_exp : {}
iam_additive = var.project_create == null ? local.iam_exp : {}

View File

@ -17,24 +17,22 @@
locals {
_networks = {
load = {
network_name = element(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.lod-vpc[0].self_link), length(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.lod-vpc[0].self_link)) - 1)
network = var.network_config.network_self_link != null ? var.network_config.network_self_link : module.lod-vpc[0].self_link
subnet = var.network_config.network_self_link != null ? var.network_config.subnet_self_links.load : module.lod-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_lod}-subnet"]
network_name = coalesce(local._shared_vpc_network, module.lod-vpc[0].name)
network = coalesce(var.network_config.network_self_link, module.lod-vpc[0].self_link)
subnet = try(var.network_config.subnet_self_links.load, module.lod-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_lod}-subnet"])
}
orchestration = {
#TODO Fix Network name logic
network_name = element(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.orc-vpc[0].self_link), length(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.orc-vpc[0].self_link)) - 1)
network = var.network_config.network_self_link != null ? var.network_config.network_self_link : module.orc-vpc[0].self_link
subnet = var.network_config.network_self_link != null ? var.network_config.subnet_self_links.orchestration : module.orc-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_orc}-subnet"]
network_name = coalesce(local._shared_vpc_network, module.orc-vpc[0].name)
network = coalesce(var.network_config.network_self_link, module.orc-vpc[0].self_link)
subnet = try(var.network_config.subnet_self_links.orchestration, module.orc-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_orc}-subnet"])
}
transformation = {
#TODO Fix Network name logic
network_name = element(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.trf-vpc[0].self_link), length(split("/", var.network_config.network_self_link != null ? var.network_config.network_self_link : module.trf-vpc[0].self_link)) - 1)
network = var.network_config.network_self_link != null ? var.network_config.network_self_link : module.trf-vpc[0].self_link
subnet = var.network_config.network_self_link != null ? var.network_config.subnet_self_links.transformation : module.trf-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_trf}-subnet"]
network_name = coalesce(local._shared_vpc_network, module.trf-vpc[0].name)
network = coalesce(var.network_config.network_self_link, module.trf-vpc[0].self_link)
subnet = try(var.network_config.subnet_self_links.transformation, module.trf-vpc[0].subnet_self_links["${var.location_config.region}/${local.prefix_trf}-subnet"])
}
}
_shared_vpc_network = try(regex("[a-z]([-a-z0-9]*[a-z0-9])?$", var.network_config.network_self_link), null)
_shared_vpc_project = try(regex("projects/([a-z0-9-]{6,30})", var.network_config.network_self_link)[0], null)
_shared_vpc_service_config = var.network_config.network_self_link != null ? {
attach = true
@ -45,7 +43,7 @@ locals {
groups_iam = { for k, v in local.groups : k => "group:${v}" }
service_encryption_keys = var.service_encryption_keys
# Uncomment this section and assigne comment the previous line
# To create KMS keys in the common projet: uncomment assignement below and comment assignement above
# service_encryption_keys = {
# bq = module.sec-kms-1.key_ids.bq

View File

@ -93,7 +93,7 @@ variable "project_create" {
default = null
}
variable "project_id" {
variable "project_ids" {
description = "Project id, references existing project if `project_create` is null."
type = object({
landing = string