Skip to content

Commit da02b21

Browse files
authored
feat: version bumps and improvements #7
2 parents baf59ff + e9ec2ea commit da02b21

File tree

9 files changed

+117
-158
lines changed

9 files changed

+117
-158
lines changed

.terraform.lock.hcl

Lines changed: 70 additions & 89 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

addons.tf

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ resource "helm_release" "cluster_autoscaler" {
1919
namespace = "cluster-autoscaler"
2020
repository = "https://kubernetes.github.io/autoscaler"
2121
chart = "cluster-autoscaler"
22-
version = "9.12.0"
22+
version = "9.21.0"
2323
create_namespace = true
2424

2525
set {
@@ -41,28 +41,6 @@ resource "helm_release" "cluster_autoscaler" {
4141
}
4242
}
4343

44-
45-
// Here, we're gonna create the cluster-autoscaler tags so that the cluster-autoscaler can discover the autoscaling groups
46-
resource "aws_autoscaling_group_tag" "cluster_autoscaler_discovery_name" {
47-
for_each = { for k in toset(module.eks_cluster.self_managed_node_groups_autoscaling_group_names) : k => k if var.enable_cluster_autoscaler == true }
48-
autoscaling_group_name = each.key
49-
tag {
50-
key = "k8s.io/cluster-autoscaler/${local.cluster_name}"
51-
value = "owned"
52-
propagate_at_launch = false
53-
}
54-
}
55-
56-
resource "aws_autoscaling_group_tag" "cluster_autoscaler_discovery_enabled" {
57-
for_each = { for k in toset(module.eks_cluster.self_managed_node_groups_autoscaling_group_names) : k => k if var.enable_cluster_autoscaler == true }
58-
autoscaling_group_name = each.key
59-
tag {
60-
key = "k8s.io/cluster-autoscaler/enabled"
61-
value = "true"
62-
propagate_at_launch = false
63-
}
64-
}
65-
6644
resource "helm_release" "metrics_server" {
6745
depends_on = [
6846
module.eks_cluster
@@ -72,7 +50,7 @@ resource "helm_release" "metrics_server" {
7250

7351
name = "metrics-server"
7452
namespace = "metrics-server"
75-
version = "3.7.0"
53+
version = "3.8.2"
7654
repository = "https://kubernetes-sigs.github.io/metrics-server/"
7755
chart = "metrics-server"
7856
create_namespace = true

eks.tf

Lines changed: 11 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,28 @@ data "aws_eks_cluster_auth" "this" {
1010

1111
module "eks_cluster" {
1212
source = "terraform-aws-modules/eks/aws"
13-
version = "~> 18.17.0"
13+
version = "~> 18.29.0"
1414

1515
cluster_name = local.cluster_name
1616
cluster_version = var.kubernetes_version
1717

1818
cluster_enabled_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]
1919

20+
manage_aws_auth_configmap = var.manage_aws_auth_configmap
21+
create_aws_auth_configmap = var.create_aws_auth_configmap
22+
23+
aws_auth_roles = var.map_roles
24+
aws_auth_users = var.map_users
25+
2026
# # Enabling encryption on AWS EKS secrets using a customer-created key
21-
# cluster_encryption_config = [{
22-
# provider_key_arn = aws_kms_key.eks_crypto_key.arn
23-
# resources = ["secrets"]
24-
# }]
27+
cluster_encryption_config = [{
28+
provider_key_arn = aws_kms_key.eks_kms_key.arn
29+
resources = ["secrets"]
30+
}]
2531

2632

2733
# Enabling this, we allow EKS to manage this components for us (upgrading and maintaining)
2834
cluster_addons = {
29-
30-
# CoreDNS addon was removed from the module because it causes an execution loop
31-
# This module requires the workers to be created, but the dependency is not set-up correctly
32-
#  For the time being, it would be advised to manage it outside of the module
33-
34-
# coredns = {
35-
# resolve_conflicts = "OVERWRITE"
36-
# }
37-
3835
kube-proxy = {}
3936
vpc-cni = {
4037
resolve_conflicts = "OVERWRITE"
@@ -50,13 +47,6 @@ module "eks_cluster" {
5047
self_managed_node_group_defaults = {
5148
update_launch_template_default_version = true
5249
iam_role_additional_policies = ["arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"]
53-
54-
// This is a workaround that we need to apply in order to prevent the module from tagging all SG
55-
// if more than 1 SG is tagged by the module, then, the Kubernetes Load Balancers won't work
56-
security_group_tags = {
57-
"kubernetes.io/cluster/${local.cluster_name}" = null
58-
}
59-
6050
}
6151

6252

@@ -99,18 +89,3 @@ module "eks_cluster" {
9989
}
10090

10191
}
102-
103-
resource "kubernetes_config_map" "aws_auth" {
104-
105-
metadata {
106-
name = "aws-auth"
107-
namespace = "kube-system"
108-
}
109-
110-
data = {
111-
mapAccounts = "[]"
112-
mapRoles = local.updated_auth_configmap_data.data.mapRoles
113-
mapUsers = local.updated_auth_configmap_data.data.mapUsers
114-
}
115-
}
116-

examples/spot_eks_cluster.tf

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module "eks-cluster" {
22
source = "../."
33
environment = "eks-spot-demo"
4-
kubernetes_version = "1.21"
4+
kubernetes_version = "1.23"
55

66
enable_cluster_autoscaler = true
77

@@ -11,6 +11,8 @@ module "eks-cluster" {
1111
vpc_public_subnets = ["10.0.4.0/24", "10.0.5.0/24", "10.0.6.0/24"]
1212

1313

14+
create_aws_auth_configmap = true
15+
1416
map_users = [
1517
{
1618
userarn = "arn:aws:iam::xxxxxxxx:user/youremail@yourdomain.com"
@@ -38,7 +40,7 @@ module "eks-cluster" {
3840
spot_pool = {
3941
name = "spool-node-pool"
4042

41-
instance_type = "t2.medium"
43+
instance_type = "t3.medium"
4244

4345
max_size = 6
4446
desired_size = 2
@@ -60,7 +62,10 @@ module "eks-cluster" {
6062
sudo systemctl start amazon-ssm-agent
6163
EOT
6264

65+
autoscaling_group_tags = {
66+
"k8s.io/cluster-autoscaler/eks-spot-demo-eks-cluster" = "owned"
67+
"k8s.io/cluster-autoscaler/enabled" = "true"
68+
}
6369
}
6470
}
65-
6671
}

iam_policies.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ resource "aws_iam_policy" "autoscaler_modify_asg" {
1111
"autoscaling:DescribeAutoScalingInstances",
1212
"autoscaling:DescribeLaunchConfigurations",
1313
"autoscaling:DescribeTags",
14+
"ec2:DescribeInstanceTypes",
1415
"ec2:DescribeLaunchTemplateVersions",
16+
"ec2:GetInstanceTypesFromInstanceRequirements",
17+
"eks:DescribeNodegroup"
1518
]
1619
Effect = "Allow"
1720
Resource = "*"

kms.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resource "aws_kms_key" "eks_kms_key" {
2+
description = "KMS Key generated to encrypt ${local.cluster_name} secrets"
3+
deletion_window_in_days = 10
4+
enable_key_rotation = true
5+
}

networking.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module "vpc" {
22
source = "terraform-aws-modules/vpc/aws"
3-
version = "~> 3.13.0"
3+
version = "~> 3.14.0"
44

55
name = "${var.environment}-eks-vpc"
66
cidr = var.vpc_cidr

0 commit comments

Comments
 (0)