AlphaSwarm.FUND Blue/Green Cutover
Runbook for migrating alphaswarm.fund traffic to the tower cluster with a short,
controlled DNS/tunnel switch and immediate rollback path.
Green lane artifacts
- Overlay:
alphaswarm_platform/deployments/kubernetes/overlays/tower-green/ - Tunnel lane:
alphaswarm_platform/deployments/kubernetes/edge/cloudflared-alphaswarm-green/ - Verification:
scripts/verify_blue_green_cutover.sh
Green hostnames:
alphaswarm-green.alphaswarm.fundapi-green.alphaswarm.fundmanage-green.alphaswarm.fund
1) Pre-cutover prep
-
Ensure
tower-devis healthy:bash scripts/verify_tower_cluster.sh -
Update Auth0 app allow-lists so both blue and green URLs are valid during transition. Use
alphaswarm_platform/terraform/modules/auth0_identityinputs:callback_urls+cutover_callback_urlslogout_urls+cutover_logout_urlsweb_origins+cutover_web_origins
-
Create green tunnel token secret:
token="$(cloudflared tunnel token alphaswarm-fund-edge-green)"
kubectl -n alphaswarm-edge create secret generic cloudflared-alphaswarm-green-token \
--from-literal=token="$token" \
--dry-run=client -o yaml | kubectl apply -f -
2) Deploy green lane
kubectl apply -k alphaswarm_platform/deployments/kubernetes/edge/cloudflared-alphaswarm-green/
kubectl apply -k alphaswarm_platform/deployments/kubernetes/overlays/tower-green/
3) Validate before switch
bash scripts/verify_blue_green_cutover.sh
CHECK_EXTERNAL=true bash scripts/verify_blue_green_cutover.sh
4) Cut over traffic
Perform the controlled switch in Cloudflare:
- point DNS/app routing to green hostnames (or update tunnel ingress mapping)
- confirm health endpoints:
https://alphaswarm-green.alphaswarm.fundhttps://api-green.alphaswarm.fund/livezhttps://manage-green.alphaswarm.fund/manage/livez
Once stable, update canonical host routing (alphaswarm.fund, api.alphaswarm.fund,
manage.alphaswarm.fund) to the tower green lane.
5) Rollback
Immediate rollback commands:
kubectl apply -k alphaswarm_platform/deployments/kubernetes/overlays/tower-dev/
kubectl delete -k alphaswarm_platform/deployments/kubernetes/edge/cloudflared-alphaswarm-green/
Then restore blue DNS/tunnel routing and rerun baseline checks.