Skip to content

argoproj/argo-rollouts

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9ebd6b4 · Jan 14, 2023
Oct 18, 2022
Dec 21, 2022
Oct 13, 2022
Oct 13, 2022
Nov 8, 2022
Jan 14, 2023
Jan 4, 2023
Nov 8, 2022
Dec 15, 2022
Oct 13, 2022
Jan 13, 2023
Oct 19, 2022
Jan 3, 2023
Jan 3, 2023
Nov 7, 2022
Oct 13, 2022
Jan 3, 2023
Dec 20, 2022
Dec 19, 2022
Apr 9, 2021
Apr 29, 2021
Dec 13, 2022
Oct 4, 2022
Oct 12, 2021
Dec 20, 2022
Jan 11, 2023
Oct 4, 2022
Oct 4, 2022
Jan 23, 2019
Dec 15, 2022
Oct 16, 2022
Jan 6, 2023
Dec 20, 2022
May 6, 2022
Jan 11, 2023
Jan 11, 2023
Dec 20, 2022
Apr 9, 2021

Repository files navigation

Argo Rollouts - Progressive Delivery for Kubernetes

codecov slack CII Best Practices Artifact HUB

What is Argo Rollouts?

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.

Argo Rollotus Demo

Quick Start

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.

Why Argo Rollouts?

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:

  • Few controls over the speed of the rollout
  • Inability to control traffic flow to the new version
  • Readiness probes are unsuitable for deeper, stress, or one-time checks
  • No ability to query external metrics to verify an update
  • Can halt the progression, but unable to automatically abort and rollback the update

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.

Features

  • Blue-Green update strategy
  • Canary update strategy
  • Fine-grained, weighted traffic shifting
  • Automated rollbacks and promotions
  • Manual judgement
  • Customizable metric queries and analysis of business KPIs
  • Ingress controller integration: NGINX, ALB, Apache APISIX
  • Service Mesh integration: Istio, Linkerd, SMI
  • Metric provider integration: Prometheus, Wavefront, Kayenta, Web, Kubernetes Jobs, Datadog, New Relic, InfluxDB

Supported Traffic Shaping Integrations

Traffic Shaping Integration SetWeight SetWeightExperiments SetMirror SetHeader
ALB Ingress Controller ✅ (stable) ✅ (stable) ✅ (alpha)
Ambassador ✅ (stable)
Apache APISIX Ingress Controller ✅ (alpha)
Istio ✅ (stable) ✅ (stable) ✅ (alpha) ✅ (alpha)
Nginx Ingress Controller ✅ (stable)
SMI ✅ (stable) ✅ (stable)
Traefik ✅ (beta)

✅ = Supported

❌ = Not Supported

Documentation

To learn more about Argo Rollouts go to the complete documentation.

Community

You can reach the Argo Rollouts community and developers via the following channels:

Who uses Argo Rollouts?

Official Argo Rollouts User List

Community Blogs and Presentations