Deploying New Releases Using the Canary Strategy
Learn how to deploy a new release using the canary strategy.
We'll cover the following...
Use Argo Rollouts
What we’ve done up to now is a bit boring. We haven’t yet seen any advantage to using Argo Rollouts. That’s about to change. We’ll deploy a second release, and that should kick off the canary deployment process.
Let’s go!
Press + to interact
helm upgrade devops-toolkit helm \--namespace devops-toolkit \--reuse-values \--set image.tag=2.9.9
Watch the rollouts
We changed the tag of the image to 2.9.9
while reusing all the other values.
Let’s watch
the rollout
and see what’s going on.
Press + to interact
kubectl argo rollouts \--namespace devops-toolkit \get rollout devops-toolkit-devops-toolkit \--watch
Output of the yaml
file
The output is as follows.
Press + to interact
Name: devops-toolkit-devops-toolkitNamespace: devops-toolkitStatus: ॥ PausedStrategy: CanaryStep: 1/8SetWeight: 20ActualWeight: 20Images: vfarcic/devops-toolkit-series:2.6.2 (stable)vfarcic/devops-toolkit-series:2.9.9 (canary)Replicas:Desired: 2Current: 3Updated: 1Ready: 3Available: 3NAME KIND STATUS AGE INFO⟳ devops-toolkit-devops-toolkit Rollout ॥ Paused 2m56s├──# revision:2│ └──⧉ devops-toolkit-devops-toolkit-6785bfb67b ReplicaSet ✔ Healthy 36s canary│ └──□ devops-toolkit-devops-toolkit-6785bfb67b-zrzff Pod ✔ Running 36s ready:1/1└──# revision:1└──⧉ devops-toolkit-devops-toolkit-849fcb5f44 ReplicaSet ✔ Healthy 2m41s stable├──□ devops-toolkit-devops-toolkit-849fcb5f44-fgl5v Pod ✔ Running 2m41s ready:1/1└──□ devops-toolkit-devops-toolkit-849fcb5f44-klcrh Pod ✔ Running 2m41s ready:1/1