Collectd operator utilties
[demo.git] / vnfs / DAaaS / deploy / visualization / charts / grafana / templates / deployment.yaml
1 apiVersion: apps/v1beta2
2 kind: Deployment
3 metadata:
4   name: {{ template "grafana.fullname" . }}
5   labels:
6     app: {{ template "grafana.name" . }}
7     chart: {{ template "grafana.chart" . }}
8     release: {{ .Release.Name }}
9     heritage: {{ .Release.Service }}
10 {{- with .Values.annotations }}
11   annotations:
12 {{ toYaml . | indent 4 }}
13 {{- end }}
14 spec:
15   replicas: {{ .Values.replicas }}
16   selector:
17     matchLabels:
18       app: {{ template "grafana.name" . }}
19       release: {{ .Release.Name }}
20   strategy:
21     type: {{ .Values.deploymentStrategy }}
22   {{- if ne .Values.deploymentStrategy "RollingUpdate" }}
23     rollingUpdate: null
24   {{- end }}
25   template:
26     metadata:
27       labels:
28         app: {{ template "grafana.name" . }}
29         release: {{ .Release.Name }}
30 {{- with .Values.podAnnotations }}
31       annotations:
32 {{ toYaml . | indent 8 }}
33 {{- end }}
34     spec:
35       serviceAccountName: {{ template "grafana.serviceAccountName" . }}
36 {{- if .Values.schedulerName }}
37       schedulerName: "{{ .Values.schedulerName }}"
38 {{- end }}
39 {{- if .Values.securityContext }}
40       securityContext:
41 {{ toYaml .Values.securityContext | indent 8 }}
42 {{- end }}
43 {{- if .Values.priorityClassName }}
44       priorityClassName: {{ .Values.priorityClassName }}
45 {{- end }}
46 {{- if ( or .Values.persistence.enabled .Values.dashboards .Values.sidecar.datasources.enabled .Values.extraInitContainers) }}
47       initContainers:
48 {{- end }}
49 {{- if ( and .Values.persistence.enabled .Values.persistence.initChownData ) }}
50         - name: init-chown-data
51           image: "{{ .Values.chownDataImage.repository }}:{{ .Values.chownDataImage.tag }}"
52           imagePullPolicy: {{ .Values.chownDataImage.pullPolicy }}
53           securityContext:
54             runAsUser: 0
55           command: ["chown", "-R", "{{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.runAsUser }}", "/var/lib/grafana"]
56           volumeMounts:
57             - name: storage
58               mountPath: "/var/lib/grafana"
59 {{- if .Values.persistence.subPath }}
60               subPath: {{ .Values.persistence.subPath }}
61 {{- end }}
62 {{- end }}
63 {{- if .Values.dashboards }}
64         - name: download-dashboards
65           image: "{{ .Values.downloadDashboardsImage.repository }}:{{ .Values.downloadDashboardsImage.tag }}"
66           imagePullPolicy: {{ .Values.downloadDashboardsImage.pullPolicy }}
67           command: ["sh", "/etc/grafana/download_dashboards.sh"]
68           volumeMounts:
69             - name: config
70               mountPath: "/etc/grafana/download_dashboards.sh"
71               subPath: download_dashboards.sh
72             - name: storage
73               mountPath: "/var/lib/grafana"
74 {{- if .Values.persistence.subPath }}
75               subPath: {{ .Values.persistence.subPath }}
76 {{- end }}
77           {{- range .Values.extraSecretMounts }}
78             - name: {{ .name }}
79               mountPath: {{ .mountPath }}
80               readOnly: {{ .readOnly }}
81           {{- end }}
82 {{- end }}
83 {{- if .Values.sidecar.datasources.enabled }}
84         - name: {{ template "grafana.name" . }}-sc-datasources
85           image: "{{ .Values.sidecar.image }}"
86           imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }}
87           env:
88             - name: METHOD
89               value: LIST
90             - name: LABEL
91               value: "{{ .Values.sidecar.datasources.label }}"
92             - name: FOLDER
93               value: "/etc/grafana/provisioning/datasources"
94             {{- if .Values.sidecar.datasources.searchNamespace }}
95             - name: NAMESPACE
96               value: "{{ .Values.sidecar.datasources.searchNamespace }}"
97             {{- end }}
98           resources:
99 {{ toYaml .Values.sidecar.resources | indent 12 }}
100           volumeMounts:
101             - name: sc-datasources-volume
102               mountPath: "/etc/grafana/provisioning/datasources"
103 {{- end}}
104 {{- if .Values.extraInitContainers }}
105 {{ toYaml .Values.extraInitContainers | indent 8 }}
106 {{- end }}
107       {{- if .Values.image.pullSecrets }}
108       imagePullSecrets:
109       {{- range .Values.image.pullSecrets }}
110         - name: {{ . }}
111       {{- end}}
112       {{- end }}
113       containers:
114 {{- if .Values.sidecar.dashboards.enabled }}
115         - name: {{ template "grafana.name" . }}-sc-dashboard
116           image: "{{ .Values.sidecar.image }}"
117           imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }}
118           env:
119             - name: LABEL
120               value: "{{ .Values.sidecar.dashboards.label }}"
121             - name: FOLDER
122               value: "{{ .Values.sidecar.dashboards.folder }}"
123             {{- if .Values.sidecar.dashboards.searchNamespace }}
124             - name: NAMESPACE
125               value: "{{ .Values.sidecar.dashboards.searchNamespace }}"
126             {{- end }}
127           resources:
128 {{ toYaml .Values.sidecar.resources | indent 12 }}
129           volumeMounts:
130             - name: sc-dashboard-volume
131               mountPath: {{ .Values.sidecar.dashboards.folder | quote }}
132 {{- end}}
133         - name: {{ .Chart.Name }}
134           image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
135           imagePullPolicy: {{ .Values.image.pullPolicy }}
136         {{- if .Values.command }}
137           command:
138           {{- range .Values.command }}
139             - {{ . }}
140           {{- end }}
141         {{- end}}
142           volumeMounts:
143             - name: config
144               mountPath: "/etc/grafana/grafana.ini"
145               subPath: grafana.ini
146             {{- if not .Values.admin.existingSecret }}
147             - name: ldap
148               mountPath: "/etc/grafana/ldap.toml"
149               subPath: ldap.toml
150             {{- end }}
151             {{- range .Values.extraConfigmapMounts }}
152             - name: {{ .name }}
153               mountPath: {{ .mountPath }}
154               readOnly: {{ .readOnly }}
155             {{- end }}
156             - name: storage
157               mountPath: "/var/lib/grafana"
158 {{- if .Values.persistence.subPath }}
159               subPath: {{ .Values.persistence.subPath }}
160 {{- end }}
161 {{- if .Values.dashboards }}
162   {{- range $provider, $dashboards := .Values.dashboards }}
163     {{- range $key, $value := $dashboards }}
164       {{- if (or (hasKey $value "json") (hasKey $value "file")) }}
165             - name: dashboards-{{ $provider }}
166               mountPath: "/var/lib/grafana/dashboards/{{ $provider }}/{{ $key }}.json"
167               subPath: "{{ $key }}.json"
168       {{- end }}
169     {{- end }}
170   {{- end }}
171 {{- end -}}
172 {{- if .Values.dashboardsConfigMaps }}
173   {{- range keys .Values.dashboardsConfigMaps }}
174             - name: dashboards-{{ . }}
175               mountPath: "/var/lib/grafana/dashboards/{{ . }}"
176   {{- end }}
177 {{- end }}
178 {{- if .Values.datasources }}
179             - name: config
180               mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml"
181               subPath: datasources.yaml
182 {{- end }}
183 {{- if .Values.notifiers }}
184             - name: config
185               mountPath: "/etc/grafana/provisioning/notifiers/notifiers.yaml"
186               subPath: notifiers.yaml
187 {{- end }}
188 {{- if .Values.dashboardProviders }}
189             - name: config
190               mountPath: "/etc/grafana/provisioning/dashboards/dashboardproviders.yaml"
191               subPath: dashboardproviders.yaml
192 {{- end }}
193 {{- if .Values.sidecar.dashboards.enabled }}
194             - name: sc-dashboard-volume
195               mountPath: {{ .Values.sidecar.dashboards.folder | quote }}
196             - name: sc-dashboard-provider
197               mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml"
198               subPath: provider.yaml
199 {{- end}}
200 {{- if .Values.sidecar.datasources.enabled }}
201             - name: sc-datasources-volume
202               mountPath: "/etc/grafana/provisioning/datasources"
203 {{- end}}
204           {{- range .Values.extraSecretMounts }}
205             - name: {{ .name }}
206               mountPath: {{ .mountPath }}
207               readOnly: {{ .readOnly }}
208           {{- end }}
209           {{- range .Values.extraVolumeMounts }}
210             - name: {{ .name }}
211               mountPath: {{ .mountPath }}
212               subPath: {{ .subPath | default "" }}
213               readOnly: {{ .readOnly }}
214           {{- end }}
215           {{- range .Values.extraEmptyDirMounts }}
216             - name: {{ .name }}
217               mountPath: {{ .mountPath }}
218           {{- end }}
219           ports:
220             - name: service
221               containerPort: {{ .Values.service.port }}
222               protocol: TCP
223             - name: grafana
224               containerPort: 3000
225               protocol: TCP
226           env:
227             {{- if not .Values.env.GF_SECURITY_ADMIN_USER }}
228             - name: GF_SECURITY_ADMIN_USER
229               valueFrom:
230                 secretKeyRef:
231                   name: {{ .Values.admin.existingSecret | default (include "grafana.fullname" .) }}
232                   key: {{ .Values.admin.userKey | default "admin-user" }}
233             {{- end }}
234             {{- if not .Values.env.GF_SECURITY_ADMIN_PASSWORD }}
235             - name: GF_SECURITY_ADMIN_PASSWORD
236               valueFrom:
237                 secretKeyRef:
238                   name: {{ .Values.admin.existingSecret | default (include "grafana.fullname" .) }}
239                   key: {{ .Values.admin.passwordKey | default "admin-password" }}
240             {{- end }}
241             {{- if .Values.plugins }}
242             - name: GF_INSTALL_PLUGINS
243               valueFrom:
244                 configMapKeyRef:
245                   name: {{ template "grafana.fullname" . }}
246                   key: plugins
247             {{- end }}
248             {{- if .Values.smtp.existingSecret }}
249             - name: GF_SMTP_USER
250               valueFrom:
251                 secretKeyRef:
252                   name: {{ .Values.smtp.existingSecret }}
253                   key: {{ .Values.smtp.userKey | default "user" }}
254             - name: GF_SMTP_PASSWORD
255               valueFrom:
256                 secretKeyRef:
257                   name: {{ .Values.smtp.existingSecret }}
258                   key: {{ .Values.smtp.passwordKey | default "password" }}
259             {{- end }}
260 {{- range $key, $value := .Values.env }}
261             - name: "{{ $key }}"
262               value: "{{ $value }}"
263 {{- end }}
264           {{- if .Values.envFromSecret }}
265           envFrom:
266             - secretRef:
267                 name: {{ .Values.envFromSecret }}
268           {{- end }}
269           livenessProbe:
270 {{ toYaml .Values.livenessProbe | indent 12 }}
271           readinessProbe:
272 {{ toYaml .Values.readinessProbe | indent 12 }}
273           resources:
274 {{ toYaml .Values.resources | indent 12 }}
275 {{- if .Values.extraContainers }}
276 {{ toYaml .Values.extraContainers | indent 8}}
277 {{- end }}
278     {{- with .Values.nodeSelector }}
279       nodeSelector:
280 {{ toYaml . | indent 8 }}
281     {{- end }}
282     {{- with .Values.affinity }}
283       affinity:
284 {{ toYaml . | indent 8 }}
285     {{- end }}
286     {{- with .Values.tolerations }}
287       tolerations:
288 {{ toYaml . | indent 8 }}
289     {{- end }}
290       volumes:
291         - name: config
292           configMap:
293             name: {{ template "grafana.fullname" . }}
294       {{- range .Values.extraConfigmapMounts }}
295         - name: {{ .name }}
296           configMap:
297             name: {{ .configMap }}
298       {{- end }}
299         {{- if .Values.dashboards }}
300           {{- range keys .Values.dashboards }}
301         - name: dashboards-{{ . }}
302           configMap:
303             name: {{ template "grafana.fullname" $ }}-dashboards-{{ . }}
304           {{- end }}
305         {{- end }}
306         {{- if .Values.dashboardsConfigMaps }}
307           {{ $root := . }}
308           {{- range $provider, $name := .Values.dashboardsConfigMaps }}
309         - name: dashboards-{{ $provider }}
310           configMap:
311             name: {{ tpl $name $root }}
312           {{- end }}
313         {{- end }}
314         {{- if not .Values.admin.existingSecret }}
315         - name: ldap
316           secret:
317             {{- if .Values.ldap.existingSecret }}
318             secretName: {{ .Values.ldap.existingSecret }}
319             {{- else }}
320             secretName: {{ template "grafana.fullname" . }}
321             {{- end }}
322             items:
323               - key: ldap-toml
324                 path: ldap.toml
325         {{- end }}
326         - name: storage
327       {{- if .Values.persistence.enabled }}
328           persistentVolumeClaim:
329             claimName: {{ .Values.persistence.existingClaim | default (include "grafana.fullname" .) }}
330       {{- else }}
331           emptyDir: {}
332       {{- end -}}
333       {{- if .Values.sidecar.dashboards.enabled }}
334         - name: sc-dashboard-volume
335           emptyDir: {}
336         - name: sc-dashboard-provider
337           configMap:
338             name: {{ template "grafana.fullname" . }}-config-dashboards
339       {{- end }}
340       {{- if .Values.sidecar.datasources.enabled }}
341         - name: sc-datasources-volume
342           emptyDir: {}
343       {{- end -}}
344       {{- range .Values.extraSecretMounts }}
345         - name: {{ .name }}
346           secret:
347             secretName: {{ .secretName }}
348             defaultMode: {{ .defaultMode }}
349       {{- end }}
350       {{- range .Values.extraVolumeMounts }}
351         - name: {{ .name }}
352           persistentVolumeClaim:
353             claimName: {{ .existingClaim }}
354       {{- end }}
355       {{- range .Values.extraEmptyDirMounts }}
356         - name: {{ .name }}
357           emptyDir: {}
358       {{- end }}