# Variables # ===================== variable "images" { description = "Images definitions" type = any default = {} } variable "images_defaults" { description = "Images default definitions" type = map default = { pool = "default", } } # Resources # ===================== locals { images = flatten( [for dist_name, dist_config in var.images: { name = dist_name format = try(dist_config.format, "") file = try(dist_config.file, "${dist_name}.${dist_config.format}" , basename( dist_config.url )) url = dist_config.url pool = try(dist_config.pool, var.images_defaults.pool, "default") } ] ) } module "volumes" { source = "../virt_volumes" volumes = local.images volumes_defaults = var.images_defaults } # Outputs # ===================== output "images" { value = local.images } output "volumes" { value = module.volumes.volumes }