Skip to content

Instantly share code, notes, and snippets.

@matsumana
Last active January 15, 2020 16:50
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save matsumana/0f04c9c8afdccccecb71ad4aaad796d9 to your computer and use it in GitHub Desktop.
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: app1
labels:
project: app1
spec:
replicas: 1
selector:
matchLabels:
project: app1
template:
metadata:
labels:
project: app1
spec:
containers:
- name: app1
image: matsumana/app1:latest
ports:
- containerPort: 8080
strategy:
canary:
analysis:
templateName: success-rate
arguments:
- name: project
value: app1
steps:
- setWeight: 10
- pause: { duration: 120 }
- setWeight: 20
- pause: { duration: 10 }
- setWeight: 40
- pause: { duration: 10 }
- setWeight: 80
- pause: { duration: 10 }
---
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: success-rate
spec:
inputs:
- name: project
metrics:
- name: success-rate
interval: 1m
successCondition: result >= 0.95
failureLimit: 3
provider:
prometheus:
address: http://prometheus.default.svc.cluster.local:9090
query: |
sum(rate(http_server_requests_total{project="{{inputs.project}}", result="success"}[1m]))
/
sum(rate(http_server_requests_total{project="{{inputs.project}}"}[1m]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment