Argo Rollouts — Progressive Delivery for Kubernetes
A Kubernetes controller that provides advanced deployment strategies like canary releases, blue-green deployments, and automated rollback with traffic management integration.
What it is
Argo Rollouts is a Kubernetes controller that replaces the built-in Deployment resource with advanced deployment strategies. It supports canary releases with configurable traffic weight steps, blue-green deployments with instant traffic switching, and automated analysis-driven promotions that reduce the blast radius of bad releases.
The tool targets platform engineers and DevOps teams running Kubernetes in production who need safer deployment strategies than the default rolling update. It integrates with service meshes like Istio and Linkerd, plus ingress controllers like Nginx and ALB.
How it saves time or tokens
Without Argo Rollouts, teams either accept the risk of all-at-once deployments or build custom canary logic with shell scripts and manual traffic splitting. Argo Rollouts encodes these patterns declaratively in a CRD, eliminating hours of scripting per release pipeline. The AnalysisRun feature automatically queries Prometheus or Datadog metrics and promotes or rolls back without human intervention.
How to use
- Install the Argo Rollouts controller and kubectl plugin:
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
brew install argoproj/tap/kubectl-argo-rollouts
- Define a Rollout resource instead of a Deployment:
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-app
spec:
replicas: 5
strategy:
canary:
steps:
- setWeight: 20
- pause: {duration: 5m}
- setWeight: 50
- pause: {duration: 5m}
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: app
image: my-app:v2
- Watch the rollout progress:
kubectl argo rollouts get rollout my-app --watch
Example
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: api-server
spec:
strategy:
blueGreen:
activeService: api-active
previewService: api-preview
autoPromotionEnabled: false
selector:
matchLabels:
app: api-server
template:
metadata:
labels:
app: api-server
spec:
containers:
- name: api
image: api-server:v3
Related on TokRepo
- DevOps tools directory -- Other CI/CD and infrastructure automation tools
- Automation tools -- Broader automation solutions for development workflows
Common pitfalls
- Forgetting to install the CRDs before creating Rollout resources causes silent failures with no error feedback
- Canary traffic splitting requires a compatible ingress controller or service mesh; without one, Argo Rollouts falls back to replica-based splitting which is less precise
- Setting autoPromotionEnabled to true in blue-green mode bypasses the preview verification step, defeating the purpose of blue-green deployments
Frequently Asked Questions
A standard Deployment only supports rolling updates, replacing pods one by one. Argo Rollouts adds canary releases with traffic weight control, blue-green deployments with instant cutover, and analysis-driven promotions that auto-rollback based on metrics. It replaces the Deployment resource with a Rollout CRD.
No, it works without a service mesh using replica-based traffic splitting. However, for precise percentage-based traffic control, it integrates with Istio, Linkerd, Nginx Ingress, AWS ALB, and other traffic management tools.
Yes. AnalysisRuns query metrics from Prometheus, Datadog, or other providers during the canary phase. If metrics breach defined thresholds, Argo Rollouts automatically aborts the rollout and reverts to the previous stable version.
Argo CD handles GitOps-based deployment synchronization from a Git repository to a cluster. Argo Rollouts handles the deployment strategy once the manifests reach the cluster. They are complementary tools from the same Argoproj ecosystem and work well together.
If no duration is set on a pause step, it waits indefinitely for manual promotion via the CLI or UI. If a duration is set, it automatically advances to the next step when the timer expires. Failed AnalysisRuns during a pause will trigger an automatic rollback.
Citations (3)
- Argo Rollouts GitHub— Argo Rollouts provides canary and blue-green deployment strategies for Kubernete…
- Argo Rollouts Docs— Integrates with Istio, Linkerd, Nginx, and ALB for traffic management
- Argo Rollouts Analysis— AnalysisRuns support Prometheus, Datadog, and custom metric providers
Related on TokRepo
Discussion
Related Assets
Conda — Cross-Platform Package and Environment Manager
Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.
Sphinx — Python Documentation Generator
Generate professional documentation from reStructuredText and Markdown with cross-references, API autodoc, and multiple output formats.
Neutralinojs — Lightweight Cross-Platform Desktop Apps
Build desktop applications with HTML, CSS, and JavaScript using a tiny native runtime instead of bundling Chromium.