dharmit / summer-of-k8s-app-manifests

Summer of Kubernetes application manifests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Summer of K8s Example application for Argo Rollouts

This repository contains the Kubernetes manifest for the summer of K8s Argo rollouts example.

The actual source code is at https://github.com/kostis-codefresh/summer-of-k8s-app

Prerequisites

  1. Get access to a Kubernetes cluster
  2. Install Argo Rollouts following the instructions. Be sure to install the CLI as well
  3. Install Ambassador Edge stack following the instructions

Making the first deployment

git clone https://github.com/kostis-codefresh/summer-of-k8s-app-manifests
cd summer-of-k8s-app-manifests
kubectl create namespace demo
kubectl apply -f . -n demo

Wait for some time for the application to come up

kubectl get pods -n demo

Get the ambassdor URL

kubectl get svc ambassador -n ambassador

Note down the "External IP" URL (for example 32.98.176.18)

Visit the application at https://32.98.176.18/demo/

Make a rollout canary release

Open a second terminal and watch the canary

kubectl argo rollouts get rollout summer-k8s-rollout -n demo -w

Edit file rollout.yaml and change line kostiscodefresh/summer-of-k8s-app:v1 to kostiscodefresh/summer-of-k8s-app:v2

Deploy the second version

kubectl apply -f rollout.yaml -n demo

See the canary status at the second terminal. It should be at 30%. Take a screenshot to submit later in the evaluation phase.

If you also visit the application again you should see some boxes with the new version

Request dashboard

Take a screenshot to submit later in the evaluation phase.

Promote the canary to 60% with

kubectl argo rollouts promote summer-k8s-rollout -n demo

Check the dashboard and terminal again

Promote the canary two more times to reach 100%

kubectl argo rollouts promote summer-k8s-rollout -n demo

Now the old version is no longer present

Submit your solution at https://www.getambassador.io/summer-of-k8s/ship/week3/

Cleanup

kubectl delete -f . -n demo
kubectl delete namespace demo

About

Summer of Kubernetes application manifests