locals.subnets.tf (39 lines of code) (raw):
locals {
bastion_subnets = { for key, value in var.hub_virtual_networks : key => {
bastion = {
hub_network_key = key
address_prefixes = [value.bastion.subnet_address_prefix]
name = "AzureBastionSubnet"
route_table = {
assign_generated_route_table = false
}
} } if local.bastions_enabled[key]
}
gateway_subnets = { for key, value in var.hub_virtual_networks : key => {
gateway = {
hub_network_key = key
address_prefixes = [value.virtual_network_gateways.subnet_address_prefix]
name = "GatewaySubnet"
route_table = {
assign_generated_route_table = false
}
} } if try(value.virtual_network_gateways, null) != null && (can(value.virtual_network_gateways.express_route) || can(value.virtual_network_gateways.vpn))
}
private_dns_resolver_subnets = { for key, value in var.hub_virtual_networks : key => {
dns_resolver = {
hub_network_key = key
address_prefixes = [value.private_dns_zones.subnet_address_prefix]
name = value.private_dns_zones.subnet_name
route_table = {
assign_generated_route_table = false
}
delegations = [{
name = "Microsoft.Network.dnsResolvers"
service_delegation = {
name = "Microsoft.Network/dnsResolvers"
}
}]
} } if local.private_dns_zones_enabled[key]
}
subnets = { for key, value in var.hub_virtual_networks : key => merge(lookup(local.private_dns_resolver_subnets, key, {}), lookup(local.bastion_subnets, key, {}), lookup(local.gateway_subnets, key, {})) }
}