Skip to main content
Source

This page is generated from skills/eks-build/references/version-matrix.md. Edit the source, not this page.

Version Management

Do NOT use hardcoded versions. Always look up current versions from the authoritative sources below before generating code. Pin the verified version in the generated addons.yaml or ApplicationSet.

Version Lookup Process

Before generating a project, look up every addon and module version. Never reuse versions from a previous generation -- they go stale.

How to Look Up Versions

Use these methods in order of preference:

  1. Web search (recommended) -- Search the internet for the addon name + "latest version" or "helm chart version". Examples:

    • Search: aws-load-balancer-controller helm chart latest version
    • Search: cert-manager latest stable release
    • Search: terraform-aws-modules/eks latest version
  2. ArtifactHub pages -- Fetch the ArtifactHub URL from the table below for current chart version, app version, and changelog.

  3. GitHub releases -- For addons not on ArtifactHub (e.g., cluster-autoscaler), check the GitHub releases page.

  4. Terraform Registry -- For Terraform modules, fetch the registry page.

  5. Helm CLI (if available) -- Run helm search repo <chart> after adding the repo.

Lookup Rules

  • EKS managed addons: Use most_recent: true in Terraform -- EKS auto-selects compatible versions. No manual lookup needed.
  • Helm chart addons: Look up each enabled addon's latest stable chart version.
  • cluster-autoscaler: Image tag MUST match the EKS K8s minor version (e.g., v1.x.y for EKS 1.x).
  • Terraform modules: Check registry for latest compatible version. Use ~> constraint for minor version flexibility.

Authoritative Version Sources

Look up current versions here before every project generation:

AddonHelm Repo / Source
karpenterhttps://github.com/aws/karpenter-provider-aws/releases
aws-load-balancer-controllerhttps://artifacthub.io/packages/helm/aws/aws-load-balancer-controller
cluster-autoscalerhttps://github.com/kubernetes/autoscaler/releases
metrics-serverhttps://artifacthub.io/packages/helm/metrics-server/metrics-server
cert-managerhttps://artifacthub.io/packages/helm/cert-manager/cert-manager
external-dnshttps://artifacthub.io/packages/helm/external-dns/external-dns
external-secretshttps://artifacthub.io/packages/helm/external-secrets/external-secrets
kyvernohttps://artifacthub.io/packages/helm/kyverno/kyverno
kyverno-policieshttps://artifacthub.io/packages/helm/kyverno/kyverno-policies
gatekeeperhttps://artifacthub.io/packages/helm/gatekeeper/gatekeeper
velerohttps://artifacthub.io/packages/helm/vmware-tanzu/velero
ingress-nginxhttps://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx
aws-privateca-issuerhttps://artifacthub.io/packages/helm/cert-manager/aws-privateca-issuer
Terraform ModuleRegistry
ekshttps://registry.terraform.io/modules/terraform-aws-modules/eks/aws
eks-blueprints-addonshttps://registry.terraform.io/modules/aws-ia/eks-blueprints-addons/aws
eks-blueprints-addonhttps://registry.terraform.io/modules/aws-ia/eks-blueprints-addon/aws
eks-pod-identityhttps://registry.terraform.io/modules/terraform-aws-modules/eks-pod-identity/aws

Known Stale Defaults (eks-blueprints-addons Module)

The eks-blueprints-addons module ships chart defaults that lag behind. These addons MUST be overridden:

AddonProblem with Module DefaultOverride Required?
aws-load-balancer-controllerModule default is many versions behind; old versions CrashLoop on IMDS hop-limitYes -- always override
external-secretsModule default lags significantlyRecommended
gatekeeperModule default lagsRecommended
veleroModule default uses old chart major versionRecommended for Pattern 2
kyverno (custom-addons)Custom-addons module default is behind stableAlways override

Addon-Specific Version Rules

cluster-autoscaler

  • Image tag MUST match EKS K8s minor version (e.g., v1.x.0 for EKS 1.x)
  • The eks-blueprints-addons module auto-selects correct tag for Pattern 1
  • For Pattern 2, set image.tag explicitly in the ApplicationSet
  • Verify via: kubectl get deploy -n kube-system cluster-autoscaler-aws-cluster-autoscaler -o jsonpath='{.spec.template.spec.containers[0].image}'

aws-load-balancer-controller

  • Requires explicit vpcId in Helm values -- IMDS fallback fails with hop-limit
  • Watch for major chart version bumps that change value schemas

velero

  • Set upgradeCRDs: false -- bitnami/kubectl image for latest K8s may not exist
  • Pin kubectl.image.tag to the latest available -- search Docker Hub for bitnami/kubectl
  • Set credentials.useSecret: false when using Pod Identity

kyverno

  • Override custom-addons module chart version to latest stable
  • Major version upgrades may need TLS secret + pod deletion

Terraform Module Versioning

ModuleVersion StrategyNotes
eks~> <MAJOR>.0Look up latest major; pin with ~> for minor flexibility
eks-blueprints-addonsExact pinChart defaults are stale -- always override chart versions
eks-blueprints-addonExact pinSingle addon wrapper for custom addons
eks capabilitySame as eks moduleSubmodule -- version tied to eks module
eks-pod-identity~> <MAJOR>.0Used for EKS managed addon Pod Identity IAM roles

EKS Capabilities

CapabilityNotes
ArgoCDGA -- fully managed, runs externally, no pods in cluster
ACKGA -- S3 + IAM controllers; field names follow SDK Go convention
KROEarly release -- controller may not yet reconcile RGDs; use ACK directly