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.
Application resources to inventory Helm-deployed apps, including which
Git repo each one is deployed from.aws eks describe-addon-versions for the target
version.helm template and runs
pluto against it to flag deprecated/removed
Kubernetes APIs.CLUSTER_NAME=prod-eu \
TARGET_EKS_VERSION=1.32 \
AWS_REGION=eu-west-1 \
OUTPUT_PATH=./report.md \
python -m eks_upgrade_advisor
Requires 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 -q
MIT — see LICENSE.
Content type
Image
Digest
sha256:3acb13550…
Size
378 MB
Last updated
3 days ago
docker pull devopsiaci/eks-upgrade-advisor:v1.1.0