An open API service indexing awesome lists of open source software.

https://github.com/kostis-codefresh/summer-of-k8s-app-manifests

Summer of Kubernetes application manifests
https://github.com/kostis-codefresh/summer-of-k8s-app-manifests

Last synced: about 1 month ago
JSON representation

Summer of Kubernetes application manifests

Awesome Lists containing this project

README

        

# Summer of K8s Example application for Argo Rollouts

This repository contains the Kubernetes manifest
for the [summer of K8s](https://www.getambassador.io/summer-of-k8s) Argo rollouts example.

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

## Prerequisites

1. Get access to a Kubernetes cluster
2. Install Argo Rollouts following the [instructions](https://argoproj.github.io/argo-rollouts/installation/). Be sure to install the CLI as well
3. Install Ambassador Edge stack following the [instructions](https://www.getambassador.io/docs/edge-stack/latest/tutorials/getting-started/)

## 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](https://raw.githubusercontent.com/kostis-codefresh/summer-of-k8s-app/main/dashboard.png)

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/](https://www.getambassador.io/summer-of-k8s/ship/week3/)

## Cleanup

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