Argo Rollouts brings powerful progressive delivery strategies to Kubernetes, helping you deploy updates with greater control and confidence. Whether it’s canary or blue-green deployments, Argo Rollouts lets you shift traffic gradually, monitor real-time metrics, and automate rollbacks, all without impacting the user experience.
For DevOps engineers who wish to simplify deployment pipelines, Argo Rollouts provides a native GitOps approach for progressive delivery. Platforms like Devtron take it a step further by making rollout strategies easier to configure and visualize, so you can focus more on delivery.
Kubernetes has transformed containerized application management by enabling seamless scaling and faster deployments. However, as deployments become more complex, managing them efficiently can become challenging. Modern applications require zero downtime, rapid iteration, and safe rollouts, making traditional deployment methods risky and insufficient.
ArgoCD and Argo Rollouts address this challenge by bringing GitOps-based continuous delivery and progressive deployment strategies to Kubernetes. At the same time, Argo Rollouts enable teams with advanced deployment strategies, such as canary, blue-green, and rolling updates.
In this blog, we’ll understand what Argo Rollouts is. How Argo Rollouts Work: Why We Need Argo Rollouts.
Argo Rollouts

Argo Rollouts is a Custom Kubernetes Controller and CRD (Custom Resource Definition) to extend the capabilities of Kubernetes resources to automate the deployment strategies by providing advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes. It builds on the standard Kubernetes Deployment controller and brings even more to the table, offering advanced deployment strategies like Blue-Green, A/B testing, and Canary releases.
Why Argo Rollouts?
Kubernetes's built-in Deployment object uses the RollingUpdate strategy, which offers basic safety during updates by relying on readiness probes. However, this strategy has several limitations:
- Limited control over update speed.
- No traffic management between old and new versions.
- Readiness probes don’t cover deep or one-time checks.
- Can’t use external metrics to verify updates.
- Can pause updates but can’t auto-rollback on failure.
Rolling updates can be risky in busy production environments because they may push changes too fast and lack automatic rollback on failure. That’s why many teams use progressive delivery with rollouts, which gradually shift traffic, perform deeper checks, and automatically roll back if needed, making releases safer and smarter for critical systems.
Argo Rollouts Concepts
The Concepts of Argo Rollouts are :
Rollout
A Rollout is a Kubernetes workload resource that's very similar to a Deployment. It is designed for scenarios where you need progressive delivery or more advanced deployment strategies. Argo Rollouts offers capabilities beyond standard Deployments, such as blue-green and canary deployments, integration with ingress controllers and service meshes for smarter traffic routing, and support for metric providers to analyze how a rollout is performing.
Deployment Strategies
Blue-green deployment: In this strategy, the two ReplicaSets run side by side, and traffic is switched from the old to the new version once the new ReplicaSet is verified.
Canary deployment: exposes a limited set of users to the new application version while sending all other traffic to the old version. Traffic is incrementally shifted from the old ReplicaSet to the new one, once the controller has verified that the new version behaves correctly.
Progress Delivery:
Progressive delivery with Argo Rollouts is the practice of releasing application updates gradually and in a controlled manner to reduce deployment risk. Instead of updating all users at once, new versions are exposed to a small subset of users initially, and then traffic is incrementally shifted to the new version as it proves stable and healthy.
Key features of Argo Rollouts
- Canary Deployments: Argo Rollouts streamlines Canary releases in Kubernetes, enabling precise, weight-based traffic routing, customizable analysis, and manual or automatic promotion or rollback via metrics.
- Progressive Delivery Strategies: Apart from Canary, Argo Rollouts also supports various progressive delivery strategies like Blue-Green deployments and manual gating (manual judgment). A/B testing is not directly mentioned by name, however, and can be simulated using traffic shifting with Ingress or Service Mesh integrations.
- Traffic Shifting and Control: Argo Rollouts offers traffic shifting with automation and customization, supported by native integrations with Ingress controllers (NGINX, ALB, Apache APISIX) and Service Meshes (Istio, Linkerd, SMI). Thus, traffic routing between application versions is smooth during rollouts.
- Observability and Metrics-Based Decisions: Argo Rollouts enables metric-based decision making for rollout by integrating with providers such as Prometheus, Datadog, New Relic, Wavefront, Kayenta, and others. With this, you can make rollout decisions based on your business KPIs and your custom metrics.
How does the Argo Rollouts work?

