Argo Rollouts
Argo Rollouts is a Kubernetes controller and set of CRDs that provides advanced deployment capabilities beyond the native Deployment object.
Publisher review
Argo Rollouts is a Kubernetes controller and set of CRDs that provides advanced deployment capabilities beyond the native Deployment object. It is designed for teams operating large-scale, high-volume production environments where the rolling update strategy's limitations—few controls over rollout speed, inability to control traffic flow, readiness probes unsuitable for deeper checks, no external metric queries, and no automated rollback—pose unacceptable risk. Argo Rollouts enables blue-green, canary, canary analysis, experimentation, and progressive delivery, integrating with ingress controllers (NGINX, ALB, Apache APISIX) and service meshes (Istio, Linkerd, SMI) to gradually shift traffic to new versions.
It can query and interpret metrics from providers like Prometheus, Wavefront, Kayenta, Datadog, New Relic, Graphite, InfluxDB, and Kubernetes Jobs to verify KPIs and drive automated promotion or rollback. The controller manages ReplicaSets similarly to Deployments, but when spec.template changes, it uses the strategy defined in spec.strategy to progress from old to new ReplicaSet, optionally passing an Analysis before marking the new ReplicaSet as stable. If another template change occurs mid-rollout, the controller scales down the previously new ReplicaSet and progresses the one reflecting the latest change.
Argo Rollouts integrates with Argo CD for GitOps workflows, allowing teams to execute deployment strategies with the same declarative, version-controlled approach. The developer experience is intentionally similar to the Deployment object—only apiVersion and kind change, plus a blueGreen or canary parameter—making it accessible to anyone familiar with Kubernetes Deployments. The project is part of the Argo open source project and is maintained by the CNCF.
How it works
-
Blue-green deployment strategy
Manages two identical environments (blue and green) and switches traffic atomically between them using Service selectors.
-
Canary deployment strategy
Gradually shifts a percentage of traffic to the new version, with fine-grained, weighted control over the traffic split.
-
Automated rollback and promotion
Automatically rolls back the rollout if analysis metrics fail KPIs, or promotes the new version if they pass.
-
Manual judgement for deployments
Allows operators to manually approve or reject a rollout step, providing human oversight during critical updates.
-
Customizable metric analysis
Queries metrics from Prometheus, Datadog, New Relic, Graphite, InfluxDB, and others to verify business KPIs before promotion.
-
Ingress and service mesh integration
Works with NGINX, ALB, Apache APISIX ingress controllers and Istio, Linkerd, SMI service meshes to shape traffic.
-
Simultaneous multi-provider support
Can use multiple traffic management providers at once, e.g., SMI + NGINX or Istio + ALB, for complex topologies.
Strengths and trade-offs
Strengths
- Argo Rollouts provides automated rollback based on metric analysis, a capability absent from Kubernetes native Deployments.
- It supports simultaneous integration with multiple ingress controllers and service meshes, such as SMI + NGINX or Istio + ALB.
- The developer experience mirrors the Kubernetes Deployment object, requiring only changes to apiVersion and kind plus a strategy field.
- It integrates natively with Argo CD, enabling GitOps workflows for progressive delivery strategies.
Trade-offs
- Argo Rollouts adds operational complexity by requiring installation and management of a separate controller and CRDs in the cluster.
- It does not support the full set of Deployment features, such as the RollingUpdate strategy, and cannot be used as a drop-in replacement for all use cases.
- The tool's advanced capabilities (e.g., canary analysis, manual judgement) require careful configuration and monitoring to avoid misconfigurations.
- Documentation and community resources are less mature than those for Kubernetes native Deployments, potentially increasing the learning curve.
Pricing context
Argo Rollouts is open source and free to use under the Apache License 2.0. There are no paid tiers; costs are limited to infrastructure and operational overhead.
Getting started with Argo Rollouts
-
Install Argo Rollouts controller
Install the Argo Rollouts controller and CRDs in your Kubernetes cluster using kubectl. Run 'kubectl create namespace argo-rollouts' then 'kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml'.
-
Configure traffic management provider
Set up your ingress controller or service mesh (e.g., NGINX, Istio) to work with Argo Rollouts. Ensure the provider is installed and configured in your cluster, as Argo Rollouts uses it to shape traffic during canary or blue-green deployments.
-
Define a Rollout resource
Create a YAML file for a Rollout resource, setting apiVersion to argoproj.io/v1alpha1 and kind to Rollout. Add a spec.strategy field with either blueGreen or canary parameters, mirroring the Deployment object structure for familiarity.
-
Run a canary deployment
Apply the Rollout YAML to your cluster with 'kubectl apply -f rollout.yaml'. Monitor the rollout progress using the Argo Rollouts kubectl plugin: 'kubectl argo rollouts get rollout <name>'. Observe traffic shifting and metric analysis.
-
Set up automated rollback
Add an analysis template to your Rollout spec that queries metrics from a provider like Prometheus. Define failure conditions in the template; if metrics breach thresholds, Argo Rollouts automatically rolls back the deployment to the previous stable version.
Frequently Asked Questions
What is Argo Rollouts and what does it do?
Argo Rollouts is a Kubernetes controller and set of CRDs that provides advanced deployment capabilities like blue-green, canary, and progressive delivery. It integrates with ingress controllers and service meshes to gradually shift traffic and can automatically promote or roll back based on metric analysis.
How does Argo Rollouts differ from a standard Kubernetes Deployment?
Argo Rollouts offers more control than native Deployments, including traffic shaping, metric-driven automated rollbacks, and manual judgement. It uses a similar developer experience but requires a separate controller and CRDs, and does not support all Deployment features like RollingUpdate.
What deployment strategies does Argo Rollouts support?
Argo Rollouts supports blue-green and canary deployment strategies. Blue-green manages two identical environments and switches traffic atomically, while canary gradually shifts a percentage of traffic with weighted control. It also enables experimentation and progressive delivery with automated promotion or rollback.
How does Argo Rollouts handle automated rollback and promotion?
Argo Rollouts automatically rolls back the rollout if analysis metrics fail KPIs, or promotes the new version if they pass. This is driven by customizable metric queries from providers like Prometheus, Datadog, and New Relic, providing safer deployments without manual intervention.
Can Argo Rollouts integrate with ingress controllers and service meshes?
Yes, Argo Rollouts integrates with ingress controllers like NGINX, ALB, and Apache APISIX, and service meshes like Istio, Linkerd, and SMI. It can even use multiple traffic management providers simultaneously, such as SMI plus NGINX or Istio plus ALB, for complex topologies.
How does Argo Rollouts work with Argo CD for GitOps?
Argo Rollouts integrates natively with Argo CD, enabling teams to execute deployment strategies using the same declarative, version-controlled GitOps approach. This allows for progressive delivery with automated rollbacks and promotions, all managed through Git repositories.
Alternatives
How Argo Rollouts compares
Direct head-to-head against 3 competitors. Picked by 7wData.
Argo Rollouts
- Pricing
- Argo Rollouts is open source and free to use under the Apache License 2.0. There are no paid tiers; costs are limited to infrastructure and operational overhead.
- Target
- Argo Rollouts is a Kubernetes controller and set of CRDs that provides advanced deployment capabilities beyond the native Deployment object.
- Strength
- Argo Rollouts provides automated rollback based on metric analysis, a capability absent from Kubernetes native Deployments.
- Watch for
- Argo Rollouts adds operational complexity by requiring installation and management of a separate controller and CRDs in the cluster.
Flagger
- Pricing
- Free and open source (CNCF project).
- Target
- Teams needing progressive delivery with service mesh or ingress integration.
- Deployment
- Kubernetes, Istio, Linkerd, NGINX, Contour, Gloo.
- Strength
- Native integration with service meshes for traffic shifting and metric-based canary analysis.
- Watch for
- Requires a service mesh or ingress controller; no standalone traffic management.
Spinnaker
- Pricing
- Free and open source (self-hosted). Managed via Armory or OpsMx.
- Target
- Large enterprises needing multi-cloud deployments with canary analysis and approval gates.
- Deployment
- Kubernetes, AWS, GCP, Azure, bare metal.
- Strength
- Built-in canary analysis with configurable metrics and automated rollback.
- Watch for
- Complex setup and high operational overhead; requires dedicated infrastructure.
Flux
- Pricing
- Free and open source (CNCF graduated).
- Target
- Teams wanting a lightweight GitOps operator with progressive delivery capabilities.
- Deployment
- Kubernetes, Helm, Kustomize.
- Strength
- Tight GitOps integration with image update automation and canary support via Flagger.
- Watch for
- Weaveworks shut down in Feb 2024; community maintenance may slow.
User reviews
No user reviews yet. Be the first to write one.
Sources
Reporting on this tool draws on these publicly available sources.