Add support for prometheus
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / prometheus / templates / server-statefulset.yaml
1 {{- if .Values.server.enabled -}}
2 {{- if .Values.server.statefulSet.enabled -}}
3 apiVersion: apps/v1
4 kind: StatefulSet
5 metadata:
6 {{- if .Values.server.statefulSet.annotations }}
7   annotations:
8 {{ toYaml .Values.server.statefulSet.annotations | indent 4 }}
9 {{- end }}
10   labels:
11     {{- include "prometheus.server.labels" . | nindent 4 }}
12     {{- if .Values.server.statefulSet.labels}}
13     {{ toYaml .Values.server.statefulSet.labels | nindent 4 }}
14     {{- end}}
15   name: {{ template "prometheus.server.fullname" . }}
16 {{ include "prometheus.namespace" . | indent 2 }}
17 spec:
18   serviceName: {{ template "prometheus.server.fullname" . }}-headless
19   selector:
20     matchLabels:
21       {{- include "prometheus.server.matchLabels" . | nindent 6 }}
22   replicas: {{ .Values.server.replicaCount }}
23   podManagementPolicy: {{ .Values.server.statefulSet.podManagementPolicy }}
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.statefulSet.labels}}
33         {{ toYaml .Values.server.statefulSet.labels | 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       {{- if or (.Values.server.enableServiceLinks) (eq (.Values.server.enableServiceLinks | toString) "<nil>") }}
43       enableServiceLinks: true
44       {{- else }}
45       enableServiceLinks: false
46       {{- end }}
47       serviceAccountName: {{ template "prometheus.serviceAccountName.server" . }}
48       containers:
49         {{- if .Values.configmapReload.prometheus.enabled }}
50         - name: {{ template "prometheus.name" . }}-{{ .Values.server.name }}-{{ .Values.configmapReload.prometheus.name }}
51           image: "{{ .Values.configmapReload.prometheus.image.repository }}:{{ .Values.configmapReload.prometheus.image.tag }}"
52           imagePullPolicy: "{{ .Values.configmapReload.prometheus.image.pullPolicy }}"
53           args:
54             - --volume-dir=/etc/config
55             - --webhook-url=http://127.0.0.1:9090{{ .Values.server.prefixURL }}/-/reload
56           {{- range $key, $value := .Values.configmapReload.prometheus.extraArgs }}
57             - --{{ $key }}={{ $value }}
58           {{- end }}
59           {{- range .Values.configmapReload.prometheus.extraVolumeDirs }}
60             - --volume-dir={{ . }}
61           {{- end }}
62           resources:
63 {{ toYaml .Values.configmapReload.prometheus.resources | indent 12 }}
64           volumeMounts:
65             - name: config-volume
66               mountPath: /etc/config
67               readOnly: true
68           {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
69             - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
70               mountPath: {{ .mountPath }}
71               subPath: {{ .subPath }}
72               readOnly: {{ .readOnly }}
73           {{- end }}
74         {{- end }}
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           {{- range $key, $value := .Values.server.extraArgs }}
94             - --{{ $key }}={{ $value }}
95           {{- end }}
96           {{- if .Values.server.baseURL }}
97             - --web.external-url={{ .Values.server.baseURL }}
98           {{- end }}
99           ports:
100             - containerPort: 9090
101           readinessProbe:
102             httpGet:
103               path: {{ .Values.server.prefixURL }}/-/ready
104               port: 9090
105             initialDelaySeconds: {{ .Values.server.readinessProbeInitialDelay }}
106             timeoutSeconds: {{ .Values.server.readinessProbeTimeout }}
107           livenessProbe:
108             httpGet:
109               path: {{ .Values.server.prefixURL }}/-/healthy
110               port: 9090
111             initialDelaySeconds: {{ .Values.server.livenessProbeInitialDelay }}
112             timeoutSeconds: {{ .Values.server.livenessProbeTimeout }}
113           resources:
114 {{ toYaml .Values.server.resources | indent 12 }}
115           volumeMounts:
116             - name: config-volume
117               mountPath: /etc/config
118             - name: storage-volume
119               mountPath: {{ .Values.server.persistentVolume.mountPath }}
120               subPath: "{{ .Values.server.persistentVolume.subPath }}"
121           {{- range .Values.server.extraHostPathMounts }}
122             - name: {{ .name }}
123               mountPath: {{ .mountPath }}
124               subPath: {{ .subPath }}
125               readOnly: {{ .readOnly }}
126           {{- end }}
127           {{- range .Values.server.extraConfigmapMounts }}
128             - name: {{ $.Values.server.name }}-{{ .name }}
129               mountPath: {{ .mountPath }}
130               subPath: {{ .subPath }}
131               readOnly: {{ .readOnly }}
132           {{- end }}
133           {{- range .Values.server.extraSecretMounts }}
134             - name: {{ .name }}
135               mountPath: {{ .mountPath }}
136               subPath: {{ .subPath }}
137               readOnly: {{ .readOnly }}
138           {{- end }}
139           {{- if .Values.server.extraVolumeMounts }}
140           {{ toYaml .Values.server.extraVolumeMounts | nindent 12 }}
141           {{- end }}
142        {{- if .Values.server.sidecarContainers }}
143        {{- toYaml .Values.server.sidecarContainers | nindent 8 }}
144        {{- end }}
145     {{- if .Values.imagePullSecrets }}
146       imagePullSecrets:
147        {{ toYaml .Values.imagePullSecrets | indent 2 }}
148     {{- end }}
149     {{- if .Values.server.nodeSelector }}
150       nodeSelector:
151 {{ toYaml .Values.server.nodeSelector | indent 8 }}
152     {{- end }}
153     {{- if .Values.server.hostAliases }}
154       hostAliases:
155 {{ toYaml .Values.server.hostAliases | indent 8 }}
156     {{- end }}
157     {{- if .Values.server.securityContext }}
158       securityContext:
159 {{ toYaml .Values.server.securityContext | indent 8 }}
160     {{- end }}
161     {{- if .Values.server.tolerations }}
162       tolerations:
163 {{ toYaml .Values.server.tolerations | indent 8 }}
164     {{- end }}
165     {{- if .Values.server.affinity }}
166       affinity:
167 {{ toYaml .Values.server.affinity | indent 8 }}
168     {{- end }}
169       terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
170       volumes:
171         - name: config-volume
172           configMap:
173             name: {{ if .Values.server.configMapOverrideName }}{{ .Release.Name }}-{{ .Values.server.configMapOverrideName }}{{- else }}{{ template "prometheus.server.fullname" . }}{{- end }}
174       {{- range .Values.server.extraHostPathMounts }}
175         - name: {{ .name }}
176           hostPath:
177             path: {{ .hostPath }}
178       {{- end }}
179       {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
180         - name: {{ $.Values.configmapReload.prometheus.name }}-{{ .name }}
181           configMap:
182             name: {{ .configMap }}
183       {{- end }}
184       {{- range .Values.server.extraConfigmapMounts }}
185         - name: {{ $.Values.server.name }}-{{ .name }}
186           configMap:
187             name: {{ .configMap }}
188       {{- end }}
189       {{- range .Values.server.extraSecretMounts }}
190         - name: {{ .name }}
191           secret:
192             secretName: {{ .secretName }}
193       {{- end }}
194       {{- range .Values.configmapReload.prometheus.extraConfigmapMounts }}
195         - name: {{ .name }}
196           configMap:
197             name: {{ .configMap }}
198       {{- end }}
199 {{- if .Values.server.extraVolumes }}
200 {{ toYaml .Values.server.extraVolumes | indent 8}}
201 {{- end }}
202 {{- if .Values.server.persistentVolume.enabled }}
203   volumeClaimTemplates:
204     - metadata:
205         name: storage-volume
206         {{- if .Values.server.persistentVolume.annotations }}
207         annotations:
208 {{ toYaml .Values.server.persistentVolume.annotations | indent 10 }}
209         {{- end }}
210       spec:
211         accessModes:
212 {{ toYaml .Values.server.persistentVolume.accessModes | indent 10 }}
213         resources:
214           requests:
215             storage: "{{ .Values.server.persistentVolume.size }}"
216       {{- if .Values.server.persistentVolume.storageClass }}
217       {{- if (eq "-" .Values.server.persistentVolume.storageClass) }}
218         storageClassName: ""
219       {{- else }}
220         storageClassName: "{{ .Values.server.persistentVolume.storageClass }}"
221       {{- end }}
222       {{- end }}
223 {{- else }}
224         - name: storage-volume
225           emptyDir: {}
226 {{- end }}
227 {{- end }}
228 {{- end }}