Initial commit
This commit is contained in:
62
assets/progressive-delivery/argo-rollouts-canary.yaml
Normal file
62
assets/progressive-delivery/argo-rollouts-canary.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
# Argo Rollouts Canary Deployment with Analysis
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Rollout
|
||||
metadata:
|
||||
name: my-app
|
||||
spec:
|
||||
replicas: 5
|
||||
strategy:
|
||||
canary:
|
||||
steps:
|
||||
- setWeight: 20
|
||||
- pause: {duration: 2m}
|
||||
- setWeight: 40
|
||||
- pause: {duration: 2m}
|
||||
- setWeight: 60
|
||||
- pause: {duration: 2m}
|
||||
- setWeight: 80
|
||||
- pause: {duration: 2m}
|
||||
analysis:
|
||||
templates:
|
||||
- templateName: success-rate
|
||||
startingStep: 2
|
||||
args:
|
||||
- name: service-name
|
||||
value: my-app
|
||||
selector:
|
||||
matchLabels:
|
||||
app: my-app
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: my-app
|
||||
spec:
|
||||
containers:
|
||||
- name: my-app
|
||||
image: myapp:v2.0.0
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
---
|
||||
# Analysis Template using Prometheus
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AnalysisTemplate
|
||||
metadata:
|
||||
name: success-rate
|
||||
spec:
|
||||
args:
|
||||
- name: service-name
|
||||
metrics:
|
||||
- name: success-rate
|
||||
interval: 1m
|
||||
successCondition: result[0] >= 0.95
|
||||
failureLimit: 3
|
||||
provider:
|
||||
prometheus:
|
||||
address: http://prometheus.monitoring:9090
|
||||
query: |
|
||||
sum(rate(
|
||||
http_requests_total{job="{{args.service-name}}",status!~"5.."}[2m]
|
||||
)) /
|
||||
sum(rate(
|
||||
http_requests_total{job="{{args.service-name}}"}[2m]
|
||||
))
|
||||
Reference in New Issue
Block a user