Add support for prometheus
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / prometheus / templates / alertmanager-deployment.yaml
1 {{- if and .Values.alertmanager.enabled (not .Values.alertmanager.statefulSet.enabled) -}}
2 apiVersion: {{ template "prometheus.deployment.apiVersion" . }}
3 kind: Deployment
4 metadata:
5   labels:
6     {{- include "prometheus.alertmanager.labels" . | nindent 4 }}
7   name: {{ template "prometheus.alertmanager.fullname" . }}
8 {{ include "prometheus.namespace" . | indent 2 }}
9 spec:
10   selector:
11     matchLabels:
12       {{- include "prometheus.alertmanager.matchLabels" . | nindent 6 }}
13   replicas: {{ .Values.alertmanager.replicaCount }}
14   {{- if .Values.alertmanager.strategy }}
15   strategy:
16 {{ toYaml .Values.alertmanager.strategy | trim | indent 4 }}
17     {{ if eq .Values.alertmanager.strategy.type "Recreate" }}rollingUpdate: null{{ end }}
18 {{- end }}
19   template:
20     metadata:
21     {{- if .Values.alertmanager.podAnnotations }}
22       annotations:
23 {{ toYaml .Values.alertmanager.podAnnotations | indent 8 }}
24     {{- end }}
25       labels:
26         {{- include "prometheus.alertmanager.labels" . | nindent 8 }}
27         {{- if .Values.alertmanager.podLabels}}
28         {{ toYaml .Values.alertmanager.podLabels | nindent 8 }}
29         {{- end}}
30     spec:
31 {{- if .Values.alertmanager.schedulerName }}
32       schedulerName: "{{ .Values.alertmanager.schedulerName }}"
33 {{- end }}
34       serviceAccountName: {{ template "prometheus.serviceAccountName.alertmanager" . }}
35       {{- if .Values.alertmanager.extraInitContainers }}
36       initContainers:
37 {{ toYaml .Values.alertmanager.extraInitContainers | indent 8 }}
38       {{- end }}
39 {{- if .Values.alertmanager.priorityClassName }}
40       priorityClassName: "{{ .Values.alertmanager.priorityClassName }}"
41 {{- end }}
42       containers:
43         - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}
44           image: "{{ .Values.alertmanager.image.repository }}:{{ .Values.alertmanager.image.tag }}"
45           imagePullPolicy: "{{ .Values.alertmanager.image.pullPolicy }}"
46           env:
47             {{- range $key, $value := .Values.alertmanager.extraEnv }}
48             - name: {{ $key }}
49               value: {{ $value }}
50             {{- end }}
51             - name: POD_IP
52               valueFrom:
53                 fieldRef:
54                   apiVersion: v1
55                   fieldPath: status.podIP
56           args:
57             - --config.file=/etc/config/{{ .Values.alertmanager.configFileName }}
58             - --storage.path={{ .Values.alertmanager.persistentVolume.mountPath }}
59             - --cluster.advertise-address=$(POD_IP):6783
60           {{- range $key, $value := .Values.alertmanager.extraArgs }}
61             - --{{ $key }}={{ $value }}
62           {{- end }}
63           {{- if .Values.alertmanager.baseURL }}
64             - --web.external-url={{ .Values.alertmanager.baseURL }}
65           {{- end }}
66
67           ports:
68             - containerPort: 9093
69           readinessProbe:
70             httpGet:
71               path: {{ .Values.alertmanager.prefixURL }}/-/ready
72               port: 9093
73             initialDelaySeconds: 30
74             timeoutSeconds: 30
75           resources:
76 {{ toYaml .Values.alertmanager.resources | indent 12 }}
77           volumeMounts:
78             - name: config-volume
79               mountPath: /etc/config
80             - name: storage-volume
81               mountPath: "{{ .Values.alertmanager.persistentVolume.mountPath }}"
82               subPath: "{{ .Values.alertmanager.persistentVolume.subPath }}"
83           {{- range .Values.alertmanager.extraSecretMounts }}
84             - name: {{ .name }}
85               mountPath: {{ .mountPath }}
86               subPath: {{ .subPath }}
87               readOnly: {{ .readOnly }}
88           {{- end }}
89
90         {{- if .Values.configmapReload.alertmanager.enabled }}
91         - name: {{ template "prometheus.name" . }}-{{ .Values.alertmanager.name }}-{{ .Values.configmapReload.alertmanager.name }}
92           image: "{{ .Values.configmapReload.alertmanager.image.repository }}:{{ .Values.configmapReload.alertmanager.image.tag }}"
93           imagePullPolicy: "{{ .Values.configmapReload.alertmanager.image.pullPolicy }}"
94           args:
95             - --volume-dir=/etc/config
96             - --webhook-url=http://127.0.0.1:9093{{ .Values.alertmanager.prefixURL }}/-/reload
97           resources:
98 {{ toYaml .Values.configmapReload.alertmanager.resources | indent 12 }}
99           volumeMounts:
100             - name: config-volume
101               mountPath: /etc/config
102               readOnly: true
103         {{- end }}
104     {{- if .Values.imagePullSecrets }}
105       imagePullSecrets:
106       {{ toYaml .Values.imagePullSecrets | indent 2 }}
107     {{- end }}
108     {{- if .Values.alertmanager.nodeSelector }}
109       nodeSelector:
110 {{ toYaml .Values.alertmanager.nodeSelector | indent 8 }}
111     {{- end }}
112     {{- if .Values.alertmanager.securityContext }}
113       securityContext:
114 {{ toYaml .Values.alertmanager.securityContext | indent 8 }}
115     {{- end }}
116     {{- if .Values.alertmanager.tolerations }}
117       tolerations:
118 {{ toYaml .Values.alertmanager.tolerations | indent 8 }}
119     {{- end }}
120     {{- if .Values.alertmanager.affinity }}
121       affinity:
122 {{ toYaml .Values.alertmanager.affinity | indent 8 }}
123     {{- end }}
124       volumes:
125         - name: config-volume
126           {{- if empty .Values.alertmanager.configFromSecret }}
127           configMap:
128             name: {{ if .Values.alertmanager.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.alertmanager.configMapOverrideName }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }}
129           {{- else }}
130           secret:
131             secretName: {{ .Values.alertmanager.configFromSecret }}
132           {{- end }}
133       {{- range .Values.alertmanager.extraSecretMounts }}
134         - name: {{ .name }}
135           secret:
136             secretName: {{ .secretName }}
137       {{- end }}
138         - name: storage-volume
139         {{- if .Values.alertmanager.persistentVolume.enabled }}
140           persistentVolumeClaim:
141             claimName: {{ if .Values.alertmanager.persistentVolume.existingClaim }}{{ .Values.alertmanager.persistentVolume.existingClaim }}{{- else }}{{ template "prometheus.alertmanager.fullname" . }}{{- end }}
142         {{- else }}
143           emptyDir: {}
144         {{- end -}}
145 {{- end }}