ArgoCD Curriculum
What Is Argo Rollouts
In the previous module, we covered data-driven progressive delivery loops, configured automated metrics analyses, and reviewed rollback validations workflows. With those deployment concepts clear, we will now start Module 15: Argo Rollouts, beginning with What is Argo Rollouts.
Standard Kubernetes Deployments support only basic rolling updates. Argo Rollouts is a dedicated controller that introduces custom resource definitions (CRDs) to support advanced canary releases, blue-green deployments, traffic management integrations, and automated metric validations.
In this guide, we will cover the operator architecture, analyze custom resource structures, and review progressive delivery features.
1. The Operator Architecture
Argo Rollouts runs as a controller pod inside your cluster, watching for custom resources and managing deployment replica sets:
- Watch Custom Resources: The controller watches for changes to your Rollout manifests.
- Manage ReplicaSets: Instead of delegates to standard Kubernetes controllers, the Rollouts manager creates and scales the stable and preview ReplicaSets directly.
- Control Traffic Splitting: It communicates with ingress controllers (e.g., Nginx, ALB) or service meshes (e.g., Istio) to adjust routing weights.
- Trigger Metric Evaluations: It runs AnalysisRuns to check metrics (from Prometheus or Datadog) before promoting the rollout steps.
2. Introducing Custom Resource Definitions (CRDs)
Argo Rollouts introduces three key CRDs to configure progressive delivery:
The Rollout CRD
This resource replaces the standard Deployment spec. It defines the pod template, the deployment strategy (Canary or Blue-Green), traffic splitting properties, and the list of steps:
The AnalysisTemplate CRD
Defines how to query metrics providers (e.g., database error counts or latency thresholds) to validate deployment health.
The AnalysisRun CRD
Represents an instantiation of an AnalysisTemplate running inside the cluster. It contains the actual metric values collected during the rollout steps.
3. Operational Best Practices: Argo Rollouts
- Separate templates from resources: Define reusable AnalysisTemplates globally in the namespace, and reference them inside your Rollout manifests.
- Define fallback defaults: Ensure your metrics queries are fast and return clear status values to prevent analysis timeouts.
- Monitor controller health: Regularly check the logs of your Rollouts controller to verify configuration parses: