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 = ????
//여기서부터는 선택하는 워커노드 유형에 따라 달라질듯