5 min • read

Canary Rollout Quick Start

In this guide we'll give you everything you need to perform a canary rollout of a new Kubernetes service using GitOps best practices, but without needing to write lots of YAMLs!

Contents

Prerequisites

All you need to run this quickstart is a GitHub account.

Overview

The Rollout feature uses:

  • A kubernetes cluster: This is where applications are deployed to.
  • A git repo: This is used as an interface to allow users to review the deployment (as Pull Requests) before it gets applied in Kubernetes.

In the steps below we provide you all you need to have the full Rollout experience in Ambassador Cloud.

1. Configure GitHub Access

Ambassador Cloud needs access to your GitHub account in order to:

  • Create a dedicated repository to run rollouts.
  • Create PRs for new rollouts in the created repository.
  • Configure ArgoCD access to your repo so manifests can be retrieved and applied in the cluster.

Follow the steps below to grant us access to your GitHub:

  1. In Ambassador Cloud, go to the Teams Settings page and click the Integrations button for your current team.
  2. Click the Enable button in the GitHub section, or the Configure button in case that you already have the app installed.
  3. You will be taken to github.com and asked in which account you want to install Ambassador DCP.
  4. Select your personal account. The personal account is the one that has the same name as your GitHub username.
  5. Select the All repositories option. Full access is required in order to fork a repo on your behalf for the demo application.
  6. Click Install and you will be taken back to the Ambassador Cloud.

2. Environment Setup

The rollout feature requires/uses a Kubernetes cluster and GitHub repository, please sign in to Ambassador Cloud to setup your demo cluster.

This will also fork a repository called emojivoto.

3. Create a Rollout

Go to the Service Catalog page and follow these steps:

  1. Click the "Services" favorites button.
  2. Look for the web-app service and click the card to see the details pop up in the Heads Up Display (HUD).
  3. Click on the Rollout button for the web-app service to show the instructions to create a rollout.

Fill in the form with the following information:

  • Image Tag: datawire/emojivoto-web-app v12
  • Rollout Duration: 2 minutes
  • Weight increment: 10%
  • Number of pods: 3

Click on Start Rollout.

4. Review & merge PR

After clicking Start Rollout the slideout will close and you will be shown the service rollouts page where one Pending rollout is shown. Click the Pull Request button. A new browser tab will be opened and you will be taken to github.com where you can review and merge the PR on GitHub. Click on the Files changed tab in the pull request and explore all of the rollouts code that has been generated for you. Next, click back to the Conversation tab, click Merge Pull Request, and click Confirm merge. Finally, navigate back to your browser tab with the Ambassador Cloud service catalog to watch the progress. It can take a few seconds for the progress bar to show up.

5. Watch the Rollout progress from Ambassador Cloud

From the service rollouts page you can watch the rollout progress of your new version. Note how the Current Canary Weight progress bar increases in steps in the amount you specified above in the "weights increment".

What's next?

Explore some of the popular content on canary rollouts: