55 lines
930 B
HCL
55 lines
930 B
HCL
|
|
# 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
|
|
}
|