locals.dns.tf (42 lines of code) (raw):

locals { private_dns_zones_enabled = { for key, value in var.hub_virtual_networks : key => try(value.private_dns_zones, null) != null } } locals { private_dns_resolver_ip_addresses = { for key, value in var.hub_virtual_networks : key => (value.private_dns_zones.private_dns_resolver.ip_address == null ? cidrhost(value.private_dns_zones.subnet_address_prefix, 4) : value.private_dns_zones.private_dns_resolver.ip_address) if local.private_dns_zones_enabled[key] } private_dns_zones = { for key, value in var.hub_virtual_networks : key => merge({ location = value.hub_virtual_network.location }, value.private_dns_zones) if local.private_dns_zones_enabled[key] } private_dns_zones_auto_registration = { for key, value in var.hub_virtual_networks : key => merge({ location = value.hub_virtual_network.location vnet_resource_id = module.hub_and_spoke_vnet.virtual_networks[key].id }, value.private_dns_zones) if local.private_dns_zones_enabled[key] && try(value.private_dns_zones.auto_registration_zone_enabled, false) } private_dns_zones_secondary_zones = { azure_data_explorer = { zone_name = "privatelink.{regionName}.kusto.windows.net" } azure_batch_account = { zone_name = "{regionName}.privatelink.batch.azure.com" } azure_batch_node_mgmt = { zone_name = "{regionName}.service.privatelink.batch.azure.com" } azure_aks_mgmt = { zone_name = "privatelink.{regionName}.azmk8s.io" } azure_acr_data = { zone_name = "{regionName}.data.privatelink.azurecr.io" } azure_backup = { zone_name = "privatelink.{regionCode}.backup.windowsazure.com" } } private_dns_zones_virtual_network_links = { for key, value in module.hub_and_spoke_vnet.virtual_networks : key => { vnet_resource_id = value.id } } }