This repo contains the Argo Rollouts demo application source code and examples. It demonstrates the various deployment strategies and progressive delivery features of Argo Rollouts.
The following examples are provided:
Example | Description |
---|---|
Canary | Rollout which uses the canary update strategy |
Blue-Green | Rollout which uses the blue-green update strategy |
Canary Analysis | Rollout which performs canary analysis as part of the update. Uses the prometheus metric provider. |
Experiment | Experiment which performs an A/B test. Performs analysis against the A and B using the job metric provider |
Preview Stack Testing | Rollout which launches an experiment that tests a preview stack (which receives no production traffic) |
Canary with istio (1) | Rollout which uses host-level traffic splitting during update |
Canary with istio (2) | Rollout which uses subset-level traffic splitting during update |
Before running an example:
- Install Argo Rollouts
- See the document Getting Started
- Install Kubectl Plugin
- See the document Kubectl Plugin
To run an example:
- Apply the manifests of one of the examples:
kustomize build <EXAMPLE-DIR> | kubectl apply -f -
OR
kubectl apply -k <EXAMPLE-DIR>
- Watch the rollout or experiment using the argo rollouts kubectl plugin:
kubectl argo rollouts get rollout <ROLLOUT-NAME> --watch
kubectl argo rollouts get experiment <EXPERIMENT-NAME> --watch
- For rollouts, trigger an update by setting the image of a new color to run:
kubectl argo rollouts set image <ROLLOUT-NAME> "*=argoproj/rollouts-demo:yellow"
kubectl delete -k <EXAMPLE-DIR>
Available images colors are: red, orange, yellow, green, blue, purple (e.g. argoproj/rollouts-demo:yellow
). Also available are:
- High error rate images, prefixed with the word
bad
(e.g.argoproj/rollouts-demo:bad-yellow
) - High latency images, prefixed with the word
slow
(e.g.argoproj/rollouts-demo:slow-yellow
)
To release new images:
make release IMAGE_NAMESPACE=argoproj DOCKER_PUSH=true