mirror of https://github.com/fluxcd/flagger.git
Add App Mesh canary demo definitions
This commit is contained in:
parent
d222dd1069
commit
33ba3b8d4a
|
|
@ -0,0 +1,50 @@
|
||||||
|
apiVersion: flagger.app/v1alpha3
|
||||||
|
kind: Canary
|
||||||
|
metadata:
|
||||||
|
name: podinfo
|
||||||
|
namespace: test
|
||||||
|
spec:
|
||||||
|
# deployment reference
|
||||||
|
targetRef:
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
name: podinfo
|
||||||
|
# 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: podinfo
|
||||||
|
service:
|
||||||
|
# container port
|
||||||
|
port: 9898
|
||||||
|
# App Mesh reference
|
||||||
|
meshName: global.appmesh-system
|
||||||
|
# define the canary analysis timing and KPIs
|
||||||
|
canaryAnalysis:
|
||||||
|
# schedule interval (default 60s)
|
||||||
|
interval: 10s
|
||||||
|
# max number of failed metric checks before rollback
|
||||||
|
threshold: 10
|
||||||
|
# max traffic percentage routed to canary
|
||||||
|
# percentage (0-100)
|
||||||
|
maxWeight: 50
|
||||||
|
# canary increment step
|
||||||
|
# percentage (0-100)
|
||||||
|
stepWeight: 5
|
||||||
|
# App Mesh Prometheus checks
|
||||||
|
metrics:
|
||||||
|
- name: envoy_cluster_upstream_rq
|
||||||
|
# minimum req success rate (non 5xx responses)
|
||||||
|
# percentage (0-100)
|
||||||
|
threshold: 99
|
||||||
|
interval: 1m
|
||||||
|
# external checks (optional)
|
||||||
|
webhooks:
|
||||||
|
- name: load-test
|
||||||
|
url: http://flagger-loadtester.test/
|
||||||
|
timeout: 5s
|
||||||
|
metadata:
|
||||||
|
cmd: "hey -z 1m -q 10 -c 2 http://podinfo.test:9898/"
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: podinfo
|
||||||
|
namespace: test
|
||||||
|
labels:
|
||||||
|
app: podinfo
|
||||||
|
spec:
|
||||||
|
minReadySeconds: 5
|
||||||
|
revisionHistoryLimit: 5
|
||||||
|
progressDeadlineSeconds: 60
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxUnavailable: 0
|
||||||
|
type: RollingUpdate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: podinfo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
labels:
|
||||||
|
app: podinfo
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: podinfod
|
||||||
|
image: quay.io/stefanprodan/podinfo:1.4.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 9898
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
command:
|
||||||
|
- ./podinfo
|
||||||
|
- --port=9898
|
||||||
|
- --level=info
|
||||||
|
env:
|
||||||
|
- name: PODINFO_UI_COLOR
|
||||||
|
value: blue
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- podcli
|
||||||
|
- check
|
||||||
|
- http
|
||||||
|
- localhost:9898/healthz
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 5
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- podcli
|
||||||
|
- check
|
||||||
|
- http
|
||||||
|
- localhost:9898/readyz
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 5
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 2000m
|
||||||
|
memory: 512Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 64Mi
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
apiVersion: appmesh.k8s.aws/v1alpha1
|
||||||
|
kind: Mesh
|
||||||
|
metadata:
|
||||||
|
name: global
|
||||||
|
namespace: appmesh-system
|
||||||
|
spec:
|
||||||
|
serviceDiscoveryType: dns
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
apiVersion: autoscaling/v2beta1
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: podinfo
|
||||||
|
namespace: test
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
name: podinfo
|
||||||
|
minReplicas: 2
|
||||||
|
maxReplicas: 4
|
||||||
|
metrics:
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
# scale up if usage is above
|
||||||
|
# 99% of the requested CPU (100m)
|
||||||
|
targetAverageUtilization: 99
|
||||||
|
|
@ -4,3 +4,4 @@ metadata:
|
||||||
name: test
|
name: test
|
||||||
labels:
|
labels:
|
||||||
istio-injection: enabled
|
istio-injection: enabled
|
||||||
|
appmesh.k8s.aws/sidecarInjectorWebhook: enabled
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue