Skip to main content

The Scenario

You have 8 Kubernetes clusters across 3 regions (us-east, us-west, eu-west). When you release a new version, you need to:
  • Deploy to all 8 clusters
  • Not break everything at once
  • Verify each cluster before moving to the next
  • Roll back if something goes wrong

Without Ctrlplane

Option A: Deploy to all at once
  • Fast, but risky
  • One bad deploy breaks all regions simultaneously
  • Rollback is chaotic
Option B: Manual sequential deploys
  • Safe, but slow
  • Someone has to babysit each deployment
  • Easy to forget a cluster
  • Inconsistent timing between regions
Option C: Complex CI/CD matrix
  • Build intricate pipeline logic
  • Hard to maintain
  • Verification is bolted on, not built in

With Ctrlplane

Define your resources with region metadata:
Create an environment that matches all production clusters:
Add a gradual rollout policy:

What Happens

  1. Version created — CI builds v1.2.3 and tells Ctrlplane
  2. First cluster deploys — us-east-1 receives the deployment
  3. Verification runs — Datadog metrics are checked for 5 minutes
  4. Wait interval — 10 minutes pass before next cluster
  5. Next cluster deploys — us-west-2 receives the deployment
  6. Repeat — Continue until all clusters are updated
  7. Auto-rollback — If any verification fails, roll back that cluster

Key Benefits

Variations

By Region First

Deploy to all clusters in us-east first, then us-west, then eu-west:

Canary Then Full

Deploy to 1 cluster first, verify for an hour, then deploy to the rest:

Next Steps

Gradual Rollouts

Configure rollout timing and ordering

Verification

Set up health checks with Datadog, Prometheus, HTTP