82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HCL
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HCL
		
	
	
	
provider "aws" {}
 | 
						|
 | 
						|
data "aws_availability_zones" "available" {}
 | 
						|
 | 
						|
locals {
 | 
						|
  cluster_name = "arc-e2etests-eks-${random_string.suffix.result}"
 | 
						|
}
 | 
						|
 | 
						|
resource "random_string" "suffix" {
 | 
						|
  length  = 8
 | 
						|
  special = false
 | 
						|
}
 | 
						|
 | 
						|
module "vpc" {
 | 
						|
  source  = "terraform-aws-modules/vpc/aws"
 | 
						|
  version = "3.19.0"
 | 
						|
 | 
						|
  name = "arc-e2etests-vpc"
 | 
						|
 | 
						|
  cidr = "10.0.0.0/16"
 | 
						|
  azs  = slice(data.aws_availability_zones.available.names, 0, 3)
 | 
						|
 | 
						|
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
 | 
						|
  public_subnets  = ["10.0.4.0/24", "10.0.5.0/24", "10.0.6.0/24"]
 | 
						|
 | 
						|
  enable_nat_gateway   = true
 | 
						|
  single_nat_gateway   = true
 | 
						|
  enable_dns_hostnames = true
 | 
						|
 | 
						|
  public_subnet_tags = {
 | 
						|
    "kubernetes.io/cluster/${local.cluster_name}" = "shared"
 | 
						|
    "kubernetes.io/role/elb"                      = 1
 | 
						|
  }
 | 
						|
 | 
						|
  private_subnet_tags = {
 | 
						|
    "kubernetes.io/cluster/${local.cluster_name}" = "shared"
 | 
						|
    "kubernetes.io/role/internal-elb"             = 1
 | 
						|
  }
 | 
						|
 | 
						|
  tags = {
 | 
						|
    # Critical: GitHub specific tag
 | 
						|
    "catalog_service" = "actions-runner-controller"
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
module "eks" {
 | 
						|
  source  = "terraform-aws-modules/eks/aws"
 | 
						|
  version = "19.5.1"
 | 
						|
 | 
						|
  cluster_name    = local.cluster_name
 | 
						|
  cluster_version = "1.24"
 | 
						|
 | 
						|
  vpc_id                         = module.vpc.vpc_id
 | 
						|
  subnet_ids                     = module.vpc.private_subnets
 | 
						|
  cluster_endpoint_public_access = true
 | 
						|
 | 
						|
  tags = {
 | 
						|
    # Critical: GitHub specific tag
 | 
						|
    # If removed, EC2 instance creation will fail
 | 
						|
    "catalog_service" = "actions-runner-controller"
 | 
						|
  }
 | 
						|
 | 
						|
  eks_managed_node_group_defaults = {
 | 
						|
    ami_type = "AL2_x86_64"
 | 
						|
  }
 | 
						|
 | 
						|
  eks_managed_node_groups = {
 | 
						|
    default = {
 | 
						|
      use_custom_launch_template = false
 | 
						|
    }
 | 
						|
 | 
						|
    primary = {
 | 
						|
      name = "primary-node-group"
 | 
						|
 | 
						|
      instance_types = ["t3.small"]
 | 
						|
 | 
						|
      min_size     = 1
 | 
						|
      max_size     = 3
 | 
						|
      desired_size = 2
 | 
						|
    }
 | 
						|
  }
 | 
						|
} |