// Create an AKS node pool attached to an existing AKS cluster
// Assumes the AKS cluster already exists in the specified resource group

terraform {
  required_version = ">= 1.0.0"

  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "4.40.0"
    }
  }
}

provider "azurerm" {
  subscription_id = var.subscription_id
  features {}
}

data "azurerm_kubernetes_cluster" "cluster" {
  name                = var.cluster_name
  resource_group_name = var.resource_group_name
}

resource "azurerm_kubernetes_cluster_node_pool" "metrics_integration" {
  name                  = "metricsit"
  kubernetes_cluster_id = data.azurerm_kubernetes_cluster.cluster.id

  // VM size mapped from instance_types semantics
  vm_size = "Standard_D4s_v5"

  // Use autoscaler with the same semantics as scaling_config
  auto_scaling_enabled = true
  min_count            = 0
  max_count            = 6

  os_type = "Linux"
  os_sku  = "AzureLinux"

  node_labels = {
    component = "metrics-integration"
  }

  node_taints = ["app=metrics-integration:NoSchedule"]

  lifecycle {
    create_before_destroy = true
  }
}

output "node_pool_id" {
  description = "ID of the created AKS node pool"
  value       = azurerm_kubernetes_cluster_node_pool.metrics_integration.id
}
