Progressive Delivery for Kubernetes
Go to file
Rafael Brito 67d19e100f
chore: make api-proto to support go module style (#4402)
tweak on make api-proto to support go module style

Signed-off-by: Rafael Brito <rafa@stormforge.io>
2025-08-08 11:18:18 -05:00
.chglog ci: auto generate changelog (#2321) 2022-10-18 10:12:14 -07:00
.github chore(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.1 (#4328) 2025-06-23 13:11:26 -05:00
analysis chore: fix deprecation (pointer -> ptr) (#4286) 2025-05-19 07:52:06 -05:00
cmd fix(cli): expose AWS API versions in controller CLI. Fixes #4334 (#4368) 2025-07-24 09:28:08 -05:00
controller feat: reconcile pod ephemeral metadata in parallel (#4130) 2025-02-13 10:21:32 -06:00
docs fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
examples docs: replace `patchesStrategicMerge` with `patches` in tests/docs (#3010) 2023-09-05 10:23:02 -05:00
experiments fix: experiment services deletion before reconciling traffic routing in rollouts (#4310) 2025-07-07 19:11:47 -07:00
hack fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
ingress chore: fix deprecation (pointer -> ptr) (#4286) 2025-05-19 07:52:06 -05:00
manifests fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
metric feat: metric plugin system based on hashicorp go-plugin (#2514) 2023-02-07 16:02:20 -06:00
metricproviders fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
pkg fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
rollout fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
server fix: code weakness of path traversal (#4278) 2025-05-30 21:21:19 +00:00
service fix: correct typo in linter settings key name (#4094) 2025-02-03 10:16:38 -06:00
test fix: experiment services deletion before reconciling traffic routing in rollouts (#4310) 2025-07-07 19:11:47 -07:00
ui fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
utils fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
.codecov.yml fix: rs conflict with fallback to patch (#3559) 2024-06-07 11:53:09 -07:00
.dockerignore chore: automate release process (#1126) 2021-04-29 10:22:03 -07:00
.gitignore fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
.golangci.yml ci: bump golangci-lint to v2 (#4290) 2025-05-30 08:48:19 -05:00
.readthedocs.yaml docs: new syntax for docs conf (#4012) 2024-12-18 16:13:14 +00:00
CHANGELOG-v0.1.0_v1.1.0.md build: manually run auto changelog and fix workflow (#2494) 2022-12-20 13:07:09 -06:00
CHANGELOG.md docs: Update Changelog (#4306) 2025-06-05 13:14:33 +00:00
CONTRIBUTING.md docs: add CONTRIBUTING.md at root of repo, directing to docs/ (#3121) 2023-10-23 06:23:23 -05:00
Dockerfile ci: bump golangci-lint to v2 (#4290) 2025-05-30 08:48:19 -05:00
Dockerfile.dev chore: capitalize AS in Dockerfile (#3781) 2024-08-12 03:08:13 +02:00
LICENSE Apache 2.0 License 2019-01-22 17:34:10 -08:00
Makefile chore: make api-proto to support go module style (#4402) 2025-08-08 11:18:18 -05:00
OWNERS chore: add zachaller as lead in owers file (#2759) 2023-05-05 11:42:44 -05:00
README.md docs: Guides for popular use-cases (#3346) 2024-02-03 18:43:06 +00:00
USERS.md fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
VERSION chore: update version file to 1.2.0 (#2013) 2022-05-06 01:42:23 -07:00
go.mod fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
go.sum fix(deps): bumping k8s modules to 0.30.14 fixes #4210 Rollout CRD and mitigates #4180 (#4212) 2025-08-07 19:20:37 -05:00
mkdocs.yml docs: document canary step plugin (alpha) (#3906) 2024-10-29 17:08:32 +00:00
sonar-project.properties feat: Argo Rollouts api-server and UI (#1015) 2021-04-09 13:11:17 -07:00

README.md

Argo Rollouts - Progressive Delivery for Kubernetes

codecov slack CII Best Practices OpenSSF Scorecard 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 Implemented As Plugin
ALB Ingress Controller (stable) (stable) (alpha)
Ambassador (stable)
Apache APISIX Ingress Controller (alpha) (alpha)
Istio (stable) (stable) (alpha) (alpha)
Nginx Ingress Controller (stable)
SMI (stable) (stable)
Traefik (beta)
Contour (beta) ✔️
Gateway API (alpha) ✔️

= Supported

= Not Supported

✔️ = Yes

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