Skip to content

Commit fafabd5

Browse files
committed
adding more eks addons and fixes
1 parent ad83c2d commit fafabd5

File tree

9 files changed

+125
-4
lines changed

9 files changed

+125
-4
lines changed

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Module creates:
1010
* VPC Endpoints- S3, ECR, STS, APS, GuardDuty
1111
* EKS Cluster
1212
* EKS Node Group to run cluster critical services
13-
* EKS Addons- coredns, kube-proxy, guardduty, aws-ebs-csi-driver, adot (requires cert-manger to be installed), kubecost, cloudwatch observability, snapshot-controller and identity agent
13+
* EKS Addons- coredns, kube-proxy, guardduty, aws-ebs-csi-driver, adot (requires cert-manger to be installed), kubecost, cloudwatch observability, snapshot-controller, identity agent, metrics server and kube-state-metrics
1414
* IAM Roles for worker nodes and Karpenter nodes
1515
* Additional IAM Roles for operators- load-balancer-controller, external-dns, cert-manager, adot-collector
1616
* SQS queue configuration to be used with Karpeneter while utlising Spot Instances.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"agent": {
3+
"config": {
4+
"logs": {
5+
"metrics_collected": {
6+
"kubernetes": {
7+
"enhanced_container_insights": true
8+
}
9+
}
10+
}
11+
}
12+
},
13+
"containerLogs": {
14+
"enabled": false
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"replicas": 3,
3+
"resources": {
4+
"limits": {
5+
"cpu": "256m",
6+
"memory": "512Mi"
7+
},
8+
"requests": {
9+
"cpu": "256m",
10+
"memory": "512Mi"
11+
}
12+
},
13+
"nodeSelector": {
14+
"kubernetes.io/os": "linux"
15+
}
16+
}

‎terraform/configs/metrics-server.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"replicas": 3
3+
}

‎terraform/eks-addons.tf

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
locals {
2-
core_dns_config = file("${path.module}/configs/core-dns.json")
2+
core_dns_config = trimspace(file("${path.module}/configs/core-dns.json"))
3+
amazon_cloudwatch_observability_config = trimspace(file("${path.module}/configs/amazon-cloudwatch-observability.json"))
4+
metrics_server_config = trimspace(file("${path.module}/configs/metrics-server.json"))
5+
kube_state_metrics_config = trimspace(file("${path.module}/configs/kube-state-metrics.json"))
36
}
47

58
resource "aws_eks_addon" "kube_proxy" {
@@ -173,3 +176,64 @@ resource "aws_eks_addon" "identity_agent" {
173176
"eks_addon" = "eks-pod-identity-agent"
174177
}
175178
}
179+
180+
resource "aws_eks_addon" "amazon_cloudwatch_observability" {
181+
count = var.eks_addon_version_amazon_cloudwatch_observability != null ? 1 : 0
182+
183+
cluster_name = aws_eks_cluster.cluster.name
184+
addon_name = "amazon-cloudwatch-observability"
185+
addon_version = var.eks_addon_version_amazon_cloudwatch_observability
186+
187+
resolve_conflicts_on_create = "OVERWRITE"
188+
resolve_conflicts_on_update = "OVERWRITE"
189+
190+
configuration_values = local.amazon_cloudwatch_observability_config
191+
192+
preserve = true
193+
194+
tags = {
195+
"eks_addon" = "amazon-cloudwatch-observability"
196+
}
197+
198+
depends_on = [
199+
aws_cloudwatch_log_group.cluster_performance
200+
]
201+
}
202+
203+
resource "aws_eks_addon" "metrics_server" {
204+
count = var.eks_addon_version_metrics_server != null ? 1 : 0
205+
206+
cluster_name = aws_eks_cluster.cluster.name
207+
addon_name = "metrics-server"
208+
addon_version = var.eks_addon_version_metrics_server
209+
210+
configuration_values = local.metrics_server_config
211+
212+
resolve_conflicts_on_create = "OVERWRITE"
213+
resolve_conflicts_on_update = "OVERWRITE"
214+
215+
preserve = true
216+
217+
tags = {
218+
"eks_addon" = "metrics-server"
219+
}
220+
}
221+
222+
resource "aws_eks_addon" "kube_state_metrics" {
223+
count = var.eks_addon_version_kube_state_metrics != null ? 1 : 0
224+
225+
cluster_name = aws_eks_cluster.cluster.name
226+
addon_name = "kube-state-metrics"
227+
addon_version = var.eks_addon_version_kube_state_metrics
228+
229+
configuration_values = local.kube_state_metrics_config
230+
231+
resolve_conflicts_on_create = "OVERWRITE"
232+
resolve_conflicts_on_update = "OVERWRITE"
233+
234+
preserve = true
235+
236+
tags = {
237+
"eks_addon" = "kube-state-metrics"
238+
}
239+
}

‎terraform/locals.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
locals {
2+
eks_cluster_name = var.name_prefix
3+
24
events = {
35
health_event = {
46
name = "HealthEvent"

‎terraform/terraform.tfvars

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ eks_addon_version_ebs_csi_driver = "v1.38.1-eksbuild.2"
2222
eks_addon_version_guardduty = "v1.8.1-eksbuild.2"
2323
eks_addon_version_snapshot_controller = "v8.1.0-eksbuild.2"
2424
eks_addon_version_identity_agent = "v1.3.4-eksbuild.1"
25-
eks_addon_version_amazon_cloudwatch_observability = "v3.0.0-eksbuild.1"
25+
eks_addon_version_amazon_cloudwatch_observability = "v3.6.0-eksbuild.2"
26+
eks_addon_version_metrics_server = "v0.7.2-eksbuild.3"
27+
eks_addon_version_kube_state_metrics = "v2.15.0-eksbuild.3"

‎terraform/variables.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,24 @@ variable "eks_addon_version_identity_agent" {
134134
default = null
135135
}
136136

137+
variable "eks_addon_version_amazon_cloudwatch_observability" {
138+
type = string
139+
description = "Amazon cloudwatch observability addon version."
140+
default = null
141+
}
142+
143+
variable "eks_addon_version_metrics_server" {
144+
type = string
145+
description = "Metrics server addon version."
146+
default = null
147+
}
148+
149+
variable "eks_addon_version_kube_state_metrics" {
150+
type = string
151+
description = "Kube State Metrics addon version."
152+
default = null
153+
}
154+
137155
#####
138156
# EKS Default Managed Node Group
139157
#####

‎terraform/vpc.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ resource "aws_vpc_endpoint" "eks_vpc_s3_gateway" {
8787
vpc_endpoint_type = "Gateway"
8888

8989
tags = {
90-
Name = "${local.name_prefix_platform_vpc}-s3-gateway"
90+
Name = "${var.name_prefix}-gateway"
9191
}
9292
}
9393

0 commit comments

Comments
 (0)