Tool ยท outside the project
Rollout controller
Rolls a release out step by step, checks it against metrics at each step, and rolls it back on failure.
No illustration yet
catalog/tools/rollout-controller.svg A rollout controller moves traffic from the old version to the new one in steps, checks the new one against metrics at each step, and rolls back when a check fails. It is part of the deployment platform, found in its configuration rather than assumed.
Finding it
- The deployment manifests: a
Rolloutresource (Argo Rollouts) or aCanaryresource (Flagger) beside or in place of a plainDeployment. - The analysis: an
AnalysisTemplatein Argo Rollouts, or the metric checks in Flagger, naming the queries and their limits. - Access through
kubectl, and the controller's own plugin or dashboard (kubectl argo rollouts).
Using it
- Follow a rollout to its end:
kubectl rollout status deployment/<name>, orkubectl argo rollouts get rollout <name> --watch. - Compare the new version with the old under the same traffic, not only with a fixed limit.
- Set a step with no metric data to stop the rollout, rather than let it through.
- Check the rollback itself (
kubectl rollout undo,kubectl argo rollouts abort): the old version is healthy again afterwards.
Examples: kubectl rollout (Kubernetes), Argo Rollouts, Flagger; Kayenta for the canary analysis alone (Spinnaker).
Built from catalog/tools/rollout-controller.md.