Add support for prometheus
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / prometheus / templates / server-deployment.yaml
1 {{- if .Values.server.enabled -}}
2 {{- if not .Values.server.statefulSet.enabled -}}
3 apiVersion: {{ template "prometheus.deployment.apiVersion" . }}
4 kind: Deployment
5 metadata:
6 {{- if .Values.server.deploymentAnnotations }}
7   annotations:
8 {{ toYaml .Values.server.deploymentAnnotations | indent 4 }}
9 {{- end }}
10   labels:
11     {{- include "prometheus.server.labels" . | nindent 4 }}
12   name: {{ template "prometheus.server.fullname" . }}
13 {{ include "prometheus.namespace" . | indent 2 }}
14 spec:
15   selector:
16     matchLabels:
17       {{- include "prometheus.server.matchLabels" . | nindent 6 }}
18   replicas: {{ .Values.server.replicaCount }}
19   {{- if .Values.server.strategy }}
20   strategy:
21 {{ toYaml .Values.server.strategy | trim | indent 4 }}
22     {{ if eq .Values.server.strategy.type "Recreate" }}rollingUpdate: null{{ end }}
23 {{- end }}
24   template:
25     metadata:
26     {{- if .Values.server.podAnnotations }}
27       annotations:
28 {{ toYaml .Values.server.podAnnotations | indent 8 }}
29     {{- end }}
30       labels:
31         {{- include "prometheus.server.labels" . | nindent 8 }}
32         {{- if .Values.server.podLabels}}
33         {{ toYaml .Values.server.podLabels | nindent 8 }}
34         {{- end}}
35     spec:
36 {{- if .Values.server.priorityClassName }}
37       priorityClassName: "{{ .Values.server.priorityClassName }}"
38 {{- end }}
39 {{- if .Values.server.schedulerName }}
40       schedulerName: "{{ .Values.server.schedulerName }}"
41 {{- end }}
42       serviceAccountName: {{ template "prometheus.serviceAccountName.server" . }}
43       {{- if .Values.server.extraInitContainers }}
44       initContainers:
45 {{ toYaml .Values.server.extraInitContainers | indent 8 }}
46       {{- end }}
47       containers:
48         {{- if .Values.configmapReload.prometheus.enabled }}
49         - name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}-{{ .Values.configmapReload.prometheus.name }}
50           image: "{{ .Values.configmapReload.prometheus.image.repository }}:{{ .Values.configmapReload.prometheus.image.tag }}"
51           imagePullPolicy: "{{ .Values.configmapReload.prometheus.image.pullPolicy }}"
52           args:
53             - --volume-dir=/etc/config
54             - --webhook-url=http://127.0.0.1:9090{{ .Values.server.prefixURL }}/-/reload
55           {{- range $key, $value := .Values.configmapReload.prometheus.extraArgs }}
56             - --{{ $key }}={{ $value }}
57           {{- end }}
58           {{- range .Values.configmapReload.prometheus.extraVolumeDirs }}
59             - --volume-dir={{ . }}
60           {{- end }}
61           resources:
62 {{ toYaml .Values.configmapReload.prometheus.resources | indent 12 }}
63           volumeMounts:
64             - name: config-volume
65               mountPath: /etc/config
66               readOnly: true
67           {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
68             - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
69               mountPath: {{ .mountPath }}
70               subPath: {{ .subPath }}
71               readOnly: {{ .readOnly }}
72           {{- end }}
73         {{- end }}
74
75         - name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}
76           image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}"
77           imagePullPolicy: "{{ .Values.server.image.pullPolicy }}"
78           {{- if .Values.server.env }}
79           env:
80 {{ toYaml .Values.server.env | indent 12}}
81           {{- end }}
82           args:
83           {{- if .Values.server.retention }}
84             - --storage.tsdb.retention.time={{ .Values.server.retention }}
85           {{- end }}
86             - --config.file={{ .Values.server.configPath }}
87             - --storage.tsdb.path={{ .Values.server.persistentVolume.mountPath }}
88             - --web.console.libraries=/etc/prometheus/console_libraries
89             - --web.console.templates=/etc/prometheus/consoles
90           {{- range .Values.server.extraFlags }}
91             - --{{ . }}
92           {{- end }}
93           {{- if .Values.server.baseURL }}
94             - --web.external-url={{ .Values.server.baseURL }}
95           {{- end }}
96
97           {{- range $key, $value := .Values.server.extraArgs }}
98             - --{{ $key }}={{ $value }}
99           {{- end }}
100           ports:
101             - containerPort: 9090
102           readinessProbe:
103             httpGet:
104               path: {{ .Values.server.prefixURL }}/-/ready
105               port: 9090
106             initialDelaySeconds: {{ .Values.server.readinessProbeInitialDelay }}
107             timeoutSeconds: {{ .Values.server.readinessProbeTimeout }}
108             failureThreshold: {{ .Values.server.readinessProbeFailureThreshold }}
109             successThreshold: {{ .Values.server.readinessProbeSuccessThreshold }}
110           livenessProbe:
111             httpGet:
112               path: {{ .Values.server.prefixURL }}/-/healthy
113               port: 9090
114             initialDelaySeconds: {{ .Values.server.livenessProbeInitialDelay }}
115             timeoutSeconds: {{ .Values.server.livenessProbeTimeout }}
116             failureThreshold: {{ .Values.server.livenessProbeFailureThreshold }}
117             successThreshold: {{ .Values.server.livenessProbeSuccessThreshold }}
118           resources:
119 {{ toYaml .Values.server.resources | indent 12 }}
120           volumeMounts:
121             - name: config-volume
122               mountPath: /etc/config
123             - name: storage-volume
124               mountPath: {{ .Values.server.persistentVolume.mountPath }}
125               subPath: "{{ .Values.server.persistentVolume.subPath }}"
126           {{- range .Values.server.extraHostPathMounts }}
127             - name: {{ .name }}
128               mountPath: {{ .mountPath }}
129               subPath: {{ .subPath }}
130               readOnly: {{ .readOnly }}
131           {{- end }}
132           {{- range .Values.server.extraConfigmapMounts }}
133             - name: {{ $.Values.server.name }}-{{ .name }}
134               mountPath: {{ .mountPath }}
135               subPath: {{ .subPath }}
136               readOnly: {{ .readOnly }}
137           {{- end }}
138           {{- range .Values.server.extraSecretMounts }}
139             - name: {{ .name }}
140               mountPath: {{ .mountPath }}
141               subPath: {{ .subPath }}
142               readOnly: {{ .readOnly }}
143           {{- end }}
144           {{- if .Values.server.extraVolumeMounts }}
145             {{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
146           {{- end }}
147       {{- if .Values.server.sidecarContainers }}
148       {{- toYaml .Values.server.sidecarContainers | nindent 8 }}
149       {{- end }}
150     {{- if .Values.imagePullSecrets }}
151       imagePullSecrets:
152        {{ toYaml .Values.imagePullSecrets | indent 2 }}
153     {{- end }}
154     {{- if .Values.server.nodeSelector }}
155       nodeSelector:
156 {{ toYaml .Values.server.nodeSelector | indent 8 }}
157     {{- end }}
158     {{- if .Values.server.hostAliases }}
159       hostAliases:
160 {{ toYaml .Values.server.hostAliases | indent 8 }}
161     {{- end }}
162     {{- if .Values.server.securityContext }}
163       securityContext:
164 {{ toYaml .Values.server.securityContext | indent 8 }}
165     {{- end }}
166     {{- if .Values.server.tolerations }}
167       tolerations:
168 {{ toYaml .Values.server.tolerations | indent 8 }}
169     {{- end }}
170     {{- if .Values.server.affinity }}
171       affinity:
172 {{ toYaml .Values.server.affinity | indent 8 }}
173     {{- end }}
174       terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
175       volumes:
176         - name: config-volume
177           configMap:
178             name: {{ if .Values.server.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.server.configMapOverrideName }}{{- else }}{{ template "prometheus.server.fullname" . }}{{- end }}
179         - name: storage-volume
180         {{- if .Values.server.persistentVolume.enabled }}
181           persistentVolumeClaim:
182             claimName: {{ if .Values.server.persistentVolume.existingClaim }}{{ .Values.server.persistentVolume.existingClaim }}{{- else }}{{ template "prometheus.server.fullname" . }}{{- end }}
183         {{- else }}
184           emptyDir:
185           {{- if .Values.server.emptyDir.sizeLimit }}
186             sizeLimit: {{ .Values.server.emptyDir.sizeLimit }}
187           {{- else }}
188             {}
189           {{- end -}}
190         {{- end -}}
191 {{- if .Values.server.extraVolumes }}
192 {{ toYaml .Values.server.extraVolumes | indent 8}}
193 {{- end }}
194       {{- range .Values.server.extraHostPathMounts }}
195         - name: {{ .name }}
196           hostPath:
197             path: {{ .hostPath }}
198       {{- end }}
199       {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
200         - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
201           configMap:
202             name: {{ .configMap }}
203       {{- end }}
204       {{- range .Values.server.extraConfigmapMounts }}
205         - name: {{ $.Values.server.name }}-{{ .name }}
206           configMap:
207             name: {{ .configMap }}
208       {{- end }}
209       {{- range .Values.server.extraSecretMounts }}
210         - name: {{ .name }}
211           secret:
212             secretName: {{ .secretName }}
213       {{- end }}
214       {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
215         - name: {{ .name }}
216           configMap:
217             name: {{ .configMap }}
218       {{- end }}
219 {{- end -}}
220 {{- end -}}