- The Argo Rollout controller is built on the standard Kubernetes deployment objects. It manages Replica sets by creating, deleting, and scaling them as needed.
- The Rollout resource’s
spec.template
field defines the pod template, similar to a Kubernetes Deployment, which is used to create ReplicaSets. - When changes are made to
spec.template
(such as updating the application version), The Argo Rollouts controller creates a new ReplicaSet reflecting those changes. - The
spec.strategy
field specifies the deployment strategy (e.g., canary, blue-green) that the controller uses to manage the rollout process. - During a rollout, the controller scales up the new ReplicaSet according to the strategy and can optionally run automated analysis to verify its health before marking it as stable.
- The controller continuously monitors
spec.template
The and incorporates any further changes by creating new ReplicaSets as needed while transitioning from the current stable ReplicaSet. - This approach ensures smooth, controlled rollouts with the ability to safely update applications while minimizing downtime and risk.
Quick tutorial: Canary Deployments with Argo Rollouts
To illustrate how the Argo rollouts work, let’s see how Argo Rollouts executes a canary deployment strategy step-by-step:
Step 1: Installing Argo Rollout
- Controller Installation
Run the following command to create a namespace where the Argo Rollout controllers can run.
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
- Run the following command to install the Argo Rollouts kubectl plugin.
brew install argoproj/tap/kubectl-argo-rollouts
Step 2: Deploying a Rollout
First, we deploy a Rollout resource and a Kubernetes Service targeting that Rollout.
spec:
replicas: 5
strategy:
canary:
steps:
- setWeight: 20
- pause: {}
- setWeight: 40
- pause: {duration: 10}
- setWeight: 60
- pause: {duration: 10}
- setWeight: 80
- pause: {duration: 10}
In the above YAML, this code initially deploys a new version to 20% of the pods, then waits for manual approval, which is triggered by the pause: {} step. Once an operator approves the rollout, it automatically progresses to 40%, then 60%, and then 80% of the pods, with 10-second pauses between each step (pause: {duration: 10}). After the final pause, the rollout proceeds to 100% of the pods, completing the canary deployment.
To deploy the initial Rollout and Services, run the command:
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/rollout.yaml
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/service.yaml
To view the status of the deployment, run the following command.
kubectl argo rollouts get rollout rollouts-demo --watch

Step 3: View the Argo Rollouts UI
To open the Argo Rollouts dashboard in your browser, run the following command:
kubectl argo rollouts dashboard
This command will start a local server and provide you with a URL that opens the Argo Rollouts dashboard in your browser.

Copy the URL and paste it into your browser to access the dashboard.

Why do DevOps Engineers need Argo Rollouts?
- Argo rollouts support progressive delivery, which helps DevOps engineers deploy new versions gradually and decrease the risks of deployment by implementing strategies such as canary and blue-green deployments. This approach minimizes the impact of potential issues, enables early detection of problems, and allows teams to monitor application performance in real time during the rollout process.
- Argo Rollouts is a Kubernetes controller that takes deployment capabilities beyond the standard Deployment. It introduces advanced strategies like blue-green and canary releases, enabling DevOps engineers to roll out applications with greater precision and control, minimizing downtime and improving update safety.
- By integrating with ingress controllers and service meshes, Argo Rollouts leverages its traffic management features to smoothly shift user traffic to new application versions during updates.
- It also connects with various metrics providers to monitor performance in real time.
Conclusion
- Automated Deployments: Argo Rollouts enables DevOps engineers to implement advanced strategies like canary and blue-green deployments with automated traffic shifting and metric-driven rollbacks, reducing deployment risks and manual effort.
- Seamless Integration and Control: It integrates with service meshes and monitoring tools to provide fine-grained traffic management and real-time health analysis, while also supporting manual approvals for critical checkpoints.
- Scalable for Large Environments: Designed to handle complex microservices architectures and large-scale deployments with fine-grained control and observability.
FAQ
What is the difference between rollout and deployment?
Deployments: Less flexible with basic monitoring abilities.
Rollouts: More control over the deployment process and sophisticated monitoring with integrations.
Can Argo Rollouts be used without adopting GitOps workflows?
Yes, Argo Rollouts works with any CI/CD system. It reacts to manifest changes regardless of how they are applied-via Git commits, API calls, other controllers, or manual kubectl
commands making it flexible for various deployment pipelines.
Does Argo Rollouts require a service mesh like Istio to function?
No, Argo Rollouts does not require a service mesh or ingress controller. Without a traffic routing provider, it manages replica counts of canary and stable ReplicaSets to approximate traffic weights using standard Kubernetes Service routing.
Is it possible to run Argo Rollouts in a high-availability (HA) mode?
Yes, you can run multiple replicas of the Argo Rollouts controller with leader election enabled to achieve high availability. This setup ensures continuous operation even if some controller instances fail