@@ -4,42 +4,13 @@ locals {
44 " k8s.io/cluster-autoscaler/${local.name}" = " owned"
55 }
66
7- eks_addons = merge ({
8- vpc-cni = {
9- resolve_conflicts = " OVERWRITE"
10- addon_version = data.aws_eks_addon_version.vpc_cni.version
11- service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
12- },
13- aws-ebs-csi-driver = {
14- resolve_conflicts = " OVERWRITE"
15- addon_version = data.aws_eks_addon_version.aws_ebs_csi_driver.version
16- service_account_role_arn = module.aws_ebs_csi_driver.iam_role_arn
17- },
18- coredns = {
19- resolve_conflicts = " OVERWRITE"
20- addon_version = data.aws_eks_addon_version.coredns.version
21- },
22- kube-proxy = {
23- resolve_conflicts = " OVERWRITE"
24- addon_version = data.aws_eks_addon_version.kube_proxy.version
25- }
26- })
27-
287 eks_map_roles = [
298 {
309 rolearn = " arn:aws:iam::${ data . aws_caller_identity . current . account_id } :role/administrator"
3110 username = " administrator"
3211 groups = [" system:masters" ]
3312 }
3413 ]
35- eks_map_users = []
36-
37- aws_auth_configmap_yaml = <<- CONTENT
38- ${ chomp (module. eks . aws_auth_configmap_yaml )}
39- ${ indent (4 , yamlencode (local. eks_map_roles ))}
40- mapUsers: |
41- ${ indent (4 , yamlencode (local. eks_map_users ))}
42- CONTENT
4314}
4415
4516data "aws_ami" "eks_default_bottlerocket" {
@@ -55,12 +26,32 @@ data "aws_ami" "eks_default_bottlerocket" {
5526# tfsec:ignore:aws-vpc-no-public-egress-sgr tfsec:ignore:aws-eks-enable-control-plane-logging tfsec:ignore:aws-eks-encrypt-secrets tfsec:ignore:aws-eks-no-public-cluster-access tfsec:ignore:aws-eks-no-public-cluster-access-to-cidr
5627module "eks" {
5728 source = " terraform-aws-modules/eks/aws"
58- version = " 18.9.0"
59-
60- cluster_name = local. name
61- cluster_version = var. eks_cluster_version
62- subnet_ids = module. vpc . intra_subnets
63- enable_irsa = true
29+ version = " 19.12.0"
30+
31+ cluster_name = local. name
32+ cluster_version = var. eks_cluster_version
33+ subnet_ids = module. vpc . private_subnets
34+ control_plane_subnet_ids = module. vpc . intra_subnets
35+ enable_irsa = true
36+ manage_aws_auth_configmap = true
37+ create_aws_auth_configmap = false
38+ aws_auth_roles = local. eks_map_roles
39+ cluster_addons = {
40+ coredns = {
41+ most_recent = true
42+ }
43+ kube-proxy = {
44+ most_recent = true
45+ }
46+ vpc-cni = {
47+ most_recent = true
48+ service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
49+ }
50+ aws-ebs-csi-driver = {
51+ most_recent = true
52+ service_account_role_arn = module.aws_ebs_csi_driver.iam_role_arn
53+ }
54+ }
6455
6556 cluster_enabled_log_types = var. eks_cluster_enabled_log_types
6657 cloudwatch_log_group_retention_in_days = var. eks_cloudwatch_log_group_retention_in_days
@@ -72,60 +63,10 @@ module "eks" {
7263
7364 vpc_id = module. vpc . vpc_id
7465
75- cluster_addons = local. eks_addons
76-
77- cluster_encryption_config = var. eks_cluster_encryption_config_enable ? [
78- {
79- provider_key_arn = aws_kms_key.eks[0 ].arn
80- resources = [" secrets" ]
81- }
82- ] : []
83-
8466 cluster_endpoint_public_access = var. eks_cluster_endpoint_public_access
8567 cluster_endpoint_private_access = var. eks_cluster_endpoint_private_access
8668 cluster_endpoint_public_access_cidrs = var. eks_cluster_endpoint_only_pritunl ? [" ${ module . pritunl [0 ]. pritunl_endpoint } /32" ] : [" 0.0.0.0/0" ]
8769
88- # Extend cluster security group rules
89- cluster_security_group_additional_rules = {
90- egress_nodes_ephemeral_ports_tcp = {
91- description = " To node 1025-65535"
92- protocol = " tcp"
93- from_port = 1025
94- to_port = 65535
95- type = " egress"
96- source_node_security_group = true
97- }
98- }
99-
100- # Extend node-to-node security group rules
101- node_security_group_additional_rules = {
102- ingress_self_all = {
103- description = " Node to node all ports/protocols"
104- protocol = " -1"
105- from_port = 0
106- to_port = 0
107- type = " ingress"
108- self = true
109- }
110- ingress_cluster_all = {
111- description = " Cluster to nodes all ports/protocols"
112- protocol = " -1"
113- from_port = 1025
114- to_port = 65535
115- type = " ingress"
116- source_cluster_security_group = true
117- }
118- egress_all = {
119- description = " Node all egress"
120- protocol = " -1"
121- from_port = 0
122- to_port = 0
123- type = " egress"
124- cidr_blocks = [" 0.0.0.0/0" ]
125- ipv6_cidr_blocks = [" ::/0" ]
126- }
127- }
128-
12970 self_managed_node_group_defaults = {
13071 block_device_mappings = {
13172 xvda = {
@@ -148,7 +89,6 @@ module "eks" {
14889 }
14990 iam_role_attach_cni_policy = false
15091 }
151-
15292 self_managed_node_groups = {
15393 spot = {
15494 name = " ${ local . name } -spot"
@@ -227,7 +167,6 @@ module "eks" {
227167 tags = merge (local. eks_worker_tags , { " k8s.io/cluster-autoscaler/node-template/label/nodegroup" = " bottlerocket" })
228168 }
229169 }
230-
231170 fargate_profiles = {
232171 default = {
233172 name = " fargate"
@@ -250,7 +189,7 @@ module "eks" {
250189
251190module "vpc_cni_irsa" {
252191 source = " terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
253- version = " 4.14 .0"
192+ version = " 5.17 .0"
254193
255194 role_name = " ${ local . name } -vpc-cni"
256195 attach_vpc_cni_policy = true
@@ -268,7 +207,7 @@ module "vpc_cni_irsa" {
268207
269208module "aws_ebs_csi_driver" {
270209 source = " terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
271- version = " 4.14 .0"
210+ version = " 5.17 .0"
272211
273212 role_name = " ${ local . name } -aws-ebs-csi-driver"
274213 attach_ebs_csi_policy = true
@@ -282,32 +221,3 @@ module "aws_ebs_csi_driver" {
282221
283222 tags = local. tags
284223}
285-
286- resource "aws_kms_key" "eks" {
287- count = var. eks_cluster_encryption_config_enable ? 1 : 0
288- description = " EKS Secret Encryption Key"
289- }
290-
291- resource "kubectl_manifest" "aws_auth_configmap" {
292- yaml_body = local. aws_auth_configmap_yaml
293- }
294-
295- data "aws_eks_addon_version" "aws_ebs_csi_driver" {
296- addon_name = " aws-ebs-csi-driver"
297- kubernetes_version = var. eks_cluster_version
298- }
299-
300- data "aws_eks_addon_version" "coredns" {
301- addon_name = " coredns"
302- kubernetes_version = var. eks_cluster_version
303- }
304-
305- data "aws_eks_addon_version" "kube_proxy" {
306- addon_name = " kube-proxy"
307- kubernetes_version = var. eks_cluster_version
308- }
309-
310- data "aws_eks_addon_version" "vpc_cni" {
311- addon_name = " vpc-cni"
312- kubernetes_version = var. eks_cluster_version
313- }
0 commit comments