locals { dot_env_file_path = ".env" dot_env_regex = "(?m:^\\s*([^#\\s]\\S*)\\s*=\\s*[\"']?(.*[^\"'\\s])[\"']?\\s*$)" dot_env = { for tuple in regexall(local.dot_env_regex, file(local.dot_env_file_path)) : tuple[0] => sensitive(tuple[1]) } uri = local.dot_env["LIBVIRT_DEFAULT_URI"] cidrs = [ var.network_ipv4_cidr, var.network_ipv6_cidr, ] image_source = "${var.image_pool_folder}/${var.image_filename}" user_templates = merge( { node = "node.yaml.tpl" }, ) ipv4_prefix = tonumber(split("/", var.network_ipv4_cidr)[1]) ipv4_gateway = cidrhost(var.network_ipv4_cidr, 1) ipv6_prefix = tonumber(split("/", var.network_ipv6_cidr)[1]) ipv6_gateway = cidrhost(var.network_ipv6_cidr, 1) node_addrs = merge( { node = { ipv4 = var.node_ipv4, ipv6 = var.node_ipv6 } }, ) nodes = { for key, addr in local.node_addrs : key => { ipv4 = addr.ipv4 ipv6 = addr.ipv6 image = libvirt_volume.node_image.id user_data = data.template_file.user_data[key].rendered network_config = data.template_file.network_config[key].rendered } } }