Example Apps to Demonstrate Argo CD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Daniel Helfand cc06c8f884 fix: blue-green example uses autoPromotionEnabled: false 3 years ago
..
templates fix: blue-green example uses autoPromotionEnabled: false 3 years ago
.helmignore Add blue-green deployment example (#19) 6 years ago
Chart.yaml feat: update helm samples to use helm3 (#78) 4 years ago
README.md fix: blue-green example uses autoPromotionEnabled: false 3 years ago
values.yaml Add blue-green deployment example (#19) 6 years ago

README.md

Blue Green

The blue green strategy is not supported by Kubernetes Deployments, but it is available via Argo Rollouts. This example demonstrates how to implement a blue-green deployment using Argo CD and Argo Rollouts together.

Prerequisites:

  1. Install Argo CD: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/#core
  2. Install Argo Rollouts: https://argoproj.github.io/argo-rollouts/installation/
  3. Install the kubectl rollouts plugin: https://argoproj.github.io/argo-rollouts/installation/#kubectl-plugin-installation

Walkthrough

  1. Let's start by creating an Argo CD Application and sync it with the helm chart in this git repository:
argocd app create 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:

kubectl port-forward svc/blue-green-helm-guestbook 8080:80 -n default

After running the command above, the application can be viewed at localhost:8080.

  1. Change the image version parameter to trigger the blue-green deployment process:
argocd app set blue-green -p image.tag=0.2 && argocd app sync blue-green

After running the command above, the 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 or only available via the preview service blue-green-helm-guestbook-preview.

You can run the following to view the blue preview service:

kubectl port-forward svc/blue-green-helm-guestbook-preview 8081:80 -n default

The blue preview version of the application will be available at localhost:8081, but the active version of the application at localhost:8080 is still displaying the older version of the application.

  1. Promote ks-guestbook-demo:0.2 to green by patching Rollout resource:
kubectl argo rollouts promote blue-green-helm-guestbook -n default

This promotes ks-guestbook-demo:0.2 to green status and the Rollout deletes the old replica which runs ks-guestbook-demo:0.1.

If you stop and rerun kubectl port-forward svc/blue-green-helm-guestbook 8080:80 -n default again, you should see the new version is now available via the active service at localhost:8080.