Auto-discovers EKS addons and ArgoCD-managed Helm charts on a cluster, cross-checks compatibility with a target EKS/Kubernetes version, detects deprecated APIs, and generates a Markdown upgrade report — citing official sources throughout.
Runs as a one-shot Kubernetes Job with read-only RBAC. It does not perform the upgrade
itself; the report is meant to be read by a human before any change is made.
- Reads the cluster's current EKS version and installed addons (AWS API).
- Reads all ArgoCD
Applicationresources to inventory Helm-deployed apps, including which Git repo each one is deployed from. - Checks each EKS-managed addon against
aws eks describe-addon-versionsfor the target version. - Checks third-party charts against the Artifact Hub API.
- Renders each chart with
helm templateand runsplutoagainst it to flag deprecated/removed Kubernetes APIs. - Fetches the official Kubernetes and AWS EKS changelogs itself (deterministically, via HTTP) and asks an LLM to summarize new features and deprecations — the model only ever sees text this tool already downloaded, so every claim in the report is traceable to an official source URL.
CLUSTER_NAME=prod-eu \
TARGET_EKS_VERSION=1.32 \
AWS_REGION=eu-west-1 \
OUTPUT_PATH=./report.md \
python -m eks_upgrade_advisorRequires AWS credentials with eks:Describe*/eks:List* and a kubeconfig (or in-cluster
ServiceAccount) with read access to applications.argoproj.io.
| Variable | Required | Default | Description |
|---|---|---|---|
CLUSTER_NAME |
yes | — | EKS cluster name |
TARGET_EKS_VERSION |
yes | — | EKS/Kubernetes version to upgrade to (e.g. 1.32) |
AWS_REGION |
no | eu-west-1 |
AWS region of the cluster |
ARGOCD_NAMESPACE |
no | all namespaces | Restrict ArgoCD Application discovery to one namespace |
LLM_PROVIDER |
no | copilot-cli |
LLM provider used to summarize changelogs |
COPILOT_MODEL |
no | claude-sonnet-4.5 |
Model passed to the Copilot CLI |
OUTPUT_PATH |
no | /output/report.md |
Where the rendered report is written |
A Helm chart is published separately: helm-eks-upgrade-advisor.
pip install -e .
pip install -r requirements-dev.txt
python -m pytest --cov=eks_upgrade_advisor --cov-report=term-missing
ruff check src/
mypy src/ --ignore-missing-imports
bandit -r src/ -ll -qMIT — see LICENSE.