2023-10-18 12:00:20 -04:00

74 lines
1.3 KiB
HCL

# Variables
# =====================
variable "tenant" {
description = "Tenant informations"
type = any
default = {
prefix = ""
}
}
variable "networks" {
description = "Networks definitions"
type = any
default = {}
}
variable "networks_defaults" {
description = "Network default definitions"
type = any
default = {}
}
# Resources
# =====================
locals {
defaults = {
name_prefix = var.tenant.prefix
#interface_prefix = "vibr_${var.tenant.prefix}"
#interface_prefix = "vibr_"
interface_prefix = null
mode = "nat"
domain = "local"
gw4 = "192.168.100.1"
mask = "24"
nat_enable = false
vip = []
subnets = []
}
networks_defaults = merge(local.defaults, var.networks_defaults)
}
module "cloud_networks" {
source = "../../modules/virt_network"
for_each = { for k, v in var.networks : k => merge(local.networks_defaults, v) }
name = "${each.value.name_prefix}${each.key}"
bridge = each.value.interface_prefix == null ? "" : substr("${each.value.interface_prefix}${each.key}", 0 , 15)
mode = each.value.mode
domain = each.value.domain
gw4 = each.value.gw4
mask = each.value.mask
nat_enable = each.value.nat_enable
vip = each.value.vip
subnets = each.value.subnets
}
# Output
# =====================
output "networks" {
value = module.cloud_networks
}