apiVersion: flagger.app/v1alpha3 kind: Canary metadata: name: abtest namespace: test spec: # deployment reference targetRef: apiVersion: apps/v1 kind: Deployment name: abtest # the maximum time in seconds for the canary deployment # to make progress before it is rollback (default 600s) progressDeadlineSeconds: 60 # HPA reference (optional) autoscalerRef: apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler name: abtest service: # container port port: 9898 # Istio gateways (optional) gateways: - public-gateway.istio-system.svc.cluster.local - mesh # Istio virtual service host names (optional) hosts: - abtest.istio.weavedx.com canaryAnalysis: # schedule interval (default 60s) interval: 10s # max number of failed metric checks before rollback threshold: 10 # total number of iterations iterations: 10 # canary match condition match: - headers: user-agent: regex: "^(?!.*Chrome)(?=.*\bSafari\b).*$" - headers: cookie: regex: "^(.*?;)?(type=insider)(;.*)?$" metrics: - name: request-success-rate # minimum req success rate (non 5xx responses) # percentage (0-100) threshold: 99 interval: 1m - name: request-duration # maximum req duration P99 # milliseconds threshold: 500 interval: 30s # external checks (optional) webhooks: - name: load-test url: http://flagger-loadtester.test/ timeout: 5s metadata: cmd: "hey -z 1m -q 10 -c 2 -H 'Cookie: type=insider' http://podinfo.test:9898/"