Skip to content

Commit

Permalink
Update canary diagram
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanprodan committed Sep 29, 2018
1 parent 3752440 commit dd4ca12
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 17 deletions.
37 changes: 20 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ If you are new to Istio you can follow my [GKE service mesh walk-through](https:
Deploy Steerer in the `istio-system` using Helm:

```bash
# add Steerer Helm repo
# add the Helm repository
helm repo add steerer https://stefanprodan.github.io/steerer

# install or upgrade Steerer
# install or upgrade
helm upgrade --install steerer steerer/steerer \
--namespace=istio-system \
--set metricsServer=http://prometheus.istio-system:9090 \
Expand Down Expand Up @@ -181,41 +181,44 @@ histogram_quantile(0.99,
)
```

### Example
### Automated canary analysis and promotion

![steerer-overview](https://github.com/stefanprodan/steerer/blob/master/docs/diagrams/steerer-actions.png)
![steerer-canary](https://github.com/stefanprodan/steerer/blob/master/docs/diagrams/steerer-canary.png)

Create a test namespace with Istio sidecard injection enabled:
Create a test namespace with Istio sidecar injection enabled:

```bash
kubectl apply -f ./artifacts/namespaces/
export REPO=https://raw.githubusercontent.com/stefanprodan/steerer/master

kubectl apply -f ${REPO}/artifacts/namespaces/test.yaml
```

Create the primary deployment and service:
Create the primary deployment, service and hpa:

```bash
kubectl apply -f ./artifacts/workloads/deployment.yaml
kubectl apply -f ./artifacts/workloads/service.yaml
kubectl apply -f ${REPO}/artifacts/workloads/primary-deployment.yaml
kubectl apply -f ${REPO}/artifacts/workloads/primary-service.yaml
kubectl apply -f ${REPO}/artifacts/workloads/primary-hpa.yaml
```

Create the canary deployment, service and horizontal pod auto-scalar:
Create the canary deployment, service and hpa:

```bash
kubectl apply -f ./artifacts/workloads/deployment-canary.yaml
kubectl apply -f ./artifacts/workloads/service-canary.yaml
kubectl apply -f ./artifacts/workloads/hpa-canary.yaml
kubectl apply -f ${REPO}/artifacts/workloads/canary-deployment.yaml
kubectl apply -f ${REPO}/artifacts/workloads/canary-service.yaml
kubectl apply -f ${REPO}/artifacts/workloads/canary-hpa.yaml
```

Create a virtual service (replace the gateway and the internet domain with your own):
Create a virtual service (replace the Istio gateway and the internet domain with your own):

```yaml
kubectl apply -f ./artifacts/workloads/virtual-service.yaml
```bash
kubectl apply -f ${REPO}/artifacts/workloads/virtual-service.yaml
```

Create a rollout custom resource:

```bash
kubectl apply -f ./artifacts/rollouts/podinfo.yaml
kubectl apply -f ${REPO}/artifacts/rollouts/podinfo.yaml
```

Rollout output:
Expand Down
Binary file removed docs/diagrams/steerer-actions.png
Binary file not shown.
Binary file added docs/diagrams/steerer-canary.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit dd4ca12

Please sign in to comment.