mirror of
https://github.com/bvanroll/example-node-project.git
synced 2025-08-29 11:52:43 +00:00
86 lines
2.4 KiB
YAML
Executable File
86 lines
2.4 KiB
YAML
Executable File
{{- if .Values.canary.enabled }}
|
|
apiVersion: flagger.app/v1beta1
|
|
kind: Canary
|
|
metadata:
|
|
name: {{ template "fullname" . }}
|
|
labels:
|
|
draft: {{ default "draft-app" .Values.draft }}
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
|
spec:
|
|
provider: istio
|
|
targetRef:
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
name: {{ template "fullname" . }}
|
|
progressDeadlineSeconds: {{ .Values.canary.progressDeadlineSeconds }}
|
|
{{- if .Values.hpa.enabled }}
|
|
autoscalerRef:
|
|
apiVersion: autoscaling/v2beta1
|
|
kind: HorizontalPodAutoscaler
|
|
name: {{ template "fullname" . }}
|
|
{{- end }}
|
|
service:
|
|
port: {{ .Values.service.externalPort }}
|
|
targetPort: {{ .Values.service.internalPort }}
|
|
gateways:
|
|
- {{ template "fullname" . }}
|
|
hosts:
|
|
- {{ .Values.canary.host }}
|
|
analysis:
|
|
interval: {{ .Values.canary.canaryAnalysis.interval }}
|
|
threshold: {{ .Values.canary.canaryAnalysis.threshold }}
|
|
maxWeight: {{ .Values.canary.canaryAnalysis.maxWeight }}
|
|
stepWeight: {{ .Values.canary.canaryAnalysis.stepWeight }}
|
|
metrics:
|
|
- name: request-success-rate
|
|
threshold: {{ .Values.canary.canaryAnalysis.metrics.requestSuccessRate.threshold }}
|
|
interval: {{ .Values.canary.canaryAnalysis.metrics.requestSuccessRate.interval }}
|
|
- name: latency
|
|
templateRef:
|
|
name: latency
|
|
thresholdRange:
|
|
max: {{ .Values.canary.canaryAnalysis.metrics.requestDuration.threshold }}
|
|
interval: {{ .Values.canary.canaryAnalysis.metrics.requestDuration.interval }}
|
|
|
|
---
|
|
|
|
apiVersion: flagger.app/v1beta1
|
|
kind: MetricTemplate
|
|
metadata:
|
|
name: latency
|
|
spec:
|
|
provider:
|
|
type: prometheus
|
|
address: http://prometheus.istio-system:9090
|
|
query: |
|
|
histogram_quantile(
|
|
0.99,
|
|
sum(
|
|
rate(
|
|
istio_request_duration_milliseconds_bucket{
|
|
reporter="destination",
|
|
destination_workload_namespace="{{ "{{" }} namespace {{ "}}" }}",
|
|
destination_workload=~"{{ "{{" }} target {{ "}}" }}"
|
|
}[{{ "{{" }} interval {{ "}}" }}]
|
|
)
|
|
) by (le)
|
|
)
|
|
|
|
---
|
|
|
|
apiVersion: networking.istio.io/v1alpha3
|
|
kind: Gateway
|
|
metadata:
|
|
name: {{ template "fullname" . }}
|
|
spec:
|
|
selector:
|
|
istio: ingressgateway
|
|
servers:
|
|
- port:
|
|
number: {{ .Values.service.externalPort }}
|
|
name: http
|
|
protocol: HTTP
|
|
hosts:
|
|
- {{ .Values.canary.host }}
|
|
{{- end }}
|