locals {
  apiserver_dns_zone_contract = {
    domain         = azurerm_private_dns_zone.apiserver.name
    resourceGroup  = azurerm_resource_group.rcp.name
    subscriptionID = var.pingcap_subscription_id
    tenantID       = var.pingcap_tenant_id
    clientID       = module.iam.dataplane_manager_client_id
  }
  gateway_dns_zone_contract = {
    domain         = azurerm_private_dns_zone.gateway.name
    resourceGroup  = azurerm_resource_group.rcp.name
    subscriptionID = var.pingcap_subscription_id
    tenantID       = var.pingcap_tenant_id
    clientID       = module.iam.dataplane_manager_client_id
  }
}

resource "azurerm_private_dns_zone" "apiserver" {
  name                = var.apiserver_zone_name
  resource_group_name = azurerm_resource_group.rcp.name
  tags                = local.tags
}

resource "azurerm_private_dns_zone" "gateway" {
  name                = var.gateway_zone_name
  resource_group_name = azurerm_resource_group.rcp.name
  tags                = local.tags
}

resource "azurerm_private_dns_zone_virtual_network_link" "apiserver_rcp" {
  name                  = "${var.cluster_name}-apiserver-link"
  resource_group_name   = azurerm_resource_group.rcp.name
  private_dns_zone_name = azurerm_private_dns_zone.apiserver.name
  virtual_network_id    = azurerm_virtual_network.rcp.id
  registration_enabled  = false
  tags                  = local.tags
}

resource "azurerm_private_dns_zone_virtual_network_link" "gateway_rcp" {
  name                  = "${var.cluster_name}-gateway-link"
  resource_group_name   = azurerm_resource_group.rcp.name
  private_dns_zone_name = azurerm_private_dns_zone.gateway.name
  virtual_network_id    = azurerm_virtual_network.rcp.id
  registration_enabled  = false
  tags                  = local.tags
}
