modules/terraform/gcp/main.tf (28 lines of code) (raw):
locals {
project_id = lookup(var.json_input, "project_id", null)
region = lookup(var.json_input, "region", "us-central1")
run_id = lookup(var.json_input, "run_id", "123456")
labels = {
"owner" = var.owner
"scenario" = "${var.scenario_type}-${var.scenario_name}"
"run_id" = local.run_id
}
network_config_map = { for network in var.network_config_list : network.role => network }
gke_config_map = { for gke_config in var.gke_config_list : gke_config.name => gke_config }
all_subnets = merge([for network in var.network_config_list : module.network[network.role].subnets]...)
}
module "network" {
source = "./network"
for_each = local.network_config_map
network_config = each.value
run_id = local.run_id
}
module "gke" {
source = "./gke"
for_each = local.gke_config_map
gke_config = each.value
subnet_id = try(local.all_subnets["${each.value.subnet_name}-${local.run_id}"], null)
vpc_id = try(module.network[each.value.role].vpc_id, null)
labels = local.labels
run_id = local.run_id
}