ConfigsApr 16, 2026·3 min read

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.

TL;DR
Argo Rollouts adds canary, blue-green, and analysis-driven deployments to Kubernetes natively.
§01

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.

§02

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.

§03

How to use

  1. 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
  1. 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
  1. Watch the rollout progress:
kubectl argo rollouts get rollout my-app --watch
§04

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
§05

Related on TokRepo

§06

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

How does Argo Rollouts differ from a standard Kubernetes Deployment?+

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.

Does Argo Rollouts require a service mesh?+

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.

Can Argo Rollouts automatically roll back a bad release?+

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.

How does Argo Rollouts relate to Argo CD?+

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.

What happens if a canary pause step times out?+

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)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets