Combining ArgoCD and Argo Rollouts

Summer of K8s: Ship | Week 4 Learning Activities

Understand options for integrating the Argo projects into your workflow

Conduct a rollout of a sample application via the CLI, just YAML, and via Ambassador DCP

Submit your work

Submit answers to weekly challenges by Friday at 5pm PDT to qualify for weekly prize drawings.



The goal of this tutorial is to trigger an Argo Rollout of the sample project that Kostis demonstrated in week 3 of the ship module without using kubectl to apply the changes to the Argo Rollout CRD. You will do this by integrating Argo CD into the week 3 demo.

First you will need to combine the cluster configuration from week 2 and 3 of the ship sessions. The goal is to create a Kubernetes cluster with the following installed:

  • Argo CD (from week 2)
  • Ambassador Edge Stack (from week 2, and referenced in week 3)
  • Argo Rollouts (from week 3)

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 a 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. Take a screenshot of the Argo Rollouts CLI "watching" the canary (e.g. running 'kubectl argo rollouts get rollout summer-k8s-rollout -n demo -w') at the second step of the canary release process.

Once you've completed the reading and tutorial, answer the following questions:


Get Expert Help 🧑‍💻

Have questions or need help with certain learning activities? We’ve got you covered.

See a live walk-through of the challenge (7/28)

Follow us on Twitch

See a live walk-through of the challenge (7/28)

Subscribe to our YouTube channel

Get help from the community

Join Slack