module "aks" {
  source = "../../../modules/aks"

  cluster_name                             = local.o11y_name
  cloud_region                             = data.azurerm_resource_group.o11y_aks.location
  resource_group_name                      = local.resource_group
  create_resource_group                    = false
  authorized_ip_ranges                     = var.aks.authorized_ip_ranges
  availability_zones                       = var.aks.availability_zones
  admin_group_object_ids                   = []
  azure_rbac_enabled                       = true
  acr_id_scope                             = var.customer_acr_resource_id
  control_plane_identity_id                = data.azurerm_user_assigned_identity.aks["control_plane"].id
  kubelet_identity_id                      = data.azurerm_user_assigned_identity.aks["kubelet"].id
  kubelet_identity_client_id               = data.azurerm_user_assigned_identity.aks["kubelet"].client_id
  kubelet_identity_object_id               = data.azurerm_user_assigned_identity.aks["kubelet"].principal_id
  create_role_assignments                  = false
  api_server_vnet_integration_enabled      = var.api_server_vnet_integration_enabled
  api_server_subnet_cidr                   = local.api_server_subnet_cidr
  manage_api_server_subnet_role_assignment = false
  nodepool_size                            = var.aks.nodepool_size
  nodepool_autoscaling_enabled             = var.aks.nodepool_autoscaling_enabled
  nodepool_min_size                        = var.aks.nodepool_min_size
  nodepool_max_size                        = var.aks.nodepool_max_size
  nodepool_labels                          = { node_type = "worker" }
  vm_size                                  = var.aks.vm_size
  k8s_version                              = var.aks.k8s_version
  vnet_id                                  = azurerm_virtual_network.o11y.id
  vnet_name                                = azurerm_virtual_network.o11y.name
  subnet_id                                = azurerm_subnet.aks_nodes.id
  subnet_name                              = azurerm_subnet.aks_nodes.name
  service_cidr                             = var.network.service_cidr
  dns_service_ip                           = var.network.dns_service_ip
  tags                                     = local.tags

  depends_on = [null_resource.o11y_aks_identity_prerequisites]
}

module "kubeconfig" {
  source     = "../../../modules/kubeconfig"
  kubeconfig = module.aks.kubeconfig
  path       = "/tmp/${local.o11y_name}-kubeconfig"

  depends_on = [module.aks]
}
