From dbd1bb6ebce5405329ac93ca81a6c96e47eb83fe Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Sat, 29 Sep 2018 11:11:22 +0300 Subject: [PATCH] Update docs for canary analysis --- README.md | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index bdd7f217..1137686e 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Gated rollout stages: * increase canary traffic weight percentage from 0% to 10% * check canary HTTP success rate * halt rollout if percentage is under the specified threshold -* increase canary traffic wight by 10% till it reaches 100% +* increase canary traffic wight by 10% (step wight) till it reaches 100% (max weight) * halt rollout while canary request success rate is under the threshold * halt rollout while canary request duration P99 is over the threshold * halt rollout if the primary or canary deployment becomes unhealthy @@ -56,6 +56,8 @@ Gated rollout stages: * mark rollout as finished * wait for the canary deployment to be updated (revision bump) and start over +You can change the canary analysis max weight and the step wight size in the rollout custom resource. + Assuming the primary deployment is named _podinfo_ and the canary one _podinfo-canary_, Steerer will require a virtual service configured with weight-based routing: @@ -108,30 +110,32 @@ metadata: namespace: test spec: targetKind: Deployment - primary: - # deployment name + virtualService: + name: podinfo + primary: name: podinfo - # clusterIP service name host: podinfo canary: name: podinfo-canary host: podinfo-canary - virtualService: - name: podinfo + canaryAnalysis: + # max traffic percentage routed to canary + # percentage (0-100) + maxWeight: 100 # canary increment step # percentage (0-100) - weight: 10 - metrics: - - name: istio_requests_total - # minimum req success rate (non 5xx responses) - # percentage (0-100) - threshold: 99 - interval: 1m - - name: istio_request_duration_seconds_bucket - # maximum req duration P99 - # milliseconds - threshold: 500 - interval: 1m + stepWeight: 10 + metrics: + - name: istio_requests_total + # minimum req success rate (non 5xx responses) + # percentage (0-100) + threshold: 99 + interval: 1m + - name: istio_request_duration_seconds_bucket + # maximum req duration P99 + # milliseconds + threshold: 500 + interval: 1m ``` The canary analysis is using the following promql queries: