terraform { required_version = ">= 1.5.0" required_providers { aws = { source = "hashicorp/aws" version = ">= 5.0" } } } data "aws_ssm_parameter" "eks_ami_id" { name = "/aws/service/eks/optimized-ami/${var.cluster_version}/amazon-linux-2/recommended/image_id" } module "eks" { source = "terraform-aws-modules/eks/aws" version = "~> 20.0" cluster_name = var.cluster_name cluster_version = var.cluster_version cluster_endpoint_public_access = true cluster_endpoint_private_access = true enable_irsa = true vpc_id = var.vpc_id subnet_ids = var.private_subnet_ids control_plane_subnet_ids = var.private_subnet_ids cluster_addons = { coredns = { most_recent = true } kube-proxy = { most_recent = true } vpc-cni = { most_recent = true } aws-ebs-csi-driver = { most_recent = true } aws-efs-csi-driver = { most_recent = true } } eks_managed_node_group_defaults = { ami_id = data.aws_ssm_parameter.eks_ami_id.value enable_bootstrap_user_data = true } eks_managed_node_groups = { default = { min_size = var.node_min_size max_size = var.node_max_size desired_size = var.node_desired_size instance_types = [var.node_instance_type] capacity_type = "ON_DEMAND" update_config = { max_unavailable_percentage = var.node_max_unavailable_percentage } labels = { role = "general" } } } tags = var.tags }