19.0.0 (2022-12-05)
⚠ BREAKING CHANGES (#2250) (b2e97ca)
Please consult the examples
directory for reference example configurations. If you find a bug, please open an issue with supporting configuration to reproduce.
List of backwards incompatible changes
- The
cluster_id
output used to output the name of the cluster. This is due to the fact that the cluster name is a unique constraint and therefore its set as the unique identifier within Terraform's state map. However, starting with local EKS clusters created on Outposts, there is now an attribute returned from theaws eks create-cluster
API namedid
. Thecluster_id
has been updated to return this value which means that for current, standard EKS clusters created in the AWS cloud, no value will be returned (at the time of this writing) forcluster_id
and only local EKS clusters on Outposts will return a value that looks like a UUID/GUID. Users should switch all instances ofcluster_id
to usecluster_name
before upgrading to v19. Reference - Minimum supported version of Terraform AWS provider updated to v4.45 to support latest features provided via the resources utilized.
- Minimum supported version of Terraform updated to v1.0
- Individual security group created per EKS managed node group or self managed node group has been removed. This configuration went mostly un-used and would often cause confusion ("Why is there an empty security group attached to my nodes?"). This functionality can easily be replicated by user's providing one or more externally created security groups to attach to nodes launched from the node group.
- Previously,
var.iam_role_additional_policies
(one for each of the following: cluster IAM role, EKS managed node group IAM role, self-managed node group IAM role, and Fargate Profile IAM role) accepted a list of strings. This worked well for policies that already existed but failed for policies being created at the same time as the cluster due to the well known issue of unkown values used in afor_each
loop. To rectify this issue inv19.x
, two changes were made:var.iam_role_additional_policies
was changed from typelist(string)
to typemap(string)
-> this is a breaking change. More information on managing this change can be found below, underTerraform State Moves
- The logic used in the root module for this variable was changed to replace the use of
try()
withlookup()
. More details on why can be found here
- The cluster name has been removed from the Karpenter module event rule names. Due to the use of long cluster names appending to the provided naming scheme, the cluster name has moved to a
ClusterName
tag and the event rule name is now a prefix. This guarantees that users can have multiple instances of Karpenter withe their respective event rules/SQS queue without name collisions, while also still being able to identify which queues and event rules belong to which cluster.
Please see the UPGRADE-19.0.md for full details on changes and upgrade path.