locals.firewall.tf (13 lines of code) (raw):
locals {
firewall_enabled = { for key, value in var.hub_virtual_networks : key => try(value.hub_virtual_network.firewall, null) != null }
firewall_policies = { for key, value in var.hub_virtual_networks : key => local.firewall_enabled[key] ? merge(value.hub_virtual_network.firewall.firewall_policy, {
dns = try(value.hub_virtual_network.firewall.firewall_policy.dns, local.firewall_policy_dns_defaults[key])
}) : null }
firewall_policy_dns_defaults = { for key, value in var.hub_virtual_networks : key => local.private_dns_zones_enabled[key] && local.firewall_enabled[key] ? {
proxy_enabled = true
servers = [local.private_dns_resolver_ip_addresses[key]]
} : null }
firewalls = { for key, value in var.hub_virtual_networks : key => local.firewall_enabled[key] ? merge(value.hub_virtual_network.firewall, {
firewall_policy = local.firewall_policies[key]
}) : null }
}