Sign inSign up

devopsiaci/eks-upgrade-advisor

By devopsiaci

•Updated 3 days ago

Image
0

224

devopsiaci/eks-upgrade-advisor repository overview

⁠eks-upgrade-advisor

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.

⁠What it does

  1. Reads the cluster's current EKS version and installed addons (AWS API).
  2. Reads all ArgoCD Application resources to inventory Helm-deployed apps, including which Git repo each one is deployed from.
  3. Checks each EKS-managed addon against aws eks describe-addon-versions for the target version.
  4. Checks third-party charts against the Artifact Hub API.
  5. Renders each chart with helm template and runs pluto⁠ against it to flag deprecated/removed Kubernetes APIs.
  6. 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.

⁠Run

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.

⁠Environment variables
VariableRequiredDefaultDescription
CLUSTER_NAMEyes—EKS cluster name
TARGET_EKS_VERSIONyes—EKS/Kubernetes version to upgrade to (e.g. 1.32)
AWS_REGIONnoeu-west-1AWS region of the cluster
ARGOCD_NAMESPACEnoall namespacesRestrict ArgoCD Application discovery to one namespace
LLM_PROVIDERnocopilot-cliLLM provider used to summarize changelogs
COPILOT_MODELnoclaude-sonnet-4.5Model passed to the Copilot CLI
OUTPUT_PATHno/output/report.mdWhere the rendered report is written

⁠Deploying

A Helm chart is published separately: helm-eks-upgrade-advisor⁠.

⁠Development

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

⁠License

MIT — see LICENSE⁠.

Tag summary

Content type

Image

Digest

sha256:3acb13550…

Size

378 MB

Last updated

3 days ago

docker pull devopsiaci/eks-upgrade-advisor:v1.1.0