✅ 설명

EKS resources on AWS.

✅ 필요 입력

type=eks_control

이름 타입 설명
name string
cluster_version string
endpoint_public bool true or false
endpoint_private bool true or false
node_type(fargate, managed) ??? 유저가 원하는 노드 타입을 선택 후 (fargate, managed_node, 혹은 둘 다)
거기에 맞는 입력 값을 data의 json으로 함께 넘겨 주시면 될 것 같아용.
ex) {”id”:”0”, “type”: “eks”, “parent”:”2”, “data”: {~~~, “fargate”:{”name”: “example-far”, “namespaces”: [”hi”,”default”], “managed”:{} }
만약 노드 타입으로 둘 다 선택했으면 둘 다 위와 같은 형식으로 넘겨주시면 될것 같아용. 만약 하나만 선택했으면 다른 하나를 빈 {}로 넘겨주시면 돼요
userarn string auth을 위한 userarn
username string auth를 위한 username
이름 타입 설명
min_size int
max_size int
desired_size int
disk_size int (GiB 단위)
instance_types list(string)
capacity_type string SPOT 또는 ON_DEMAND 중에 선택
이름 타입 설명
name string
namespaces list(string) selectors에서 사용할 namespace들
ex) default, kube-system,,

✅ 요구 사항

✅ 예시 코드

Control_plane

module "eks_control_plane" {
	source = "terraform-aws-modules/eks/aws"
	version = "~>19.0"
	
	cluster_name = "${var.eks_name}-control-plane"
	cluster_version = var.eks_cluster_version (string)
	
	cluster_endpoint_public_access = true

	cluster_addons = {
    coredns = {
      most_recent = true
			resolve_conflicts = "OVERWRITE"
    }
    kube-proxy = {}
		vpc-cni = {
			resolve_conflicts = "OVERWRITE"
		}
		vpc-cni = {
			most_recent = true
		}

		vpc_id = module.vpc.vpc_id (control vpc의 vpc를 가져올 방법을 생각해야..)
		control_plane_subnet_ids = ???(var)
		
  }

Worker_node (실제론 control plane과 같은 모듈 안에 정의)

module "eks_worker_nodes" {
	source = "terraform-aws-modules/eks/aws"
	version = "~> 19.0"
	
	cluster_name = "${var.eks_name}-worker-nodes"
	cluster_version = var.eks_version

	vpc_id = module.vpc.vpc_id (control vpc와 worker vpc의 모듈명이 달라야 하는데..)
	subnet_ids = ????

	//여기서부터는 선택하는 워커노드 유형에 따라 달라질듯