Skip to content

Commit b50abfa

Browse files
authored
bump eks module version (#220)
* feat: Upgrade eks and addons to 1.21, improve k8s upgrade docs * fix: Moved import statements in k8s cluster doc * feat: Use new eks module which enables EKs prefix delegation, to allow more IPs per node * docs: Added a note about upgrading addons * docs: typo fix * fix: Fixed eks and addon versions * fix: Fixed eks and addon versions
1 parent 2c93444 commit b50abfa

File tree

6 files changed

+19
-21
lines changed

6 files changed

+19
-21
lines changed

doc-site/docs/guides/kubernetes-cluster.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ aws eks describe-addon-versions \
210210
</Tabs>
211211
The process should be:
212212

213-
- Update the addon versions versions in `<env>/main.tf` to match the correct versions for the new cluster version. See the tabs above or [read the AWS docs here](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html)
213+
- Update the addons in `<env>/main.tf` to match the correct addon versions for the new cluster version. See the tabs above or [read the AWS docs here](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html)
214214
- Update the `eks_cluster_version` in terraform
215215
- Run `terraform apply`
216216
- Update your nodes to the new version
@@ -222,6 +222,15 @@ The process should be:
222222

223223
This will bring up new nodes, gracefully drain your workloads onto them while preventing new pods from being scheduled to the old ones, then take down the old nodes. If your workloads are set up with multiple replicas there should be no downtime during this process.
224224

225+
:::note
226+
You can't upgrade the addons by more than one minor version at a time. So for example you couldn't change from "v1.7.10" to "v1.9.0". You would first need to go to "v1.8.0", apply, then update to "v1.9.0".
227+
:::
228+
229+
:::tip
230+
Sometimes you may need to make changes to node groups that would be destructive to the nodes in your cluster, for example changing the type of instances in the group. In situations like this you can apply in stages where you would add a new node group with a unique name and the new instance types. You can apply to bring up this new group of instances, then remove the old group and apply again. This will make sure you always have sufficient nodes in your cluster to handle your workloads.
231+
:::
232+
233+
225234
## More resources
226235

227236
[https://kubernetes.io/docs/reference/kubectl/cheatsheet/](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)

templates/kubernetes/terraform/modules/kubernetes/metrics_server.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ resource "helm_release" "metrics_server" {
99
# Switch away from this bitnami one when possible. https://github.com/kubernetes-sigs/metrics-server/issues/572
1010
repository = "https://charts.bitnami.com/bitnami"
1111
chart = "metrics-server"
12-
version = "5.0.2"
12+
version = "5.9.2"
1313
namespace = local.metrics_server_namespace
1414

1515
set {
1616
name = "apiService.create"
1717
value = true
1818
}
1919
}
20-

templates/terraform/environments/prod/main.tf

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ module "prod" {
5656
ecr_repositories = [] # Should be created by the staging environment
5757

5858
# EKS configuration
59-
eks_cluster_version = "1.20"
59+
eks_cluster_version = "1.21"
6060
# Cluster addons. These often need to be updated when upgrading the cluster version.
6161
# See: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html
62-
eks_addon_vpc_cni_version = "v1.7.10-eksbuild.1"
63-
eks_addon_kube_proxy_version = "v1.20.4-eksbuild.2"
64-
eks_addon_coredns_version = "v1.8.3-eksbuild.1"
62+
eks_addon_vpc_cni_version = "v1.9.0-eksbuild.1"
63+
eks_addon_kube_proxy_version = "v1.21.2-eksbuild.2"
64+
eks_addon_coredns_version = "v1.8.4-eksbuild.1"
6565

6666
eks_node_groups = {
6767
main = {
@@ -71,8 +71,6 @@ module "prod" {
7171
# Enable use of spot instances instead of on-demand.
7272
# This can provide significant cost savings and should be stable due to the use of the termination handler, but means that individuial nodes could be restarted at any time. May not be suitable for clusters with long-running workloads
7373
use_spot_instances = false
74-
# This is the normal image. Other possibilities are AL2_x86_64_GPU for gpu instances or AL2_ARM_64 for ARM instances
75-
ami_type = "AL2_x86_64"
7674
}
7775
}
7876

templates/terraform/environments/stage/main.tf

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ module "stage" {
7070
eks_cluster_version = "1.21"
7171
# Cluster addons. These often need to be updated when upgrading the cluster version.
7272
# See: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html
73-
eks_addon_vpc_cni_version = "v1.7.10-eksbuild.1"
73+
eks_addon_vpc_cni_version = "v1.9.0-eksbuild.1"
7474
eks_addon_kube_proxy_version = "v1.21.2-eksbuild.2"
7575
eks_addon_coredns_version = "v1.8.4-eksbuild.1"
7676

@@ -82,8 +82,6 @@ module "stage" {
8282
# Enable use of spot instances instead of on-demand.
8383
# This can provide significant cost savings and should be stable due to the use of the termination handler, but means that individuial nodes could be restarted at any time. May not be suitable for clusters with long-running workloads
8484
use_spot_instances = true
85-
# This is the normal image. Other possibilities are AL2_x86_64_GPU for gpu instances or AL2_ARM_64 for ARM instances
86-
ami_type = "AL2_x86_64"
8785
}
8886
}
8987

templates/terraform/modules/environment/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ data "aws_caller_identity" "current" {}
5656
# Provision the EKS cluster
5757
module "eks" {
5858
source = "commitdev/zero/aws//modules/eks"
59-
version = "0.4.5"
59+
version = "0.5.0"
6060
providers = {
6161
aws = aws.for_eks
6262
}

templates/terraform/modules/environment/variables.tf

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,8 @@ variable "eks_addon_coredns_version" {
4747
}
4848

4949
variable "eks_node_groups" {
50-
type = map(object({
51-
instance_types = list(string)
52-
asg_min_size = string
53-
asg_max_size = string
54-
use_spot_instances = bool
55-
ami_type = string
56-
}))
57-
description = "Map of maps of eks node group config where keys are node group names"
50+
type = any
51+
description = "Map of maps of eks node group config where keys are node group names. See the EKS module documentation for details"
5852
}
5953

6054
variable "hosted_domains" {

0 commit comments

Comments
 (0)