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

75 lines
1.2 KiB
HCL

# Variables
# ============
variable "tenant" {
description = "Tenant informations"
type = map
default = {
prefix = ""
}
}
variable "volumes" {
description = "List of volumes"
type = list(any)
default = []
}
variable "volumes_defaults" {
description = "Default settings for volumes"
type = map
default = {}
}
# Main
# ============
locals {
defaults = {
prefix = var.tenant.prefix
pool = "default",
pool_dir = "/virt",
size_gb = 10,
format = "qcow2"
persistant = false
base_pool = "default",
base_file = "",
url = ""
file = ""
}
volumes_defaults = merge(local.defaults, var.volumes_defaults)
}
module "cloud_volume" {
source = "../virt_volume"
for_each = { for v in var.volumes: v.name => merge(local.volumes_defaults, v) }
name = "${each.value.prefix}${each.value.name}"
pool = each.value.pool
size_gb = each.value.size_gb
format = each.value.format
persistant = each.value.persistant
base_pool = each.value.base_pool
base_file = each.value.base_file
url = each.value.url
file = each.value.file
}
# Output
# ============
output "volumes" {
value = module.cloud_volume
}