github cloudposse/terraform-aws-eks-node-group 2.1.0
v2.1.0 Bottlerocket AMIs, bug fixes

latest releases: v3.1.0, v3, 3.0.1...
2 years ago

Version 2.1.0 is exactly the same as v0.27.1 except for the version number, part of Cloud Posse's conversion to production Semantic Versioning for its Terraform modules.

No special effort is needed to upgrade to this version from v0.25.0 or later, or v2.0.0 or later. See the migration from v1 to v2 documentation for information on how to upgrade safely from earlier versions.

Note: Although this release contains a fix for a bug that caused Terraform to fail when Kubernetes node taints were specified, the fix did not generate the correct values for the tags applied to the Launch Template and Node Group. The tag values were corrected in v2.4.0 of this module, but nevertheless, the tags (with keys of the form k8s.io/cluster-autoscaler/node-template/taint/$TAINT) are only effective when applied to the auto scaling group controlling the node group, and as of v2.4.0 this module still does not apply the tags to the auto scaling group. See aws/containers-roadmap#608 for more details as to why.

🚀 Enhancements

Support bottlerocket ami types @nitrocode (#93)

what

  • Support bottlerocket ami types
  • Removed unused null and template providers

why

  • This will allow us to support bottlerocket ami using an ami_type
  • template provider removal will allow OSX M1 to use this module

references

https://docs.aws.amazon.com/eks/latest/APIReference/API_Nodegroup.html

amiType

    If the node group was deployed using a launch template with a custom AMI, then this is CUSTOM. For node groups that weren't deployed using a launch template, this is the AMI type that was specified in the node group configuration.

    Type: String

    Valid Values: AL2_x86_64 | AL2_x86_64_GPU | AL2_ARM_64 | CUSTOM | BOTTLEROCKET_ARM_64 | BOTTLEROCKET_x86_64

    Required: No

notes

  • There is no GPU version of bottlerocket
Here are the following data source checks to verify backwards compatibility.

With a temporary output in ami.tf and examples/complete/outputs.tf

output "ami_regex" {
  value = local.ami_regex[local.ami_kind],
}

And setting after_cluster_joining_userdata = ["ls"] to trigger needing an ami.

ami_type = "AL2_x86_64" and ami_release_version = ["1.21.0-20211013"]

# matches amazon-eks-node-1.21-v20211013 in us-east-2
ami_regex = amazon-eks-node-1.21-v20211013

ami_type = "AL2_x86_64" and no ami_release_version

# matches amazon-eks-node-1.21-v20211013 in us-east-2
ami_regex = amazon-eks-node-1.21-*

ami_type = "BOTTLEROCKET_x86_64" and ami_release_version = ["1.2.0-ccf1b754"]

# matches bottlerocket-aws-k8s-1.21-x86_64-v1.2.0-ccf1b754 in us-east-2
ami_regex = bottlerocket-aws-k8s-1.21-x86_64-v1.2.0-ccf1b754

ami_type = "BOTTLEROCKET_x86_64" and no ami_release_version

# matches bottlerocket-aws-k8s-1.21-x86_64-v1.3.0-395b459c in us-east-2
ami_regex = bottlerocket-aws-k8s-1.21-x86_64-*

ami_type = "BOTTLEROCKET_ARM_64" and ami_release_version = ["1.2.0-ccf1b754"]

# matches bottlerocket-aws-k8s-1.21-aarch64-v1.2.0-ccf1b754 in us-east-2
ami_regex = "bottlerocket-aws-k8s-1.21-aarch64-v1.2.0-ccf1b754"

ami_type = "BOTTLEROCKET_ARM_64" and no ami_release_version

# matches bottlerocket-aws-k8s-1.21-aarch64-v1.3.0-395b459c in us-east-2
ami_regex = "bottlerocket-aws-k8s-1.21-aarch64-*"

🐛 Bug Fixes

  • Correctly support enabled=false @nitrocode (#94)
  • Fix crash due to autoscaling taint labels @xeivieni (#87) (Fixes crash, but labels are still ineffective, see note above)

Don't miss a new terraform-aws-eks-node-group release

NewReleases is sending notifications on new releases.