Skip to content

Progressive delivery demo using Kubernetes and Argo Rollouts

Notifications You must be signed in to change notification settings

orlandovald/progressive-delivery-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Progressive Delivery

Progressive delivery demo using canary deployments with Kubernetes and Argo Rollouts

Pre-requisites

Set up

Everything is configured through Make to keep it simple. Just follow these steps.

1. Verify dependencies

This will check for all required and optional dependencies

$ make verify-prereqs

You can continue with the next step once you have all required dependencies.

2. Create cluster

The below command will create a Kind cluster named argo-rollouts-demo and will install the Argo Controller and CRDs, Prometheus, Istio and Kiali.

$ make cluster-up

3. Build sample service images

This command will create a few image tags for our test service

$ make build-images

3. Load images to your cluster

Before being able to use images in a Kind cluster, you need to load them first. The below command will take care of that.

$ make load-images

4. Deploy first version

Run the below command to deploy the green tag version of the service. Since this is the initial deployment, steps/analysis will be skipped and the deployment will become stable as soon as the pods are healthy.

$ make helm-upgrade

5. Open the demo app

Open http://localhost:8080/ in your browser to see the demo app. All squares should report back as green

6. Deploy a canary version

You can use the below command to deploy a canary version. Valid VERSION values are green, blue, yellow and pruple. Version yellow simulates a 50% error rate which would fail the error-rate analysis.

$ make helm-upgrade VERSION=blue

You can watch the rollout using the below command (requires the Argo Kubectl plugin),

$ make watch

Other helpful make commands

$ make helm-uninstall # removes the rollout in case you want to deploy from scracth
$ make delete-cluster # deletes the cluster creating during cluster-up

Open Kiali

If you want to open the Kiali Web App run the below command (this will block the shell),

$ kubectl port-forward svc/kiali 20001:20001 -n istio-system

Now you can open Kiali in your browser at http://localhost:20001/

Open Prometheus

If you want to access the Prometheus UI run the below command (this will block the shell),

$ kubectl port-forward service/prometheus-server 9090:80 -n prometheus

Now you can open Prometheus in your browser at http://localhost:9090/

About

Progressive delivery demo using Kubernetes and Argo Rollouts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published