Introduction
Argo Rollouts extends Kubernetes with progressive delivery strategies that the built-in Deployment controller does not support. It lets teams ship with canary releases, blue-green switches, and analysis-driven promotions, reducing the blast radius of bad deployments to a fraction of traffic.
What Argo Rollouts Does
- Implements canary deployments with configurable traffic weight steps
- Supports blue-green deployments with instant traffic switching and preview stacks
- Runs automated analysis using Prometheus, Datadog, or custom metric queries
- Integrates with service meshes and ingress controllers for traffic splitting
- Provides automatic rollback when analysis metrics exceed failure thresholds
Architecture Overview
Argo Rollouts introduces a Rollout CRD that replaces the standard Deployment. A controller watches Rollout resources and manages ReplicaSets according to the defined strategy. For canary deployments, it adjusts traffic weights on the ingress or service mesh. An AnalysisRun CRD queries metric providers and determines whether to promote, pause, or abort the rollout.
Self-Hosting & Configuration
- Install the controller via manifest YAML or Helm chart in the argo-rollouts namespace
- Define Rollout resources with canary steps or blue-green switch configuration
- Configure traffic management via Istio, Nginx, ALB, SMI, or Traefik integrations
- Set up AnalysisTemplates that query Prometheus, Datadog, CloudWatch, or webhooks
- Use the kubectl plugin or Argo Rollouts Dashboard for visual rollout monitoring
Key Features
- Canary with weighted traffic steps: route 5%, 25%, 50%, 100% progressively
- Blue-green with preview service and automated promotion after validation
- Metric-driven analysis promotes or rolls back based on real SLO data
- Experiment CRD runs temporary ReplicaSets for A/B testing alongside rollouts
- Integrates natively with Argo CD for full GitOps progressive delivery
Comparison with Similar Tools
- Kubernetes Deployment — rolling update only, no canary or blue-green support
- Flagger — similar progressive delivery, tighter Flux/Flagger ecosystem coupling
- Istio VirtualService — traffic splitting without deployment automation or analysis
- Spinnaker — full CD platform with canary; Argo Rollouts is lightweight and K8s-native
- Harness — commercial CD with canary verification; Argo Rollouts is open source
FAQ
Q: Can I use Argo Rollouts without a service mesh? A: Yes. Argo Rollouts supports traffic splitting via Nginx Ingress, AWS ALB, Traefik, and other ingress controllers without requiring a full service mesh.
Q: How does Argo Rollouts integrate with Argo CD? A: Argo CD can manage Rollout resources like any other Kubernetes resource. The Argo CD UI shows rollout status, and promotions can be triggered through sync operations.
Q: What happens when analysis fails during a canary? A: The controller automatically scales down the canary ReplicaSet and routes all traffic back to the stable version, effectively performing an instant rollback.
Q: Can I pause a rollout and promote manually?
A: Yes. Add a pause step in the canary strategy. The rollout waits until an operator runs kubectl argo rollouts promote to continue.