modules/ai-foundry-core/dns.tf (197 lines of code) (raw):

// Conditional DNS Zone Creation resource "azurerm_private_dns_zone" "acr_dns_zone" { count = var.acr.deploy_acr_private_dns ? 1 : 0 name = "privatelink.azurecr.io" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } resource "azurerm_private_dns_zone_virtual_network_link" "acr_dns_zone_link" { count = var.acr.deploy_acr_private_dns ? 1 : 0 name = "${azurerm_private_dns_zone.acr_dns_zone[count.index].name}-link" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.acr_dns_zone[count.index].name virtual_network_id = var.vnet_id registration_enabled = false } resource "azurerm_private_dns_zone" "aml_private_dns" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "privatelink.api.azureml.ms" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } resource "azurerm_private_dns_zone" "notebook_private_dns" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "privatelink.notebooks.azure.net" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } /* resource "azurerm_private_dns_a_record" "acr_dns_a_record" { count = var.acr.deploy_acr_private_dns ? 1 : 0 name = azurerm_container_registry.acr.login_server zone_name = azurerm_private_dns_zone.acr_dns_zone[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.acr_private_endpoint[count.index].private_service_connection[0].private_ip_address] } resource "azurerm_private_dns_a_record" "workspace_fqdn" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "${azapi_resource.ai_hub.output.properties.workspaceId}.workspace.${var.location}" zone_name = azurerm_private_dns_zone.aml_private_dns[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_private_endpoint.custom_dns_configs[0].ip_addresses[0]] lifecycle { ignore_changes = [ name ] } } resource "azurerm_private_dns_a_record" "workspace_cert_fqdn" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "${azapi_resource.ai_hub.output.properties.workspaceId}.workspace.${var.location}.cert" zone_name = azurerm_private_dns_zone.aml_private_dns[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_private_endpoint.custom_dns_configs[0].ip_addresses[0]] lifecycle { ignore_changes = [ name ] } } resource "azurerm_private_dns_a_record" "models_fqdn" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "*.${azapi_resource.ai_hub.output.properties.workspaceId}.models.${var.location}" zone_name = azurerm_private_dns_zone.aml_private_dns[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_private_endpoint.custom_dns_configs[3].ip_addresses[0]] lifecycle { ignore_changes = [ name ] } } resource "azurerm_private_dns_a_record" "inference_fqdn" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "*.${azapi_resource.ai_hub.output.properties.workspaceId}.inference.${var.location}" zone_name = azurerm_private_dns_zone.aml_private_dns[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_private_endpoint.custom_dns_configs[2].ip_addresses[0]] lifecycle { ignore_changes = [ name ] } } resource "azurerm_private_dns_a_record" "notebook_fqdn" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "ml-aihub-oai-${var.location}-${azapi_resource.ai_hub.output.properties.workspaceId}.notebooks" zone_name = azurerm_private_dns_zone.notebook_private_dns[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_private_endpoint.custom_dns_configs[1].ip_addresses[0]] lifecycle { ignore_changes = [ name ] } } */ resource "azurerm_private_dns_zone_virtual_network_link" "aml_dns_link" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "dns-link-${azurerm_private_dns_zone.aml_private_dns[count.index].name}" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.aml_private_dns[count.index].name virtual_network_id =var.vnet_id registration_enabled = false } resource "azurerm_private_dns_zone_virtual_network_link" "notebook_dns_link" { count = var.ai_hub.deploy_private_dns ? 1 : 0 name = "dns-link-${azurerm_private_dns_zone.notebook_private_dns[count.index].name}" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.notebook_private_dns[count.index].name virtual_network_id =var.vnet_id registration_enabled = false } // Conditional DNS and Link Creation resource "azurerm_private_dns_zone" "key_vault_dns_zone" { count = var.key_vault.deploy_storage_private_dns ? 1 : 0 name = "privatelink.vaultcore.azure.net" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } resource "azurerm_private_dns_zone_virtual_network_link" "key_vault_dns_zone_link" { count = var.key_vault.deploy_storage_private_dns ? 1 : 0 name = "${azurerm_private_dns_zone.key_vault_dns_zone[count.index].name}-link" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.key_vault_dns_zone[count.index].name virtual_network_id = var.vnet_id registration_enabled = false } /* resource "azurerm_private_dns_a_record" "key_vault_dns_a_record" { count = var.key_vault.deploy_storage_private_dns ? 1 : 0 name = azurerm_key_vault.key_vault.name zone_name = azurerm_private_dns_zone.key_vault_dns_zone[count.index].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.key_vault_private_endpoint[count.index].private_service_connection[0].private_ip_address] depends_on = [azurerm_private_endpoint.key_vault_private_endpoint] } */ // Private DNS Zone for Blob resource "azurerm_private_dns_zone" "blob_dns_zone" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = "privatelink.blob.core.windows.net" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } // Private DNS Zone for File resource "azurerm_private_dns_zone" "file_dns_zone" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = "privatelink.file.core.windows.net" resource_group_name = data.azurerm_resource_group.ai_resource_group.name } // Associate Blob DNS Zone with VNet resource "azurerm_private_dns_zone_virtual_network_link" "blob_dns_zone_link" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = "blob-dns-zone-link" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.blob_dns_zone[0].name virtual_network_id = var.vnet_id } // Associate File DNS Zone with VNet resource "azurerm_private_dns_zone_virtual_network_link" "file_dns_zone_link" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = "file-dns-zone-link" resource_group_name = data.azurerm_resource_group.ai_resource_group.name private_dns_zone_name = azurerm_private_dns_zone.file_dns_zone[0].name virtual_network_id = var.vnet_id } /* // DNS A Record for App Deployment Storage Blob resource "azurerm_private_dns_a_record" "app_deploy_storage_blob_dns" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = azurerm_storage_account.app_deploy_storage.name zone_name = azurerm_private_dns_zone.blob_dns_zone[0].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.app_deploy_storage_private_endpoint.private_service_connection[0].private_ip_address] } // DNS A Record for Machine Learning Storage Blob resource "azurerm_private_dns_a_record" "ml_storage_blob_dns" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = azurerm_storage_account.ml_storage.name zone_name = azurerm_private_dns_zone.blob_dns_zone[0].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_blob_storage_private_endpoint.private_service_connection[0].private_ip_address] } // DNS A Record for Machine Learning Storage File resource "azurerm_private_dns_a_record" "ml_storage_file_dns" { count = var.storage.deploy_storage_private_dns ? 1 : 0 name = azurerm_storage_account.ml_storage.name zone_name = azurerm_private_dns_zone.file_dns_zone[0].name resource_group_name = data.azurerm_resource_group.ai_resource_group.name ttl = 300 records = [azurerm_private_endpoint.ml_file_storage_private_endpoint.private_service_connection[0].private_ip_address] } */