mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-01-16 16:47:20 +01:00
61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# How to handle the terraform-aws-eks module upgrade
|
|
|
|
## Upgrade module to v17.0.0 for Managed Node Groups
|
|
|
|
In this release, we now decided to remove random_pet resources in Managed Node Groups (MNG). Those were used to recreate MNG if something changed. But they were causing a lot of issues. To upgrade the module without recreating your MNG, you will need to explicitly reuse their previous name and set them in your MNG `name` argument.
|
|
|
|
1. Run `terraform apply` with the module version v16.2.0
|
|
2. Get your worker group names
|
|
```shell
|
|
~ terraform state show 'module.eks.module.node_groups.aws_eks_node_group.workers["example"]' | grep node_group_name
|
|
node_group_name = "test-eks-mwIwsvui-example-sincere-squid"
|
|
```
|
|
3. Upgrade your module and configure your node groups to use existing names
|
|
```hcl
|
|
module "eks" {
|
|
source = "terraform-aws-modules/eks/aws"
|
|
version = "17.0.0"
|
|
|
|
cluster_name = "test-eks-mwIwsvui"
|
|
cluster_version = "1.20"
|
|
# ...
|
|
|
|
node_groups = {
|
|
example = {
|
|
name = "test-eks-mwIwsvui-example-sincere-squid"
|
|
|
|
# ...
|
|
}
|
|
}
|
|
# ...
|
|
}
|
|
```
|
|
4. Run `terraform plan`, you shoud see that only `random_pets` will be destroyed
|
|
|
|
```shell
|
|
Terraform will perform the following actions:
|
|
|
|
# module.eks.module.node_groups.random_pet.node_groups["example"] will be destroyed
|
|
- resource "random_pet" "node_groups" {
|
|
- id = "sincere-squid" -> null
|
|
- keepers = {
|
|
- "ami_type" = "AL2_x86_64"
|
|
- "capacity_type" = "SPOT"
|
|
- "disk_size" = "50"
|
|
- "iam_role_arn" = "arn:aws:iam::123456789123:role/test-eks-mwIwsvui20210527220853611600000009"
|
|
- "instance_types" = "t3.large"
|
|
- "key_name" = ""
|
|
- "node_group_name" = "test-eks-mwIwsvui-example"
|
|
- "source_security_group_ids" = ""
|
|
- "subnet_ids" = "subnet-xxxxxxxxxxxx|subnet-xxxxxxxxxxxx|subnet-xxxxxxxxxxxx"
|
|
} -> null
|
|
- length = 2 -> null
|
|
- separator = "-" -> null
|
|
}
|
|
|
|
Plan: 0 to add, 0 to change, 1 to destroy.
|
|
```
|
|
5. If everything sounds good to you, run `terraform apply`
|
|
|
|
After the first apply, we recommand you to create a new node group and let the module use the `node_group_name_prefix` (by removing the `name` argument) to generate names and avoid collision during node groups re-creation if needed, because the lifce cycle is `create_before_destroy = true`.
|