Alexander Matyushentsev 90ff6843e2 Fix blue-gree example instructions (#21) | %!s(int64=5) %!d(string=hai) anos | |
---|---|---|
.. | ||
templates | %!s(int64=5) %!d(string=hai) anos | |
.helmignore | %!s(int64=5) %!d(string=hai) anos | |
Chart.yaml | %!s(int64=5) %!d(string=hai) anos | |
README.md | %!s(int64=5) %!d(string=hai) anos | |
values.yaml | %!s(int64=5) %!d(string=hai) anos |
The blue green strategy is not supported by built-in Kubernetes Deployment but available via third-party Kubernetes controller. This example demonstrates how to implement blue-green deployment via Argo Rollouts:
Create a sample application and sync it.
argocd app create --name blue-green --repo https://github.com/argoproj/argocd-example-apps --dest-server https://kubernetes.default.svc --dest-namespace default --path blue-green && argocd app sync blue-green
Once the application is synced you can access it using blue-green-helm-guestbook
service.
Change image version parameter to trigger blue-green deployment process:
argocd app set blue-green -p image.tag=0.2 && argocd app sync blue-green
Now application runs ks-guestbook-demo:0.1
and ks-guestbook-demo:0.2
images simultaneously.
The ks-guestbook-demo:0.2
is still considered blue
available only via preview service blue-green-helm-guestbook-preview
.
Promote ks-guestbook-demo:0.2
to green
by patching Rollout
resource:
argocd app patch-resource blue-green --kind Rollout --resource-name blue-green-helm-guestbook --patch '{ "status": { "verifyingPreview": false } }' --patch-type 'application/merge-patch+json'
This promotes ks-guestbook-demo:0.2
to green
status and Rollout
deletes old replica which runs ks-guestbook-demo:0.1
.