Skip to content

Commit 681f577

Browse files
khalezinp1gmale0n
authored andcommitted
enh: #319 updated k8s version, updated dependent resources and small bugfixes (#324)
1 parent c4893f3 commit 681f577

File tree

15 files changed

+383
-40
lines changed

15 files changed

+383
-40
lines changed

terraform/layer1-aws/README.md

Lines changed: 126 additions & 0 deletions
Large diffs are not rendered by default.

terraform/layer1-aws/aws-cloudtrail.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ resource "aws_cloudtrail" "main" {
88
is_multi_region_trail = true
99

1010
tags = local.tags
11+
12+
depends_on = [aws_s3_bucket_policy.cloudtrail]
1113
}
1214

1315
#tfsec:ignore:aws-s3-enable-bucket-logging tfsec:ignore:aws-s3-enable-versioning tfsec:ignore:aws-cloudtrail-require-bucket-access-logging

terraform/layer1-aws/aws-eks.tf

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,27 @@ locals {
33
"k8s.io/cluster-autoscaler/enabled" = "true"
44
"k8s.io/cluster-autoscaler/${local.name}" = "owned"
55
}
6-
eks_addon_vpc_cni = merge(var.eks_addons.vpc-cni, { service_account_role_arn = module.vpc_cni_irsa.iam_role_arn })
7-
eks_addons = merge(var.eks_addons, { vpc-cni = local.eks_addon_vpc_cni })
6+
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+
})
827

928
eks_map_roles = [
1029
{
@@ -247,6 +266,23 @@ module "vpc_cni_irsa" {
247266
tags = local.tags
248267
}
249268

269+
module "aws_ebs_csi_driver" {
270+
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
271+
version = "4.14.0"
272+
273+
role_name = "${local.name}-aws-ebs-csi-driver"
274+
attach_ebs_csi_policy = true
275+
276+
oidc_providers = {
277+
main = {
278+
provider_arn = module.eks.oidc_provider_arn
279+
namespace_service_accounts = ["kube-system:ebs-csi-controller-sa"]
280+
}
281+
}
282+
283+
tags = local.tags
284+
}
285+
250286
resource "aws_kms_key" "eks" {
251287
count = var.eks_cluster_encryption_config_enable ? 1 : 0
252288
description = "EKS Secret Encryption Key"
@@ -255,3 +291,23 @@ resource "aws_kms_key" "eks" {
255291
resource "kubectl_manifest" "aws_auth_configmap" {
256292
yaml_body = local.aws_auth_configmap_yaml
257293
}
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+
}

terraform/layer1-aws/variables.tf

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -108,28 +108,10 @@ variable "single_nat_gateway" {
108108

109109
# EKS
110110
variable "eks_cluster_version" {
111-
default = "1.22"
111+
default = "1.25"
112112
description = "Version of the EKS K8S cluster"
113113
}
114114

115-
variable "eks_addons" {
116-
default = {
117-
coredns = {
118-
resolve_conflicts = "OVERWRITE"
119-
addon_version = "v1.8.7-eksbuild.1"
120-
}
121-
kube-proxy = {
122-
resolve_conflicts = "OVERWRITE"
123-
addon_version = "v1.22.6-eksbuild.1"
124-
}
125-
vpc-cni = {
126-
resolve_conflicts = "OVERWRITE"
127-
addon_version = "v1.11.0-eksbuild.1"
128-
}
129-
}
130-
description = "A list of installed EKS add-ons"
131-
}
132-
133115
variable "eks_workers_additional_policies" {
134116
type = list(any)
135117
default = ["arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"]

terraform/layer2-k8s/README.md

Lines changed: 158 additions & 0 deletions
Large diffs are not rendered by default.

terraform/layer2-k8s/eks-aws-node-termination-handler.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ locals {
88
namespace = local.helm_releases[index(local.helm_releases.*.id, "aws-node-termination-handler")].namespace
99
}
1010
aws_node_termination_handler_values = <<VALUES
11+
rbac:
12+
create: true
13+
pspEnabled: false # Due to psp removed in k8s 1.25 and latest aws-node-termination handler chart doesn't maintain new PSP version
14+
1115
enableSpotInterruptionDraining: true
1216
enableRebalanceMonitoring: true
1317

terraform/layer2-k8s/eks-cluster-autoscaler.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ affinity:
4646
resources:
4747
limits:
4848
cpu: 100m
49-
memory: 512Mi
49+
memory: 1024Mi
5050
requests:
5151
cpu: 100m
5252
memory: 320Mi
@@ -147,14 +147,14 @@ module "aws_iam_autoscaler" {
147147
"autoscaling:DescribeLaunchConfigurations",
148148
"autoscaling:DescribeAutoScalingInstances",
149149
"autoscaling:DescribeAutoScalingGroups",
150+
"ec2:DescribeInstanceTypes",
150151
],
151152
"Resource" : "*"
152153
},
153154
{
154155
"Sid" : "clusterAutoscalerOwn",
155156
"Effect" : "Allow",
156157
"Action" : [
157-
"autoscaling:UpdateAutoScalingGroup",
158158
"autoscaling:TerminateInstanceInAutoScalingGroup",
159159
"autoscaling:SetDesiredCapacity",
160160
],

terraform/layer2-k8s/eks-loki-stack.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ locals {
1010
loki_stack_values = <<VALUES
1111
loki:
1212
enabled: true
13+
rbac:
14+
create: true
15+
pspEnabled: false # Due to psp removed in k8s 1.25 and latest loki-stack chart doesn't maintain new PSP version
1316
config:
1417
limits_config:
1518
enforce_metric_name: false

terraform/layer2-k8s/helm-releases.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ releases:
33
enabled: true
44
chart: aws-load-balancer-controller
55
repository: https://aws.github.io/eks-charts
6-
chart_version: 1.4.5
6+
chart_version: 1.4.8
77
namespace: aws-load-balancer-controller
88
- id: aws-node-termination-handler
99
enabled: true
1010
chart: aws-node-termination-handler
1111
repository: https://aws.github.io/eks-charts
12-
chart_version: 0.19.3
12+
chart_version: 0.21.0
1313
namespace: aws-node-termination-handler
1414
- id: cert-manager
1515
enabled: false
@@ -33,7 +33,7 @@ releases:
3333
enabled: true
3434
chart: cluster-autoscaler
3535
repository: https://kubernetes.github.io/autoscaler
36-
chart_version: 9.13.1
36+
chart_version: 9.26.0
3737
namespace: cluster-autoscaler
3838
- id: elk
3939
enabled: false
@@ -93,7 +93,7 @@ releases:
9393
enabled: true
9494
chart: loki-stack
9595
repository: https://grafana.github.io/helm-charts
96-
chart_version: 2.8.3
96+
chart_version: 2.9.9
9797
namespace: loki
9898
- id: reloader
9999
enabled: true

terraform/layer2-k8s/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,5 @@ variable "nginx_ingress_ssl_terminator" {
103103
# Cluster autoscaler
104104
variable "cluster_autoscaler_version" {
105105
description = "Version of cluster autoscaler"
106-
default = "v1.22.0"
106+
default = "v1.25.0"
107107
}

0 commit comments

Comments
 (0)