terraform-modules/project/main.tf

79 lines
2.9 KiB
HCL

resource "stackit_resourcemanager_project" "this" {
parent_container_id = var.organization_id
name = var.name
labels = var.labels
owner_email = var.owner_email
}
module "sg" {
source = "../security-group"
for_each = var.security_groups
project_id = stackit_resourcemanager_project.this.project_id
name = each.value.name
description = each.value.description
rules = each.value.rules
}
module "net" {
source = "../network"
for_each = var.networks
project_id = stackit_resourcemanager_project.this.project_id
name = each.value.name
ipv4_gateway = each.value.ipv4_gateway != null ? each.value.ipv4_gateway : null
ipv4_nameservers = each.value.ipv4_nameservers != [] ? each.value.ipv4_nameservers : []
ipv4_prefix = each.value.ipv4_prefix != null ? each.value.ipv4_prefix : null
ipv4_prefix_length = each.value.ipv4_prefix_length != null ? each.value.ipv4_prefix_length : null
ipv6_gateway = each.value.ipv6_gateway != null ? each.value.ipv6_gateway : null
ipv6_nameservers = each.value.ipv6_nameservers != [] ? each.value.ipv6_nameservers : []
ipv6_prefix = each.value.ipv6_prefix != null ? each.value.ipv6_prefix : null
ipv6_prefix_length = each.value.ipv6_prefix_length != null ? each.value.ipv6_prefix_length : null
labels = each.value.labels != {} ? each.value.labels : {}
no_ipv4_gateway = each.value.no_ipv4_gateway
no_ipv6_gateway = each.value.no_ipv6_gateway
routed = each.value.routed != null ? each.value.routed : true
nic_ipv4 = each.value.nic_ipv4
nic_name = each.value.nic_name != null ? each.value.nic_name : null
nic_allowed_addresses = each.value.nic_allowed_addresses
nic_labels = each.value.nic_labels != {} ? each.value.nic_labels : {}
nic_security = each.value.nic_security
nic_security_group_ids = each.value.nic_security_group_ids
}
module "pg" {
source = "../postgres"
for_each = var.postgres_instances
project_id = stackit_resourcemanager_project.this.project_id
name = each.value.name
ver = each.value.version
flavor = each.value.flavor
storage = each.value.storage
replicas = each.value.replicas
acl = each.value.acl
backup_schedule = each.value.backup_schedule
users = each.value.users
databases = each.value.databases
}
module "ske" {
source = "../ske"
for_each = var.ske_clusters
project_id = stackit_resourcemanager_project.this.project_id
name = each.value.name
kubernetes_version_min = each.value.kubernetes_version_min
node_pools = each.value.node_pools
}
module "obs" {
source = "../observability"
for_each = var.observability_instances
project_id = stackit_resourcemanager_project.this.project_id
name = each.value.name
plan_name = each.value.plan_name
}