blob: fdf55f2312625c4141bd319d1ac20f5c79b72267 [file] [log] [blame]
gio07eb1082024-10-25 14:35:56 +04001{{- /*
2Copyright Broadcom, Inc. All Rights Reserved.
3SPDX-License-Identifier: APACHE-2.0
4*/}}
5
6{{- if not (eq .Values.architecture "replicaset") }}
7apiVersion: {{ if .Values.useStatefulSet }}{{ include "common.capabilities.statefulset.apiVersion" . }}{{- else }}{{ include "common.capabilities.deployment.apiVersion" . }}{{- end }}
8kind: {{ if .Values.useStatefulSet }}StatefulSet{{- else }}Deployment{{- end }}
9metadata:
10 name: {{ include "mongodb.fullname" . }}
11 namespace: {{ include "mongodb.namespace" . | quote }}
12 {{- $labels := include "common.tplvalues.merge" ( dict "values" ( list .Values.labels .Values.commonLabels ) "context" . ) }}
13 labels: {{- include "common.labels.standard" ( dict "customLabels" $labels "context" $ ) | nindent 4 }}
14 app.kubernetes.io/component: mongodb
15 {{- if or .Values.annotations .Values.commonAnnotations }}
16 {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.annotations .Values.commonAnnotations ) "context" . ) }}
17 annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
18 {{- end }}
19spec:
20 replicas: {{ gt (.Values.replicaCount | int) 1 | ternary 1 .Values.replicaCount }}
21 {{- if .Values.useStatefulSet }}
22 serviceName: {{ include "mongodb.service.nameOverride" . }}
23 {{- end }}
24 {{- if .Values.updateStrategy}}
25 {{- if .Values.useStatefulSet }}
26 updateStrategy:
27 {{- else }}
28 strategy:
29 {{- end }}
30 {{- toYaml .Values.updateStrategy | nindent 4 }}
31 {{- end}}
32 {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }}
33 selector:
34 matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }}
35 app.kubernetes.io/component: mongodb
36 template:
37 metadata:
38 labels: {{- include "common.labels.standard" ( dict "customLabels" $podLabels "context" $ ) | nindent 8 }}
39 app.kubernetes.io/component: mongodb
40 {{- if or (include "mongodb.createConfigmap" .) .Values.podAnnotations }}
41 annotations:
42 {{- if (include "mongodb.createConfigmap" .) }}
43 checksum/configuration: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
44 {{- end }}
45 {{- if .Values.podAnnotations }}
46 {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
47 {{- end }}
48 {{- end }}
49 spec:
50 {{- include "mongodb.imagePullSecrets" . | nindent 6 }}
51 automountServiceAccountToken: {{ .Values.automountServiceAccountToken }}
52 {{- if .Values.hostAliases }}
53 hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
54 {{- end }}
55 {{- if .Values.schedulerName }}
56 schedulerName: {{ .Values.schedulerName | quote }}
57 {{- end }}
58 serviceAccountName: {{ template "mongodb.serviceAccountName" . }}
59 {{- if .Values.affinity }}
60 affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }}
61 {{- else }}
62 affinity:
63 podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "component" "mongodb" "customLabels" $podLabels "topologyKey" .Values.topologyKey "context" $) | nindent 10 }}
64 podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "component" "mongodb" "customLabels" $podLabels "topologyKey" .Values.topologyKey "context" $) | nindent 10 }}
65 nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
66 {{- end }}
67 {{- if .Values.nodeSelector }}
68 nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
69 {{- end }}
70 {{- if .Values.tolerations }}
71 tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
72 {{- end }}
73 {{- if .Values.priorityClassName }}
74 priorityClassName: {{ .Values.priorityClassName }}
75 {{- end }}
76 {{- if .Values.runtimeClassName }}
77 runtimeClassName: {{ .Values.runtimeClassName }}
78 {{- end }}
79 {{- if .Values.podSecurityContext.enabled }}
80 securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.podSecurityContext "context" $) | nindent 8 }}
81 {{- end }}
82 {{ if .Values.terminationGracePeriodSeconds }}
83 terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
84 {{- end }}
85 enableServiceLinks: {{ .Values.enableServiceLinks }}
86 initContainers:
87 {{- if .Values.initContainers }}
88 {{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 8 }}
89 {{- end }}
90 {{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
91 {{- include "mongodb.initContainer.volumePermissions" . | indent 8 }}
92 {{- end }}
93 {{- include "mongodb.initContainer.prepareLogDir" . | nindent 8 }}
94 {{- if .Values.tls.enabled }}
95 - name: generate-tls-certs
96 image: {{ include "mongodb.tls.image" . }}
97 imagePullPolicy: {{ .Values.tls.image.pullPolicy | quote }}
98 env:
99 - name: MY_POD_NAMESPACE
100 valueFrom:
101 fieldRef:
102 fieldPath: metadata.namespace
103 - name: MY_POD_HOST_IP
104 valueFrom:
105 fieldRef:
106 fieldPath: status.hostIP
107 volumeMounts:
108 - name: empty-dir
109 mountPath: /tmp
110 subPath: tmp-dir
111 {{- if (include "mongodb.autoGenerateCerts" .) }}
112 - name: certs-volume
113 mountPath: /certs/CAs
114 {{- else }}
115 - name: mongodb-certs-0
116 mountPath: /certs-0
117 {{- end }}
118 - name: certs
119 mountPath: /certs
120 - name: common-scripts
121 mountPath: /bitnami/scripts
122 command:
123 - /bitnami/scripts/generate-certs.sh
124 args:
125 - -s {{ include "mongodb.service.nameOverride" . }}
126 {{- if .Values.externalAccess.service.loadBalancerIPs }}
127 - -i {{ join "," .Values.externalAccess.service.loadBalancerIPs }}
128 {{- end }}
129 {{- if or .Values.tls.extraDnsNames .Values.externalAccess.service.publicNames }}
130 - -n {{ join "," ( concat .Values.tls.extraDnsNames .Values.externalAccess.service.publicNames ) }}
131 {{- end }}
132 {{- if .Values.tls.resources }}
133 resources: {{- include "common.tplvalues.render" (dict "value" .Values.tls.resources "context" $) | nindent 12 }}
134 {{- else if ne .Values.tls.resourcesPreset "none" }}
135 resources: {{- include "common.resources.preset" (dict "type" .Values.tls.resourcesPreset) | nindent 12 }}
136 {{- end }}
137 {{- if .Values.tls.securityContext }}
138 securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.tls.securityContext "context" $) | nindent 12 }}
139 {{- end }}
140 {{- end }}
141 containers:
142 - name: mongodb
143 image: {{ include "mongodb.image" . }}
144 imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
145 {{- if .Values.containerSecurityContext.enabled }}
146 securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
147 {{- end }}
148 {{- if .Values.diagnosticMode.enabled }}
149 command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
150 {{- else if .Values.command }}
151 command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
152 {{- end }}
153 {{- if .Values.diagnosticMode.enabled }}
154 args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
155 {{- else if .Values.args }}
156 args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
157 {{- end }}
158 {{- if .Values.lifecycleHooks }}
159 lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }}
160 {{- end }}
161 env:
162 - name: BITNAMI_DEBUG
163 value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }}
164 {{- $customUsers := include "mongodb.customUsers" . -}}
165 {{- $customDatabases := include "mongodb.customDatabases" . -}}
166 {{- if not (empty $customUsers) }}
167 - name: MONGODB_EXTRA_USERNAMES
168 value: {{ $customUsers | quote }}
169 {{- end }}
170 {{- if not (empty $customDatabases) }}
171 - name: MONGODB_EXTRA_DATABASES
172 value: {{ $customDatabases | quote }}
173 {{- end }}
174 {{- if .Values.auth.enabled }}
175 {{- if and (not (empty $customUsers)) (not (empty $customDatabases)) }}
176 - name: MONGODB_EXTRA_PASSWORDS
177 valueFrom:
178 secretKeyRef:
179 name: {{ include "mongodb.secretName" . }}
180 key: mongodb-passwords
181 {{- end }}
182 - name: MONGODB_ROOT_USER
183 value: {{ .Values.auth.rootUser | quote }}
184 - name: MONGODB_ROOT_PASSWORD
185 valueFrom:
186 secretKeyRef:
187 name: {{ include "mongodb.secretName" . }}
188 key: mongodb-root-password
189 {{- end }}
190 {{- if and .Values.metrics.enabled (not (empty .Values.metrics.username)) }}
191 - name: MONGODB_METRICS_USERNAME
192 value: {{ .Values.metrics.username | quote }}
193 {{- if .Values.auth.enabled }}
194 - name: MONGODB_METRICS_PASSWORD
195 valueFrom:
196 secretKeyRef:
197 name: {{ include "mongodb.secretName" . }}
198 key: mongodb-metrics-password
199 {{- end }}
200 {{- end }}
201 - name: ALLOW_EMPTY_PASSWORD
202 value: {{ ternary "no" "yes" .Values.auth.enabled | quote }}
203 - name: MONGODB_SYSTEM_LOG_VERBOSITY
204 value: {{ .Values.systemLogVerbosity | quote }}
205 - name: MONGODB_DISABLE_SYSTEM_LOG
206 value: {{ ternary "yes" "no" .Values.disableSystemLog | quote }}
207 - name: MONGODB_DISABLE_JAVASCRIPT
208 value: {{ ternary "yes" "no" .Values.disableJavascript | quote }}
209 - name: MONGODB_ENABLE_JOURNAL
210 value: {{ ternary "yes" "no" .Values.enableJournal | quote }}
211 - name: MONGODB_PORT_NUMBER
212 value: {{ .Values.containerPorts.mongodb | quote }}
213 - name: MONGODB_ENABLE_IPV6
214 value: {{ ternary "yes" "no" .Values.enableIPv6 | quote }}
215 - name: MONGODB_ENABLE_DIRECTORY_PER_DB
216 value: {{ ternary "yes" "no" .Values.directoryPerDB | quote }}
217 {{- $extraFlags := .Values.extraFlags | join " " -}}
218 {{- if .Values.tls.enabled }}
219 {{- if .Values.tls.mTLS.enabled }}
220 {{- $extraFlags = printf "--tlsCAFile=/certs/mongodb-ca-cert %s" $extraFlags }}
221 {{- end }}
222 {{- $extraFlags = printf "--tlsMode=%s --tlsCertificateKeyFile=/certs/mongodb.pem %s" .Values.tls.mode $extraFlags }}
223 {{- end }}
224 {{- if ne $extraFlags "" }}
225 - name: MONGODB_EXTRA_FLAGS
226 value: {{ $extraFlags | quote }}
227 {{- end }}
228 {{- if .Values.tls.enabled }}
229 - name: MONGODB_CLIENT_EXTRA_FLAGS
230 value: --tls {{ if .Values.tls.mTLS.enabled }}--tlsCertificateKeyFile=/certs/mongodb.pem {{ end }}--tlsCAFile=/certs/mongodb-ca-cert
231 {{- end }}
232 {{- if .Values.extraEnvVars }}
233 {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
234 {{- end }}
235 {{- if or .Values.extraEnvVarsCM .Values.extraEnvVarsSecret }}
236 envFrom:
237 {{- if .Values.extraEnvVarsCM }}
238 - configMapRef:
239 name: {{ tpl .Values.extraEnvVarsCM . | quote }}
240 {{- end }}
241 {{- if .Values.extraEnvVarsSecret }}
242 - secretRef:
243 name: {{ tpl .Values.extraEnvVarsSecret . | quote }}
244 {{- end }}
245 {{- end }}
246 ports:
247 - name: mongodb
248 containerPort: {{ .Values.containerPorts.mongodb }}
249 {{- if not .Values.diagnosticMode.enabled }}
250 {{- if .Values.customLivenessProbe }}
251 livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
252 {{- else if .Values.livenessProbe.enabled }}
253 livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }}
254 exec:
255 command:
256 - /bitnami/scripts/ping-mongodb.sh
257 {{- end }}
258 {{- end }}
259 {{- if not .Values.diagnosticMode.enabled }}
260 {{- if .Values.customReadinessProbe }}
261 readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
262 {{- else if .Values.readinessProbe.enabled }}
263 readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled") "context" $) | nindent 12 }}
264 exec:
265 command:
266 - /bitnami/scripts/readiness-probe.sh
267 {{- end }}
268 {{- end }}
269 {{- if not .Values.diagnosticMode.enabled }}
270 {{- if .Values.customStartupProbe }}
271 startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }}
272 {{- else if .Values.startupProbe.enabled }}
273 startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.startupProbe "enabled") "context" $) | nindent 12 }}
274 exec:
275 command:
276 - /bitnami/scripts/startup-probe.sh
277 {{- end }}
278 {{- end }}
279 {{- if .Values.resources }}
280 resources: {{- include "common.tplvalues.render" (dict "value" .Values.resources "context" $) | nindent 12 }}
281 {{- else if ne .Values.resourcesPreset "none" }}
282 resources: {{- include "common.resources.preset" (dict "type" .Values.resourcesPreset) | nindent 12 }}
283 {{- end }}
284 volumeMounts:
285 - name: empty-dir
286 mountPath: /tmp
287 subPath: tmp-dir
288 - name: empty-dir
289 mountPath: /opt/bitnami/mongodb/conf
290 subPath: app-conf-dir
291 - name: empty-dir
292 mountPath: /opt/bitnami/mongodb/tmp
293 subPath: app-tmp-dir
294 - name: empty-dir
295 mountPath: /opt/bitnami/mongodb/logs
296 subPath: app-logs-dir
297 - name: empty-dir
298 mountPath: /.mongodb
299 subPath: mongosh-home
300 - name: {{ .Values.persistence.name | default "datadir" }}
301 mountPath: {{ .Values.persistence.mountPath }}
302 subPath: {{ .Values.persistence.subPath }}
303 - name: common-scripts
304 mountPath: /bitnami/scripts
305 {{- if or .Values.initdbScriptsConfigMap .Values.initdbScripts }}
306 - name: custom-init-scripts
307 mountPath: /docker-entrypoint-initdb.d
308 {{- end }}
309 {{- if or .Values.configuration .Values.existingConfigmap }}
310 - name: config
311 mountPath: /opt/bitnami/mongodb/conf/mongodb.conf
312 subPath: mongodb.conf
313 {{- end }}
314 {{- if .Values.tls.enabled }}
315 - name: certs
316 mountPath: /certs
317 {{- end }}
318 {{- if .Values.extraVolumeMounts }}
319 {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
320 {{- end }}
321 {{- if .Values.metrics.enabled }}
322 - name: metrics
323 image: {{ template "mongodb.metrics.image" . }}
324 imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }}
325 {{- if .Values.containerSecurityContext.enabled }}
326 securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
327 {{- end }}
328 {{- if .Values.diagnosticMode.enabled }}
329 command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
330 {{- else if .Values.metrics.command }}
331 command: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.command "context" $) | nindent 12 }}
332 {{- else }}
333 command:
334 - /bin/bash
335 - -ec
336 {{- end }}
337 {{- if .Values.diagnosticMode.enabled }}
338 args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
339 {{- else if .Values.metrics.args }}
340 args: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.args "context" $) | nindent 12 }}
341 {{- else }}
342 args:
343 - |
344 /bin/mongodb_exporter {{ include "mongodb.exporterArgs" $ }} --mongodb.direct-connect --mongodb.global-conn-pool --web.listen-address ":{{ .Values.metrics.containerPort }}" --mongodb.uri "{{ include "mongodb.mongodb_exporter.uri" . }}" {{ .Values.metrics.extraFlags }}
345 {{- end }}
346 env:
347 {{- if .Values.auth.enabled }}
348 {{- if not .Values.metrics.username }}
349 - name: MONGODB_ROOT_USER
350 value: {{ .Values.auth.rootUser | quote }}
351 - name: MONGODB_ROOT_PASSWORD
352 valueFrom:
353 secretKeyRef:
354 name: {{ include "mongodb.secretName" . }}
355 key: mongodb-root-password
356 {{- else }}
357 - name: MONGODB_METRICS_USERNAME
358 value: {{ .Values.metrics.username | quote }}
359 - name: MONGODB_METRICS_PASSWORD
360 valueFrom:
361 secretKeyRef:
362 name: {{ include "mongodb.secretName" . }}
363 key: mongodb-metrics-password
364 {{- end }}
365 {{- end }}
366 volumeMounts:
367 - name: empty-dir
368 mountPath: /tmp
369 subPath: tmp-dir
370 {{- if .Values.tls.enabled }}
371 - name: certs
372 mountPath: /certs
373 {{- end }}
374 {{- if .Values.metrics.extraVolumeMounts }}
375 {{- include "common.tplvalues.render" (dict "value" .Values.metrics.extraVolumeMounts "context" $) | nindent 12 }}
376 {{- end }}
377 ports:
378 - name: metrics
379 containerPort: {{ .Values.metrics.containerPort }}
380 {{- if not .Values.diagnosticMode.enabled }}
381 {{- if .Values.metrics.customLivenessProbe }}
382 livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.customLivenessProbe "context" $) | nindent 12 }}
383 {{- else if .Values.metrics.livenessProbe.enabled }}
384 livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.metrics.livenessProbe "enabled") "context" $) | nindent 12 }}
385 tcpSocket:
386 port: metrics
387 {{- end }}
388 {{- if .Values.metrics.customReadinessProbe }}
389 readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.customReadinessProbe "context" $) | nindent 12 }}
390 {{- else if .Values.metrics.readinessProbe.enabled }}
391 readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.metrics.readinessProbe "enabled") "context" $) | nindent 12 }}
392 httpGet:
393 path: /
394 port: metrics
395 {{- end }}
396 {{- if .Values.metrics.customStartupProbe }}
397 startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.customStartupProbe "context" $) | nindent 12 }}
398 {{- else if .Values.metrics.startupProbe.enabled }}
399 startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.metrics.startupProbe "enabled") "context" $) | nindent 12 }}
400 tcpSocket:
401 port: metrics
402 {{- end }}
403 {{- end }}
404 {{- if .Values.metrics.resources }}
405 resources: {{- include "common.tplvalues.render" (dict "value" .Values.metrics.resources "context" $) | nindent 12 }}
406 {{- else if ne .Values.metrics.resourcesPreset "none" }}
407 resources: {{- include "common.resources.preset" (dict "type" .Values.metrics.resourcesPreset) | nindent 12 }}
408 {{- end }}
409 {{- end }}
410 {{- if .Values.sidecars }}
411 {{- include "common.tplvalues.render" (dict "value" .Values.sidecars "context" $) | nindent 8 }}
412 {{- end }}
413 volumes:
414 - name: empty-dir
415 emptyDir: {}
416 - name: common-scripts
417 configMap:
418 name: {{ printf "%s-common-scripts" (include "mongodb.fullname" .) }}
419 defaultMode: 0550
420 {{- if or .Values.initdbScriptsConfigMap .Values.initdbScripts }}
421 - name: custom-init-scripts
422 configMap:
423 name: {{ template "mongodb.initdbScriptsCM" . }}
424 {{- end }}
425 {{- if or .Values.configuration .Values.existingConfigmap }}
426 - name: config
427 configMap:
428 name: {{ include "mongodb.configmapName" . }}
429 {{- end }}
430 {{- if .Values.extraVolumes }}
431 {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }}
432 {{- end }}
433 {{- if .Values.tls.enabled }}
434 - name: certs
435 emptyDir: {}
436 {{- if (include "mongodb.autoGenerateCerts" .) }}
437 - name: certs-volume
438 secret:
439 secretName: {{ template "mongodb.tlsSecretName" . }}
440 items:
441 - key: mongodb-ca-cert
442 path: mongodb-ca-cert
443 mode: 0600
444 - key: mongodb-ca-key
445 path: mongodb-ca-key
446 mode: 0600
447 {{- else }}
448 - name: mongodb-certs-0
449 secret:
450 secretName: {{ include "common.tplvalues.render" ( dict "value" .Values.tls.standalone.existingSecret "context" $) }}
451 defaultMode: 256
452 {{- end }}
453 {{- end }}
454 {{- if not .Values.persistence.enabled }}
455 - name: {{ .Values.persistence.name | default "datadir" }}
456 {{- if .Values.persistence.medium }}
457 emptyDir:
458 medium: {{ .Values.persistence.medium | quote }}
459 {{- else }}
460 emptyDir: {}
461 {{- end }}
462 {{- else if .Values.persistence.existingClaim }}
463 - name: {{ .Values.persistence.name | default "datadir" }}
464 persistentVolumeClaim:
465 claimName: {{ printf "%s" (tpl .Values.persistence.existingClaim .) }}
466 {{- else if not .Values.useStatefulSet }}
467 - name: {{ .Values.persistence.name | default "datadir" }}
468 persistentVolumeClaim:
469 claimName: {{ template "mongodb.fullname" . }}
470 {{- else }}
471 {{- if .Values.persistentVolumeClaimRetentionPolicy.enabled }}
472 persistentVolumeClaimRetentionPolicy:
473 whenDeleted: {{ .Values.persistentVolumeClaimRetentionPolicy.whenDeleted }}
474 whenScaled: {{ .Values.persistentVolumeClaimRetentionPolicy.whenScaled }}
475 {{- end }}
476 volumeClaimTemplates:
477 - metadata:
478 name: {{ .Values.persistence.name | default "datadir" }}
479 {{- if .Values.persistence.annotations }}
480 annotations: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }}
481 {{- end }}
482 {{- if .Values.persistence.labels }}
483 labels: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.labels "context" $) | nindent 10 }}
484 {{- end }}
485 spec:
486 accessModes:
487 {{- range .Values.persistence.accessModes }}
488 - {{ . | quote }}
489 {{- end }}
490 resources:
491 requests:
492 storage: {{ .Values.persistence.size | quote }}
493 {{- if .Values.persistence.volumeClaimTemplates.selector }}
494 selector: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.volumeClaimTemplates.selector "context" $) | nindent 10 }}
495 {{- end }}
496 {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }}
497 {{- end }}
498{{- end }}