Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.
Argo Rollouts (optionally) integrates with ingress controllers and service meshes, leveraging their traffic shaping abilities to gradually shift traffic to the new version during an update. Additionally, Rollouts can query and interpret metrics from various providers to verify key KPIs and drive automated promotion or rollback during an update.
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
Follow the full getting started guide to walk through creating and then updating a rollout object.
Kubernetes Deployments provides the RollingUpdate
strategy which provide a basic set of safety guarantees (readiness probes) during an update. However the rolling update strategy faces many limitations:
For these reasons, in large scale high-volume production environments, a rolling update is often considered too risky of an update procedure since it provides no control over the blast radius, may rollout too aggressively, and provides no automated rollback upon failures.
Traffic Shaping Integration | SetWeight | SetWeightExperiments | SetMirror | SetHeader | Implemented As Plugin |
---|---|---|---|---|---|
ALB Ingress Controller | :white_check_mark: (stable) | :white_check_mark: (stable) | :x: | :white_check_mark: (alpha) | |
Ambassador | :white_check_mark: (stable) | :x: | :x: | :x: | |
Apache APISIX Ingress Controller | :white_check_mark: (alpha) | :x: | :x: | :white_check_mark: (alpha) | |
Istio | :white_check_mark: (stable) | :white_check_mark: (stable) | :white_check_mark: (alpha) | :white_check_mark: (alpha) | |
Nginx Ingress Controller | :white_check_mark: (stable) | :x: | :x: | :x: | |
SMI | :white_check_mark: (stable) | :white_check_mark: (stable) | :x: | :x: | |
Traefik | :white_check_mark: (beta) | :x: | :x: | :x: | |
Contour | :white_check_mark: (beta) | :x: | :x: | :x: | :heavy_check_mark: |
Gateway API | :white_check_mark: (alpha) | :x: | :x: | :x: | :heavy_check_mark: |
:white_check_mark: = Supported
:x: = Not Supported
:heavy_check_mark: = Yes
To learn more about Argo Rollouts go to the complete documentation.
You can reach the Argo Rollouts community and developers via the following channels:
Official Argo Rollouts User List