# Create an EKS managed node group attached to an existing EKS cluster
# Assumes the EKS cluster already exists and is referenced by name and the OIDC provider is set up if using IRSA

terraform {
  required_version = ">= 1.0.0"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = var.region
}

data "aws_eks_node_group" "reference-nodegroup" {
  cluster_name    = var.cluster_name
  node_group_name = var.reference_node_group_name
}

resource "aws_eks_node_group" "metrics-integration" {
  cluster_name    = var.cluster_name
  node_group_name = "metrics-integration"
  node_role_arn   = data.aws_eks_node_group.reference-nodegroup.node_role_arn
  subnet_ids      = data.aws_eks_node_group.reference-nodegroup.subnet_ids

  scaling_config {
    desired_size = 0
    min_size     = 0
    max_size     = 5
  }

  instance_types = ["m5.xlarge"]

  ami_type = "BOTTLEROCKET_x86_64"

  labels = {
    component = "metrics-integration"
  }

  taint {
    key    = "app"
    value  = "metrics-integration"
    effect = "NO_SCHEDULE"
  }

  lifecycle {
    create_before_destroy = true
  }
}

output "node_group_arn" {
  description = "ARN of the created node group"
  value       = aws_eks_node_group.metrics-integration.arn
}

