vartest/main.tf (59 lines of code) (raw):
variable "cds" {
type = map(any)
default = {
cd1_key = {
name = "cd1name"
id = "cd1id"
}
cd2_key = {
name = "cd2name"
id = "cd2id"
}
}
}
variable "eps" {
type = map(any)
default = {
ep1_key = {
name = "ep1name"
id = "ep1id"
}
ep2_key = {
name = "ep2name"
id = "ep2id"
}
}
}
variable "routes" {
type = map(any)
default = {
route1_key = {
name = "route1"
id = "route1id"
firewall = {
association = {
endpoint_keys = ["ep1_key"]
domain_keys = ["cd1_key"]
}
}
}
route2_key = {
name = "route1"
id = "route1id"
firewall = {
association = {
endpoint_keys = ["ep1_key", "ep2_key"]
domain_keys = ["cd2_key"]
}
}
}
}
}
locals {
filtered_eps_cds = { for k, v in var.routes : k =>
concat([for item in try(v.firewall.association.endpoint_keys, []) : var.eps[item].id], [for item in try(v.firewall.association.domain_keys, []) : var.cds[item].id])
}
}
output "f" {
value = local.filtered_eps_cds
}