landingzone_ipsec/project/02-project.tf
2025-08-21 09:15:24 +00:00

81 lines
2 KiB
HCL

variable "projects_alpha" {
type = map(object({
name = string
owner_email = string
}))
default = {
project1 = {
name = "landingzone"
owner_email = "michael.sodan@stackit.cloud"
}
project2 = {
name = "core"
owner_email = "michael.sodan@stackit.cloud"
}
project3 = {
name = "backup"
owner_email = "michael.sodan@stackit.cloud"
}
project4 = {
name = "ske"
owner_email = "markus.brunsch@stackit.cloud"
}
}
}
variable "projects_beta" {
type = map(object({
name = string
owner_email = string
}))
default = {
project5 = {
name = "vpn"
owner_email = "michael.sodan@stackit.cloud"
}
project6 = {
name = "infra"
owner_email = "michael.sodan@stackit.cloud"
}
}
}
resource "stackit_resourcemanager_project" "projects_alpha" {
for_each = var.projects_alpha
parent_container_id = var.organization_id
name = each.value.name
owner_email = each.value.owner_email
labels = {
"networkArea" = stackit_network_area.sna_alpha.network_area_id
}
}
resource "stackit_resourcemanager_project" "projects_beta" {
for_each = var.projects_beta
parent_container_id = var.organization_id
name = each.value.name
owner_email = each.value.owner_email
labels = {
"networkArea" = stackit_network_area.sna_beta.network_area_id
}
}
output "project_info" {
description = "Combined information for all alpha and beta projects."
value = merge(
{
for k, project in stackit_resourcemanager_project.projects_alpha : k => {
project_id = project.project_id
container_id = project.container_id
}
},
{
for k, project in stackit_resourcemanager_project.projects_beta : k => {
project_id = project.project_id
container_id = project.container_id
}
}
)
}