-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Description
In addition, the minimum supported versions of the AWS provider and Terraform will be v6.0
and v1.5.7
respectively. Removed arguments in v6.0 of the provider will be remediated as well
-
Remove aws-auth sub-module
- This was announced previously when v20 was released and marked as deprecated. There are no changes to this
module since then, nor any planned for the future, so users can continue to use the definition on its own while
specifying a v20.x version (i.e - it continues to live as an artifact in git history, but will no longer exist on the
master branch going forward) - https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/UPGRADE-
20.0.md#%EF%B8%8F-upcoming-changes-planned-in-v210-%EF%B8%8F
- This was announced previously when v20 was released and marked as deprecated. There are no changes to this
-
Correct add-ons behavior
- Hard code
bootstrap_self_managed_addons
tofalse
- Set default value for
resolve_conflicts_on_create
toNONE
- feat: Improve addon dependency chain and decrease time to provision addons (due to retries) #3218
- feat: Added configurable delay before addons creation #3214
- Hard code
-
Remove identity provider correction added in 1.30
Lines 664 to 669 in 5583604
# Maintain current behavior for <= 1.29, remove default for >= 1.30 # `null` will return the latest Kubernetes version from the EKS API, which at time of writing is 1.30 # https://github.com/kubernetes/kubernetes/pull/123561 # TODO - remove on next breaking change in conjunction with issuer URL change below idpc_backwards_compat_version = contains(["1.21", "1.22", "1.23", "1.24", "1.25", "1.26", "1.27", "1.28", "1.29"], coalesce(var.cluster_version, "1.30")) idpc_issuer_url = local.idpc_backwards_compat_version ? try(aws_eks_cluster.this[0].identity[0].oidc[0].issuer, null) : null - Prevent conflicts between service account and jwt issuers kubernetes/kubernetes#123561
-
Correct AMI input behavior
- Remove
platform
variable - legacy artifact when there were 3 OS'es (platforms). The number of AMI types and OS'es has grown quite a bit since its introduction - Change
ami_type
to be required; it will default toAL2023_x86_64_STANDARD
to match similar behavior of EKS MNG starting on 1.30
- Remove
-
Correct IAM permissions
- [Cluster] Remove arn:aws:iam::aws:policy/AmazonEKSVPCResourceController - this is for SGPP and users can pass in to their node group when needed
- [Node] Remove arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy and arn:aws:iam::aws:policy/AmazonEKS_CNI_IPv6_Policy from node roles - this will need to come via the VPC CNI pod identity
- [Node] Replace arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly with arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
- [Node] Investigate adding the the node name convention via nodeadm user data in order to use arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy instead of arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy to better match what EKS Auto Mode does
- How would this affect Bottlerocket? Windows?
- Whats the benefit - need to diff the policies. Tradeoff in terms of complexity versus permissions removed.
- [Node groups] Set hop limit to 1 with changes above
terraform-aws-eks/node_groups.tf
Line 5 in 5583604
http_put_response_hop_limit = 2
-
Correct Karpenter permissions
- Switch to v1 policy, remove prior policy remnants
# TODO - make v1 permssions the default policy at next breaking change - Enable pod identity association by default
# TODO - Change default to `true` at next breaking change - Remove IRSA? Doesn’t seem like there are any plausible situations where cross account would be useful with Karpenter so we could probably just remove IRSA entirely
- Update node IAM role permissions with node role changes above
- Switch to v1 policy, remove prior policy remnants
-
Switch to dualstack compatible OIDC endpoint for identity provider
- create an openid_connect_provider resource for the dualstack endpoint #3237
Line 2 in 5583604
dualstack_oidc_issuer_url = try(replace(replace(aws_eks_cluster.this[0].identity[0].oidc[0].issuer, "https://oidc.eks.", "https://oidc-eks."), ".amazonaws.com/", ".api.aws/"), null)
-
Switch to efa-only enabled by default
- Users can specify the number of efa interfaces and at which index, but the current all efa behavior is removed
interface_type = var.enable_efa_only ? contains(concat([0], var.efa_indices), i) ? "efa" : "efa-only" : "efa"
Questions
- Should the default version for add-ons default to latest?
- Pro: new features are pushed out through latest versions so users can utilizes those without any issues or changes
- Con: more noise in the changes as new versions are continuously pushed out, some users have claimed that they have been burnt by new versions (unknown how valid these claims are)
- How to make the transition to VPC CNI pod identity association easier since that will require an IAM role which currently lives in another module.
- Current implementation is generic over the add-ons API; you pass in the add-on name you wish to enable. This would impose a double loop or loop and compare
- This also introduces a conflict that we are trying to remove with embedding an external module (KMS)
AyhanSetirekli, tunguyen9889, mhulscher, Moglum, mguillet-payfit and 5 more