Prerequisites
AWS_PROFILEset with appropriate permissionskubectlcontext pointing at the cluster to delete- The cluster name and region
Step 1: Remove Global Accelerator endpoint groups
Do this BEFORE deleting the cluster. GA keeps ENIs in the VPC subnets as long as an endpoint group exists for the region. If you delete the cluster first, the orphaned ENIs block VPC/subnet deletion and CloudFormation gets stuck. GA API is always inus-west-2 regardless of where the endpoints are.
ela-attach type) — you must delete the endpoint group and wait.
Step 2: Stop ArgoCD
ArgoCD will recreate load balancers and other resources as fast as you delete them. You must shut it down before proceeding.Step 3: Delete the cluster
If CloudFormation gets stuck
Ifeksctl delete cluster fails because the EKS cluster is already gone but the CloudFormation stack remains:
GlobalAccelerator configured ENI entries, go back to Step 1 — you missed an endpoint group.
To delete the stack manually after the blocker is resolved:
Step 4: Clean up
After the cluster and stacks are fully deleted:- Remove the kubectl context:
kubectl config delete-context <context-name> - Remove any DNS records that ExternalDNS created (or let TTLs expire)
- Re-add the GA endpoint group when the replacement cluster is ready
Correct order for cluster replacement
When replacing a cluster in a region fronted by Global Accelerator:- Create the new cluster
- Wait for new load balancers to provision
- Update the GA endpoint group to point to the new LB ARNs
- Stop ArgoCD on the old cluster (Step 2 above)
- Delete the old cluster (Step 3 above)

