Semi-automated EKS cluster upgrade using scripts/upgrade-cluster.sh.
awsCLI configured with cluster admin permissionskubectlcontext pointing to the target cluster- All workloads healthy before starting
bash infrastructure/scripts/validate-upgrade.sh \
--current 1.29 --target 1.30Verify:
- All nodes in
Readystate - No pods in
CrashLoopBackOfforPending - No deprecated APIs in use (run
pluto detect-all-in-cluster)
CLUSTER_NAME=gistpin-cluster \
bash infrastructure/scripts/upgrade-cluster.sh \
--target-version 1.30 --dry-runThen for real:
CLUSTER_NAME=gistpin-cluster \
bash infrastructure/scripts/upgrade-cluster.sh \
--target-version 1.30The script runs validate-upgrade.sh automatically after each step.
Additionally verify:
kubectl get nodes -o wide
kubectl get pods -A | grep -v Running | grep -v CompletedEKS does not support in-place downgrade. To roll back:
- Restore node groups from a pre-upgrade launch template snapshot
- Cordon upgraded nodes and uncordon old nodes
- Contact AWS Support for control plane rollback if needed
| Environment | Policy |
|---|---|
| dev | Upgrade within 2 weeks of GA |
| staging | Upgrade within 4 weeks of dev validation |
| prod | Upgrade within 8 weeks of staging validation |