Kubernetes Learning Center

Hands-On Course:

GitOps & Canary Releasing

Get hands-on! Combine ArgoCD and Argo Rollouts

JOIN US ON SLACK

Hands-On Course:GitOps and canary releasing: Joining the dots by combining Argo CD and Rollouts

GitOps & canary releasing

Now that you have a solid understanding of both GitOps and canary releasing and how these techniques can be implemented within Kubernetes, the next step is to combine the approaches to enable a progressive delivery workflow.

Tutorial

The goal of this tutorial is to trigger an Argo Rollout of the sample project from the previous hands-on section of this module without using kubectl to apply the changes to the Argo Rollout CRD.

  • First, you will need to combine the cluster configuration from the previous two hands-on sections of the “ship” module. The goal is to create a Kubernetes cluster with the following installed:
  • You will also need to have both the Argo CD and Argo Rollouts CLI tools installed locally.
  • First, clone Kostis' sample manifest repo that he used to deploy his demo app to your own GitHub account
  • Next, create an Argo CD project using your forked demo repo as the target. You can do this either through the Argo CD UI or the CLI
  • Trigger sync on this project in Argo CD so that your sample app deploys into your cluster. View the /demo/ endpoint of the application via the Edge Stack to verify everything is working
  • Now update the “rollout.yaml” file within your forked repo with a new version of the demo app image e.g. “kostiscodefresh/summer-of-k8s-app:v2” and commit this to GitHub.
  • Trigger another Argo CD sync to begin the canary. As Kostis showed in the livestream, you will need to use the Argo Rollouts CLI to "promote" your canary several times so that a complete rollout occurs. Take a screenshot of the Argo CD UI during your canary rollout
  • Finally, modify the “rollout.yaml” with a new version of the image e.g. “kostiscodefresh/summer-of-k8s-app:v3”, and change the pauses to remove the need for manual promotion and instead add a 30-second pause between each step.

Keep learning!

VIEW ALL COURSES

Kubernetes: Faster & Easier Than Ever Before

View and manage your services across the software development lifecycle in real-time with a common interface that integrates with your existing Kubernetes workflow.

GET STARTED FOR FREE
Questions?

We’re here to help if you have questions.

ServiceImg
Get a free demo cluster through Ambassador Labs