| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- resource "aws_eks_cluster" "this" {
- name = var.name
- role_arn = aws_iam_role.cluster.arn
- version = var.kubernetes_version
- access_config {
- authentication_mode = "API_AND_CONFIG_MAP"
- bootstrap_cluster_creator_admin_permissions = true
- }
- vpc_config {
- endpoint_private_access = var.cluster_endpoint_private_access
- endpoint_public_access = var.cluster_endpoint_public_access
- public_access_cidrs = var.cluster_public_access_cidrs
- subnet_ids = local.private_subnet_ids
- }
- depends_on = [
- aws_iam_role_policy_attachment.cluster_policy
- ]
- tags = local.common_tags
- }
- resource "aws_eks_node_group" "default" {
- cluster_name = aws_eks_cluster.this.name
- node_group_name = "${var.name}-default"
- node_role_arn = aws_iam_role.node.arn
- subnet_ids = local.private_subnet_ids
- version = var.kubernetes_version
- disk_size = var.node_disk_size
- capacity_type = var.node_capacity_type
- instance_types = var.node_instance_types
- scaling_config {
- desired_size = var.node_desired_size
- min_size = var.node_min_size
- max_size = var.node_max_size
- }
- update_config {
- max_unavailable = 1
- }
- depends_on = [
- aws_iam_role_policy_attachment.node_worker_policy,
- aws_iam_role_policy_attachment.node_cni_policy,
- aws_iam_role_policy_attachment.node_ecr_policy
- ]
- tags = local.common_tags
- }
- resource "aws_eks_access_entry" "cluster_admins" {
- for_each = toset(var.cluster_admin_principal_arns)
- cluster_name = aws_eks_cluster.this.name
- principal_arn = each.value
- type = "STANDARD"
- tags = local.common_tags
- }
- resource "aws_eks_access_policy_association" "cluster_admins" {
- for_each = aws_eks_access_entry.cluster_admins
- cluster_name = aws_eks_cluster.this.name
- principal_arn = each.value.principal_arn
- policy_arn = "arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"
- access_scope {
- type = "cluster"
- }
- }
- resource "aws_eks_access_entry" "node_role" {
- cluster_name = aws_eks_cluster.this.name
- principal_arn = aws_iam_role.node.arn
- type = "EC2_LINUX"
- tags = local.common_tags
- }
- resource "aws_eks_addon" "coredns" {
- cluster_name = aws_eks_cluster.this.name
- addon_name = "coredns"
- addon_version = var.coredns_addon_version
- resolve_conflicts_on_create = "OVERWRITE"
- resolve_conflicts_on_update = "OVERWRITE"
- depends_on = [aws_eks_node_group.default]
- tags = local.common_tags
- }
- resource "aws_eks_addon" "kube_proxy" {
- cluster_name = aws_eks_cluster.this.name
- addon_name = "kube-proxy"
- addon_version = var.kube_proxy_addon_version
- resolve_conflicts_on_create = "OVERWRITE"
- resolve_conflicts_on_update = "OVERWRITE"
- depends_on = [aws_eks_node_group.default]
- tags = local.common_tags
- }
- resource "aws_eks_addon" "vpc_cni" {
- cluster_name = aws_eks_cluster.this.name
- addon_name = "vpc-cni"
- addon_version = var.vpc_cni_addon_version
- resolve_conflicts_on_create = "OVERWRITE"
- resolve_conflicts_on_update = "OVERWRITE"
- depends_on = [aws_eks_node_group.default]
- tags = local.common_tags
- }
- resource "aws_eks_addon" "pod_identity_agent" {
- cluster_name = aws_eks_cluster.this.name
- addon_name = "eks-pod-identity-agent"
- addon_version = var.pod_identity_agent_addon_version
- resolve_conflicts_on_create = "OVERWRITE"
- resolve_conflicts_on_update = "OVERWRITE"
- depends_on = [aws_eks_node_group.default]
- tags = local.common_tags
- }
|