Merge "[AAI] Add model-loader tracing config"
[oom.git] / kubernetes / common / mongodb / values.yaml
1 # Copyright VMware, Inc.
2 # SPDX-License-Identifier: APACHE-2.0
3
4 ## @section Global parameters
5 ## Global Docker image parameters
6 ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
7 ## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
8 ##
9
10 ## @param global.imageRegistry Global Docker image registry
11 ## @param global.imagePullSecrets Global Docker registry secret names as an array
12 ## @param global.storageClass Global StorageClass for Persistent Volume(s)
13 ## @param global.namespaceOverride Override the namespace for resource deployed by the chart, but can itself be overridden by the local namespaceOverride
14 ##
15 global:
16   imageRegistry: ""
17   ## E.g.
18   ## imagePullSecrets:
19   ##   - myRegistryKeySecretName
20   ##
21   imagePullSecrets: []
22   storageClass: ""
23   namespaceOverride: ""
24 ## @section Common parameters
25 ##
26
27 ## @param nameOverride String to partially override mongodb.fullname template (will maintain the release name)
28 ##
29 nameOverride: ""
30 ## @param fullnameOverride String to fully override mongodb.fullname template
31 ##
32 fullnameOverride: ""
33 ## @param namespaceOverride String to fully override common.names.namespace
34 ##
35 namespaceOverride: ""
36 ## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
37 ##
38 kubeVersion: ""
39 ## @param clusterDomain Default Kubernetes cluster domain
40 ##
41 clusterDomain: cluster.local
42 ## @param extraDeploy Array of extra objects to deploy with the release
43 ## extraDeploy:
44 ## This needs to be uncommented and added to 'extraDeploy' in order to use the replicaset 'mongo-labeler' sidecar
45 ## for dynamically discovering the mongodb primary pod
46 ## suggestion is to use a hard-coded and predictable TCP port for the primary mongodb pod (here is 30001, choose your own)
47 ## - apiVersion: v1
48 ##   kind: Service
49 ##   metadata:
50 ##     name: mongodb-primary
51 ##     namespace: the-mongodb-namespace
52 ##     labels:
53 ##       app.kubernetes.io/component: mongodb
54 ##       app.kubernetes.io/instance: mongodb
55 ##       app.kubernetes.io/managed-by: Helm
56 ##       app.kubernetes.io/name: mongodb
57 ##   spec:
58 ##     type: NodePort
59 ##     externalTrafficPolicy: Cluster
60 ##     ports:
61 ##       - name: mongodb
62 ##         port: 30001
63 ##         nodePort: 30001
64 ##         protocol: TCP
65 ##         targetPort: mongodb
66 ##     selector:
67 ##       app.kubernetes.io/component: mongodb
68 ##       app.kubernetes.io/instance: mongodb
69 ##       app.kubernetes.io/name: mongodb
70 ##       primary: "true"
71 ##
72 extraDeploy: []
73 ## @param commonLabels Add labels to all the deployed resources (sub-charts are not considered). Evaluated as a template
74 ##
75 commonLabels: {}
76 ## @param commonAnnotations Common annotations to add to all Mongo resources (sub-charts are not considered). Evaluated as a template
77 ##
78 commonAnnotations: {}
79 ## @param topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
80 ## i.e. topologyKey: topology.kubernetes.io/zone
81 ##
82 topologyKey: ""
83 ## @param serviceBindings.enabled Create secret for service binding (Experimental)
84 ## Ref: https://servicebinding.io/service-provider/
85 ##
86 serviceBindings:
87   enabled: false
88 ## @param enableServiceLinks Whether information about services should be injected into pod's environment variable
89 ## The environment variables injected by service links are not used, but can lead to slow boot times or slow running of the scripts when there are many services in the current namespace.
90 ## If you experience slow pod startups or slow running of the scripts you probably want to set this to `false`.
91 ##
92 enableServiceLinks: true
93 ## Enable diagnostic mode in the deployment
94 ##
95 diagnosticMode:
96   ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
97   ##
98   enabled: false
99   ## @param diagnosticMode.command Command to override all containers in the deployment
100   ##
101   command:
102     - sleep
103   ## @param diagnosticMode.args Args to override all containers in the deployment
104   ##
105   args:
106     - infinity
107 ## @section MongoDB(®) parameters
108 ##
109
110 ## Bitnami MongoDB(®) image
111 ## ref: https://hub.docker.com/r/bitnami/mongodb/tags/
112 ## @param image.registry [default: REGISTRY_NAME] MongoDB(®) image registry
113 ## @param image.repository [default: REPOSITORY_NAME/mongodb] MongoDB(®) image registry
114 ## @skip image.tag MongoDB(®) image tag (immutable tags are recommended)
115 ## @param image.digest MongoDB(®) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
116 ## @param image.pullPolicy MongoDB(®) image pull policy
117 ## @param image.pullSecrets Specify docker-registry secret names as an array
118 ## @param image.debug Set to true if you would like to see extra information on logs
119 ##
120 image:
121   registry: docker.io
122   repository: bitnami/mongodb
123   tag: 7.0.5-debian-12-r5
124   digest: ""
125   ## Specify a imagePullPolicy
126   ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
127   ##
128   pullPolicy: IfNotPresent
129   ## Optionally specify an array of imagePullSecrets.
130   ## Secrets must be manually created in the namespace.
131   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
132   ## e.g:
133   ## pullSecrets:
134   ##   - myRegistryKeySecretName
135   ##
136   pullSecrets: []
137   ## Set to true if you would like to see extra information on logs
138   ##
139   debug: false
140 ## @param schedulerName Name of the scheduler (other than default) to dispatch pods
141 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
142 ##
143 schedulerName: ""
144 ## @param architecture MongoDB(®) architecture (`standalone` or `replicaset`)
145 ##
146 architecture: standalone
147 ## @param useStatefulSet Set to true to use a StatefulSet instead of a Deployment (only when `architecture=standalone`)
148 ##
149 useStatefulSet: false
150 ## MongoDB(®) Authentication parameters
151 ##
152 auth:
153   ## @param auth.enabled Enable authentication
154   ## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/
155   ##
156   enabled: true
157   ## @param auth.rootUser MongoDB(®) root user
158   ##
159   rootUser: root
160   ## @param auth.rootPassword MongoDB(®) root password
161   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mongodb#setting-the-root-user-and-password-on-first-run
162   ##
163   rootPassword: ""
164   ## MongoDB(®) custom users and databases
165   ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mongodb#creating-a-user-and-database-on-first-run
166   ## @param auth.usernames List of custom users to be created during the initialization
167   ## @param auth.passwords List of passwords for the custom users set at `auth.usernames`
168   ## @param auth.databases List of custom databases to be created during the initialization
169   ##
170   usernames: []
171   passwords: []
172   databases: []
173   ## @param auth.username DEPRECATED: use `auth.usernames` instead
174   ## @param auth.password DEPRECATED: use `auth.passwords` instead
175   ## @param auth.database DEPRECATED: use `auth.databases` instead
176   ##
177   username: ""
178   password: ""
179   database: ""
180   ## @param auth.replicaSetKey Key used for authentication in the replicaset (only when `architecture=replicaset`)
181   ##
182   replicaSetKey: ""
183   ## @param auth.existingSecret Existing secret with MongoDB(®) credentials (keys: `mongodb-passwords`, `mongodb-root-password`, `mongodb-metrics-password`, `mongodb-replica-set-key`)
184   ## NOTE: When it's set the previous parameters are ignored.
185   ##
186   existingSecret: ""
187 tls:
188   ## @param tls.enabled Enable MongoDB(®) TLS support between nodes in the cluster as well as between mongo clients and nodes
189   ##
190   enabled: false
191   mTLS:
192     ## @param tls.mTLS.enabled IF TLS support is enabled, require clients to provide certificates
193     enabled: true
194   ## @param tls.autoGenerated Generate a custom CA and self-signed certificates
195   ##
196   autoGenerated: true
197   ## @param tls.existingSecret Existing secret with TLS certificates (keys: `mongodb-ca-cert`, `mongodb-ca-key`)
198   ## NOTE: When it's set it will disable secret creation.
199   ##
200   existingSecret: ""
201   ## Add Custom CA certificate
202   ## @param tls.caCert Custom CA certificated (base64 encoded)
203   ## @param tls.caKey CA certificate private key (base64 encoded)
204   ##
205   caCert: ""
206   caKey: ""
207   ## @param tls.pemChainIncluded Flag to denote that the Certificate Authority (CA) certificates are bundled with the endpoint cert.
208   ## Certificates must be in proper order, where the top certificate is the leaf and the bottom certificate is the top-most intermediate CA.
209   ##
210   pemChainIncluded: false
211   standalone:
212     ## @param tls.standalone.existingSecret Existing secret with TLS certificates (`tls.key`, `tls.crt`, `ca.crt`) or (`tls.key`, `tls.crt`) with tls.pemChainIncluded set as enabled.
213     ## NOTE: When it's set it will disable certificate self-generation from existing CA.
214     ##
215     existingSecret: ""
216   replicaset:
217     ## @param tls.replicaset.existingSecrets Array of existing secrets with TLS certificates (`tls.key`, `tls.crt`, `ca.crt`) or (`tls.key`, `tls.crt`) with tls.pemChainIncluded set as enabled.
218     ## existingSecrets:
219     ##  - "mySecret-0"
220     ##  - "mySecret-1"
221     ## NOTE: When it's set it will disable certificate self-generation from existing CA.
222     ##
223     existingSecrets: []
224   hidden:
225     ## @param tls.hidden.existingSecrets Array of existing secrets with TLS certificates (`tls.key`, `tls.crt`, `ca.crt`) or (`tls.key`, `tls.crt`) with tls.pemChainIncluded set as enabled.
226     ## existingSecrets:
227     ##  - "mySecret-0"
228     ##  - "mySecret-1"
229     ## NOTE: When it's set it will disable certificate self-generation from existing CA.
230     ##
231     existingSecrets: []
232   arbiter:
233     ## @param tls.arbiter.existingSecret Existing secret with TLS certificates (`tls.key`, `tls.crt`, `ca.crt`) or (`tls.key`, `tls.crt`) with tls.pemChainIncluded set as enabled.
234     ## NOTE: When it's set it will disable certificate self-generation from existing CA.
235     ##
236     existingSecret: ""
237   ## Bitnami Nginx image
238   ## @param tls.image.registry [default: REGISTRY_NAME] Init container TLS certs setup image registry
239   ## @param tls.image.repository [default: REPOSITORY_NAME/nginx] Init container TLS certs setup image repository
240   ## @skip tls.image.tag Init container TLS certs setup image tag (immutable tags are recommended)
241   ## @param tls.image.digest Init container TLS certs setup image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
242   ## @param tls.image.pullPolicy Init container TLS certs setup image pull policy
243   ## @param tls.image.pullSecrets Init container TLS certs specify docker-registry secret names as an array
244   ## @param tls.extraDnsNames Add extra dns names to the CA, can solve x509 auth issue for pod clients
245   ##
246   image:
247     registry: docker.io
248     repository: bitnami/nginx
249     tag: 1.25.4-debian-12-r1
250     digest: ""
251     pullPolicy: IfNotPresent
252     ## Optionally specify an array of imagePullSecrets.
253     ## Secrets must be manually created in the namespace.
254     ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
255     ## e.g:
256     ## pullSecrets:
257     ##   - myRegistryKeySecretName
258     ##
259     pullSecrets: []
260   ## e.g:
261   ## extraDnsNames
262   ##   "DNS.6": "$my_host"
263   ##   "DNS.7": "$test"
264   ##
265   extraDnsNames: []
266   ## @param tls.mode Allows to set the tls mode which should be used when tls is enabled (options: `allowTLS`, `preferTLS`, `requireTLS`)
267   ##
268   mode: requireTLS
269   ## Init Container resource requests and limits
270   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
271   ## We usually recommend not to specify default resources and to leave this as a conscious
272   ## choice for the user. This also increases chances charts run on environments with little
273   ## resources, such as Minikube. If you do want to specify resources, uncomment the following
274   ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
275   ## @param tls.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if tls.resources is set (tls.resources is recommended for production).
276   ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
277   ##
278   resourcesPreset: "none"
279   ## @param tls.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
280   ## Example:
281   ## resources:
282   ##   requests:
283   ##     cpu: 2
284   ##     memory: 512Mi
285   ##   limits:
286   ##     cpu: 3
287   ##     memory: 1024Mi
288   ##
289   resources: {}
290   ## Init Container securityContext
291   ## ref: https://kubernetes.io/docs/concepts/security/pod-security-policy/
292   ## @param tls.securityContext Init container generate-tls-cert Security context
293   ##
294   securityContext: {}
295   ## Example:
296   ## allowPrivilegeEscalation: false
297   ## capabilities:
298   ##   drop: ["ALL"]
299   ##
300 ## @param automountServiceAccountToken Mount Service Account token in pod
301 ##
302 automountServiceAccountToken: false
303 ## @param hostAliases Add deployment host aliases
304 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
305 ##
306 hostAliases: []
307 ## @param replicaSetName Name of the replica set (only when `architecture=replicaset`)
308 ## Ignored when mongodb.architecture=standalone
309 ##
310 replicaSetName: rs0
311 ## @param replicaSetHostnames Enable DNS hostnames in the replicaset config (only when `architecture=replicaset`)
312 ## Ignored when mongodb.architecture=standalone
313 ## Ignored when externalAccess.enabled=true
314 ##
315 replicaSetHostnames: true
316 ## @param enableIPv6 Switch to enable/disable IPv6 on MongoDB(®)
317 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mongodb#enablingdisabling-ipv6
318 ##
319 enableIPv6: false
320 ## @param directoryPerDB Switch to enable/disable DirectoryPerDB on MongoDB(®)
321 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mongodb#enablingdisabling-directoryperdb
322 ##
323 directoryPerDB: false
324 ## MongoDB(®) System Log configuration
325 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mongodb#configuring-system-log-verbosity-level
326 ## @param systemLogVerbosity MongoDB(®) system log verbosity level
327 ## @param disableSystemLog Switch to enable/disable MongoDB(®) system log
328 ##
329 systemLogVerbosity: 0
330 disableSystemLog: false
331 ## @param disableJavascript Switch to enable/disable MongoDB(®) server-side JavaScript execution
332 ## ref: https://docs.mongodb.com/manual/core/server-side-javascript/
333 ##
334 disableJavascript: false
335 ## @param enableJournal Switch to enable/disable MongoDB(®) Journaling
336 ## ref: https://docs.mongodb.com/manual/reference/configuration-options/#mongodb-setting-storage.journal.enabled
337 ##
338 enableJournal: true
339 ## @param configuration MongoDB(®) configuration file to be used for Primary and Secondary nodes
340 ## For documentation of all options, see: http://docs.mongodb.org/manual/reference/configuration-options/
341 ## Example:
342 ## configuration: |-
343 ##   # where and how to store data.
344 ##   storage:
345 ##     dbPath: /bitnami/mongodb/data/db
346 ##     journal:
347 ##       enabled: true
348 ##     directoryPerDB: false
349 ##   # where to write logging data
350 ##   systemLog:
351 ##     destination: file
352 ##     quiet: false
353 ##     logAppend: true
354 ##     logRotate: reopen
355 ##     path: /opt/bitnami/mongodb/logs/mongodb.log
356 ##     verbosity: 0
357 ##   # network interfaces
358 ##   net:
359 ##     port: 27017
360 ##     unixDomainSocket:
361 ##       enabled: true
362 ##       pathPrefix: /opt/bitnami/mongodb/tmp
363 ##     ipv6: false
364 ##     bindIpAll: true
365 ##   # replica set options
366 ##   #replication:
367 ##     #replSetName: replicaset
368 ##     #enableMajorityReadConcern: true
369 ##   # process management options
370 ##   processManagement:
371 ##      fork: false
372 ##      pidFilePath: /opt/bitnami/mongodb/tmp/mongodb.pid
373 ##   # set parameter options
374 ##   setParameter:
375 ##      enableLocalhostAuthBypass: true
376 ##   # security options
377 ##   security:
378 ##     authorization: disabled
379 ##     #keyFile: /opt/bitnami/mongodb/conf/keyfile
380 ##
381 configuration: ""
382 ## @section replicaSetConfigurationSettings settings applied during runtime (not via configuration file)
383 ## If enabled, these are applied by a script which is called within setup.sh
384 ## for documentation see https://docs.mongodb.com/manual/reference/replica-configuration/#replica-set-configuration-fields
385 ## @param replicaSetConfigurationSettings.enabled Enable MongoDB(®) Switch to enable/disable configuring MongoDB(®) run time rs.conf settings
386 ## @param replicaSetConfigurationSettings.configuration run-time rs.conf settings
387 ##
388 replicaSetConfigurationSettings:
389   enabled: false
390   configuration: {}
391 ## Custom configurations for individual replica set members.
392 ## Use the prefix 'members[X].' to apply settings to the member X of the replica set.
393 ## Example: 'members[0].priority: 3' sets the priority of the first replica set member to 3.
394 ## The index X in 'members[X]' corresponds to the member's position in the replica set.
395 ##    members[0].priority: 3
396 ##    chainingAllowed : false
397 ##    heartbeatTimeoutSecs : 10
398 ##    heartbeatIntervalMillis : 2000
399 ##    electionTimeoutMillis : 10000
400 ##    catchUpTimeoutMillis : 30000
401 ## @param existingConfigmap Name of existing ConfigMap with MongoDB(®) configuration for Primary and Secondary nodes
402 ## NOTE: When it's set the arbiter.configuration parameter is ignored
403 ##
404 existingConfigmap: ""
405 ## @param initdbScripts Dictionary of initdb scripts
406 ## Specify dictionary of scripts to be run at first boot
407 ## Example:
408 ## initdbScripts:
409 ##   my_init_script.sh: |
410 ##      #!/bin/bash
411 ##      echo "Do something."
412 ##
413 initdbScripts: {}
414 ## @param initdbScriptsConfigMap Existing ConfigMap with custom initdb scripts
415 ##
416 initdbScriptsConfigMap: ""
417 ## Command and args for running the container (set to default if not set). Use array form
418 ## @param command Override default container command (useful when using custom images)
419 ## @param args Override default container args (useful when using custom images)
420 ##
421 command: []
422 args: []
423 ## @param extraFlags MongoDB(®) additional command line flags
424 ## Example:
425 ## extraFlags:
426 ##  - "--wiredTigerCacheSizeGB=2"
427 ##
428 extraFlags: []
429 ## @param extraEnvVars Extra environment variables to add to MongoDB(®) pods
430 ## E.g:
431 ## extraEnvVars:
432 ##   - name: FOO
433 ##     value: BAR
434 ##
435 extraEnvVars: []
436 ## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
437 ##
438 extraEnvVarsCM: ""
439 ## @param extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
440 ##
441 extraEnvVarsSecret: ""
442 ## @section MongoDB(®) statefulset parameters
443 ##
444
445 ## @param annotations Additional labels to be added to the MongoDB(®) statefulset. Evaluated as a template
446 ##
447 annotations: {}
448 ## @param labels Annotations to be added to the MongoDB(®) statefulset. Evaluated as a template
449 ##
450 labels: {}
451 ## @param replicaCount Number of MongoDB(®) nodes
452 ## When `mongodb.architecture=replicaset`, the number of replicas is taken in account
453 ## When `mongodb.architecture=standalone`, the number of replicas can only be 0 or 1 (value higher then 1 will not be taken in account)
454 ##
455 replicaCount: 2
456 ## @param updateStrategy.type Strategy to use to replace existing MongoDB(®) pods. When architecture=standalone and useStatefulSet=false,
457 ## this parameter will be applied on a deployment object. In other case it will be applied on a statefulset object
458 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
459 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
460 ## Example:
461 ## updateStrategy:
462 ##  type: RollingUpdate
463 ##  rollingUpdate:
464 ##    maxSurge: 25%
465 ##    maxUnavailable: 25%
466 ##
467 updateStrategy:
468   type: RollingUpdate
469 ## @param podManagementPolicy Pod management policy for MongoDB(®)
470 ## Should be initialized one by one when building the replicaset for the first time
471 ##
472 podManagementPolicy: OrderedReady
473 ## @param podAffinityPreset MongoDB(®) Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
474 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
475 ##
476 podAffinityPreset: ""
477 ## @param podAntiAffinityPreset MongoDB(®) Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
478 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
479 ##
480 podAntiAffinityPreset: soft
481 ## Node affinity preset
482 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
483 ##
484 nodeAffinityPreset:
485   ## @param nodeAffinityPreset.type MongoDB(®) Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
486   ##
487   type: ""
488   ## @param nodeAffinityPreset.key MongoDB(®) Node label key to match Ignored if `affinity` is set.
489   ## E.g.
490   ## key: "kubernetes.io/e2e-az-name"
491   ##
492   key: ""
493   ## @param nodeAffinityPreset.values MongoDB(®) Node label values to match. Ignored if `affinity` is set.
494   ## E.g.
495   ## values:
496   ##   - e2e-az1
497   ##   - e2e-az2
498   ##
499   values: []
500 ## @param affinity MongoDB(®) Affinity for pod assignment
501 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
502 ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
503 ##
504 affinity: {}
505 ## @param nodeSelector MongoDB(®) Node labels for pod assignment
506 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
507 ##
508 nodeSelector: {}
509 ## @param tolerations MongoDB(®) Tolerations for pod assignment
510 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
511 ##
512 tolerations: []
513 ## @param topologySpreadConstraints MongoDB(®) Spread Constraints for Pods
514 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
515 ##
516 topologySpreadConstraints: []
517 ## @param lifecycleHooks LifecycleHook for the MongoDB(®) container(s) to automate configuration before or after startup
518 ##
519 lifecycleHooks: {}
520 ## @param terminationGracePeriodSeconds MongoDB(®) Termination Grace Period
521 ##
522 terminationGracePeriodSeconds: ""
523 ## @param podLabels MongoDB(®) pod labels
524 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
525 ##
526 podLabels: {}
527 ## @param podAnnotations MongoDB(®) Pod annotations
528 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
529 ##
530 podAnnotations: {}
531 ## @param priorityClassName Name of the existing priority class to be used by MongoDB(®) pod(s)
532 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
533 ##
534 priorityClassName: ""
535 ## @param runtimeClassName Name of the runtime class to be used by MongoDB(®) pod(s)
536 ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
537 ##
538 runtimeClassName: ""
539 ## MongoDB(®) pods' Security Context.
540 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
541 ## @param podSecurityContext.enabled Enable MongoDB(®) pod(s)' Security Context
542 ## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
543 ## @param podSecurityContext.supplementalGroups Set filesystem extra groups
544 ## @param podSecurityContext.fsGroup Group ID for the volumes of the MongoDB(®) pod(s)
545 ## @param podSecurityContext.sysctls sysctl settings of the MongoDB(®) pod(s)'
546 ##
547 podSecurityContext:
548   enabled: true
549   fsGroupChangePolicy: Always
550   supplementalGroups: []
551   fsGroup: 1001
552   ## sysctl settings
553   ## Example:
554   ## sysctls:
555   ## - name: net.core.somaxconn
556   ##   value: "10000"
557   ##
558   sysctls: []
559 ## MongoDB(®) containers' Security Context (main and metrics container).
560 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
561 ## @param containerSecurityContext.enabled Enabled containers' Security Context
562 ## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
563 ## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
564 ## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
565 ## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
566 ## @param containerSecurityContext.privileged Set container's Security Context privileged
567 ## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
568 ## @param containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
569 ## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
570 ## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
571 ##
572 containerSecurityContext:
573   enabled: true
574   seLinuxOptions: null
575   runAsUser: 1001
576   runAsGroup: 0
577   runAsNonRoot: true
578   privileged: false
579   readOnlyRootFilesystem: false
580   allowPrivilegeEscalation: false
581   capabilities:
582     drop: ["ALL"]
583   seccompProfile:
584     type: "RuntimeDefault"
585 ## MongoDB(®) containers' resource requests and limits.
586 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
587 ## We usually recommend not to specify default resources and to leave this as a conscious
588 ## choice for the user. This also increases chances charts run on environments with little
589 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
590 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
591 ## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
592 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
593 ##
594 resourcesPreset: "none"
595 ## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
596 ## Example:
597 ## resources:
598 ##   requests:
599 ##     cpu: 2
600 ##     memory: 512Mi
601 ##   limits:
602 ##     cpu: 3
603 ##     memory: 1024Mi
604 ##
605 resources: {}
606 ## @param containerPorts.mongodb MongoDB(®) container port
607 ##
608 containerPorts:
609   mongodb: 27017
610 ## MongoDB(®) pods' liveness probe. Evaluated as a template.
611 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
612 ## @param livenessProbe.enabled Enable livenessProbe
613 ## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
614 ## @param livenessProbe.periodSeconds Period seconds for livenessProbe
615 ## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
616 ## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
617 ## @param livenessProbe.successThreshold Success threshold for livenessProbe
618 ##
619 livenessProbe:
620   enabled: true
621   initialDelaySeconds: 30
622   periodSeconds: 20
623   timeoutSeconds: 10
624   failureThreshold: 6
625   successThreshold: 1
626 ## MongoDB(®) pods' readiness probe. Evaluated as a template.
627 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
628 ## @param readinessProbe.enabled Enable readinessProbe
629 ## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
630 ## @param readinessProbe.periodSeconds Period seconds for readinessProbe
631 ## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
632 ## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
633 ## @param readinessProbe.successThreshold Success threshold for readinessProbe
634 ##
635 readinessProbe:
636   enabled: true
637   initialDelaySeconds: 5
638   periodSeconds: 10
639   timeoutSeconds: 5
640   failureThreshold: 6
641   successThreshold: 1
642 ## Slow starting containers can be protected through startup probes
643 ## Startup probes are available in Kubernetes version 1.16 and above
644 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
645 ## @param startupProbe.enabled Enable startupProbe
646 ## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
647 ## @param startupProbe.periodSeconds Period seconds for startupProbe
648 ## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
649 ## @param startupProbe.failureThreshold Failure threshold for startupProbe
650 ## @param startupProbe.successThreshold Success threshold for startupProbe
651 ##
652 startupProbe:
653   enabled: false
654   initialDelaySeconds: 5
655   periodSeconds: 20
656   timeoutSeconds: 10
657   successThreshold: 1
658   failureThreshold: 30
659 ## @param customLivenessProbe Override default liveness probe for MongoDB(®) containers
660 ## Ignored when livenessProbe.enabled=true
661 ##
662 customLivenessProbe: {}
663 ## @param customReadinessProbe Override default readiness probe for MongoDB(®) containers
664 ## Ignored when readinessProbe.enabled=true
665 ##
666 customReadinessProbe: {}
667 ## @param customStartupProbe Override default startup probe for MongoDB(®) containers
668 ## Ignored when startupProbe.enabled=true
669 ##
670 customStartupProbe: {}
671 ## @param initContainers Add additional init containers for the hidden node pod(s)
672 ## Example:
673 ## initContainers:
674 ##   - name: your-image-name
675 ##     image: your-image
676 ##     imagePullPolicy: Always
677 ##     ports:
678 ##       - name: portname
679 ##         containerPort: 1234
680 ##
681 initContainers: []
682 ## @param sidecars Add additional sidecar containers for the MongoDB(®) pod(s)
683 ## Example:
684 ## sidecars:
685 ##   - name: your-image-name
686 ##     image: your-image
687 ##     imagePullPolicy: Always
688 ##     ports:
689 ##       - name: portname
690 ##         containerPort: 1234
691 ## This is an optional 'mongo-labeler' sidecar container that tracks replica-set for the primary mongodb pod
692 ## and labels it dynamically with ' primary: "true" ' in order for an extra-deployed service to always expose
693 ## and attach to the primary pod, this needs to be uncommented along with the suggested 'extraDeploy' example
694 ## and the suggested rbac example for the pod to be allowed adding labels to mongo replica pods
695 ## search 'mongo-labeler' through this file to find the sections that needs to be uncommented to make it work
696 ##
697 ## - name: mongo-labeler
698 ##   image: korenlev/k8s-mongo-labeler-sidecar
699 ##   imagePullPolicy: Always
700 ##   env:
701 ##     - name: LABEL_SELECTOR
702 ##       value: "app.kubernetes.io/component=mongodb,app.kubernetes.io/instance=mongodb,app.kubernetes.io/name=mongodb"
703 ##     - name: NAMESPACE
704 ##       value: "the-mongodb-namespace"
705 ##     - name: DEBUG
706 ##       value: "true"
707 ##
708 sidecars: []
709 ## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MongoDB(®) container(s)
710 ## Examples:
711 ## extraVolumeMounts:
712 ##   - name: extras
713 ##     mountPath: /usr/share/extras
714 ##     readOnly: true
715 ##
716 extraVolumeMounts: []
717 ## @param extraVolumes Optionally specify extra list of additional volumes to the MongoDB(®) statefulset
718 ## extraVolumes:
719 ##   - name: extras
720 ##     emptyDir: {}
721 ##
722 extraVolumes: []
723 ## MongoDB(®) Pod Disruption Budget configuration
724 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
725 ##
726 pdb:
727   ## @param pdb.create Enable/disable a Pod Disruption Budget creation for MongoDB(®) pod(s)
728   ##
729   create: false
730   ## @param pdb.minAvailable Minimum number/percentage of MongoDB(®) pods that must still be available after the eviction
731   ##
732   minAvailable: 1
733   ## @param pdb.maxUnavailable Maximum number/percentage of MongoDB(®) pods that may be made unavailable after the eviction
734   ##
735   maxUnavailable: ""
736 ## @section Traffic exposure parameters
737 ##
738
739 ## Service parameters
740 ##
741 service:
742   ## @param service.nameOverride MongoDB(®) service name
743   ##
744   nameOverride: ""
745   ## @param service.type Kubernetes Service type (only for standalone architecture)
746   ##
747   type: ClusterIP
748   ## @param service.portName MongoDB(®) service port name (only for standalone architecture)
749   ##
750   portName: mongodb
751   ## @param service.ports.mongodb MongoDB(®) service port.
752   ##
753   ports:
754     mongodb: 27017
755   ## @param service.nodePorts.mongodb Port to bind to for NodePort and LoadBalancer service types (only for standalone architecture)
756   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
757   ##
758   nodePorts:
759     mongodb: ""
760   ## @param service.clusterIP MongoDB(®) service cluster IP (only for standalone architecture)
761   ## e.g:
762   ## clusterIP: None
763   ##
764   clusterIP: ""
765   ## @param service.externalIPs Specify the externalIP value ClusterIP service type (only for standalone architecture)
766   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
767   ##
768   externalIPs: []
769   ## @param service.loadBalancerIP loadBalancerIP for MongoDB(®) Service (only for standalone architecture)
770   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
771   ##
772   loadBalancerIP: ""
773   ## @param service.loadBalancerClass loadBalancerClass for MongoDB(®) Service (only for standalone architecture)
774   # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
775   loadBalancerClass: ""
776   ## @param service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer (only for standalone architecture)
777   ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
778   ##
779   loadBalancerSourceRanges: []
780   ## @param service.allocateLoadBalancerNodePorts Wheter to allocate node ports when service type is LoadBalancer
781   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
782   ##
783   allocateLoadBalancerNodePorts: true
784   ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
785   ##
786   extraPorts: []
787   ## @param service.annotations Provide any additional annotations that may be required
788   ##
789   annotations: {}
790   ## @param service.externalTrafficPolicy service external traffic policy (only for standalone architecture)
791   ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
792   ##
793   externalTrafficPolicy: Local
794   ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
795   ## Values: ClientIP or None
796   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
797   ##
798   sessionAffinity: None
799   ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
800   ## sessionAffinityConfig:
801   ##   clientIP:
802   ##     timeoutSeconds: 300
803   ##
804   sessionAffinityConfig: {}
805   ## Headless service properties
806   ##
807   headless:
808     ## @param service.headless.annotations Annotations for the headless service.
809     ##
810     annotations: {}
811 ## External Access to MongoDB(®) nodes configuration
812 ##
813 externalAccess:
814   ## @param externalAccess.enabled Enable Kubernetes external cluster access to MongoDB(®) nodes (only for replicaset architecture)
815   ##
816   enabled: false
817   ## External IPs auto-discovery configuration
818   ## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
819   ## Note: RBAC might be required
820   ##
821   autoDiscovery:
822     ## @param externalAccess.autoDiscovery.enabled Enable using an init container to auto-detect external IPs by querying the K8s API
823     ##
824     enabled: false
825     ## Bitnami Kubectl image
826     ## ref: https://hub.docker.com/r/bitnami/kubectl/tags/
827     ## @param externalAccess.autoDiscovery.image.registry [default: REGISTRY_NAME] Init container auto-discovery image registry
828     ## @param externalAccess.autoDiscovery.image.repository [default: REPOSITORY_NAME/kubectl] Init container auto-discovery image repository
829     ## @skip externalAccess.autoDiscovery.image.tag Init container auto-discovery image tag (immutable tags are recommended)
830     ## @param externalAccess.autoDiscovery.image.digest Init container auto-discovery image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
831     ## @param externalAccess.autoDiscovery.image.pullPolicy Init container auto-discovery image pull policy
832     ## @param externalAccess.autoDiscovery.image.pullSecrets Init container auto-discovery image pull secrets
833     ##
834     image:
835       registry: docker.io
836       repository: bitnami/kubectl
837       tag: 1.29.2-debian-12-r1
838       digest: ""
839       ## Specify a imagePullPolicy
840       ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
841       ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
842       ##
843       pullPolicy: IfNotPresent
844       ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
845       ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
846       ## Example:
847       ## pullSecrets:
848       ##   - myRegistryKeySecretName
849       ##
850       pullSecrets: []
851     ## Init Container resource requests and limits
852     ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
853     ## We usually recommend not to specify default resources and to leave this as a conscious
854     ## choice for the user. This also increases chances charts run on environments with little
855     ## resources, such as Minikube. If you do want to specify resources, uncomment the following
856     ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
857     ## @param externalAccess.autoDiscovery.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if externalAccess.autoDiscovery.resources is set (externalAccess.autoDiscovery.resources is recommended for production).
858     ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
859     ##
860     resourcesPreset: "none"
861     ## @param externalAccess.autoDiscovery.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
862     ## Example:
863     ## resources:
864     ##   requests:
865     ##     cpu: 2
866     ##     memory: 512Mi
867     ##   limits:
868     ##     cpu: 3
869     ##     memory: 1024Mi
870     ##
871     resources: {}
872   ## Parameters to configure a set of Pods that connect to an existing MongoDB(®) deployment that lies outside of Kubernetes.
873   ## @param externalAccess.externalMaster.enabled Use external master for bootstrapping
874   ## @param externalAccess.externalMaster.host External master host to bootstrap from
875   ## @param externalAccess.externalMaster.port Port for MongoDB(®) service external master host
876   ##
877   externalMaster:
878     enabled: false
879     host: ""
880     port: 27017
881   ## Parameters to configure K8s service(s) used to externally access MongoDB(®)
882   ## A new service per broker will be created
883   ##
884   service:
885     ## @param externalAccess.service.type Kubernetes Service type for external access. Allowed values: NodePort, LoadBalancer or ClusterIP
886     ##
887     type: LoadBalancer
888     ## @param externalAccess.service.portName MongoDB(®) port name used for external access when service type is LoadBalancer
889     ##
890     portName: "mongodb"
891     ## @param externalAccess.service.ports.mongodb MongoDB(®) port used for external access when service type is LoadBalancer
892     ##
893     ports:
894       mongodb: 27017
895     ## @param externalAccess.service.loadBalancerIPs Array of load balancer IPs for MongoDB(®) nodes
896     ## Example:
897     ## loadBalancerIPs:
898     ##   - X.X.X.X
899     ##   - Y.Y.Y.Y
900     ##
901     loadBalancerIPs: []
902     ## @param externalAccess.service.loadBalancerClass loadBalancerClass when service type is LoadBalancer
903     # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
904     loadBalancerClass: ""
905     ## @param externalAccess.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
906     ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
907     ## Example:
908     ## loadBalancerSourceRanges:
909     ## - 10.10.10.0/24
910     ##
911     loadBalancerSourceRanges: []
912     ## @param externalAccess.service.allocateLoadBalancerNodePorts Wheter to allocate node ports when service type is LoadBalancer
913     ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
914     ##
915     allocateLoadBalancerNodePorts: true
916     ## @param externalAccess.service.externalTrafficPolicy MongoDB(®) service external traffic policy
917     ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
918     ##
919     externalTrafficPolicy: Local
920     ## @param externalAccess.service.nodePorts Array of node ports used to configure MongoDB(®) advertised hostname when service type is NodePort
921     ## Example:
922     ## nodePorts:
923     ##   - 30001
924     ##   - 30002
925     ##
926     nodePorts: []
927     ## @param externalAccess.service.domain Domain or external IP used to configure MongoDB(®) advertised hostname when service type is NodePort
928     ## If not specified, the container will try to get the kubernetes node external IP
929     ## e.g:
930     ## domain: mydomain.com
931     ##
932     domain: ""
933     ## @param externalAccess.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
934     ##
935     extraPorts: []
936     ## @param externalAccess.service.annotations Service annotations for external access
937     ##
938     annotations: {}
939     ## @param externalAccess.service.sessionAffinity Control where client requests go, to the same pod or round-robin
940     ## Values: ClientIP or None
941     ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
942     ##
943     sessionAffinity: None
944     ## @param externalAccess.service.sessionAffinityConfig Additional settings for the sessionAffinity
945     ## sessionAffinityConfig:
946     ##   clientIP:
947     ##     timeoutSeconds: 300
948     ##
949     sessionAffinityConfig: {}
950   ## External Access to MongoDB(®) Hidden nodes configuration
951   ##
952   hidden:
953     ## @param externalAccess.hidden.enabled Enable Kubernetes external cluster access to MongoDB(®) hidden nodes
954     ##
955     enabled: false
956     ## Parameters to configure K8s service(s) used to externally access MongoDB(®)
957     ## A new service per broker will be created
958     ##
959     service:
960       ## @param externalAccess.hidden.service.type Kubernetes Service type for external access. Allowed values: NodePort or LoadBalancer
961       ##
962       type: LoadBalancer
963       ## @param externalAccess.hidden.service.portName MongoDB(®) port name used for external access when service type is LoadBalancer
964       ##
965       portName: "mongodb"
966       ## @param externalAccess.hidden.service.ports.mongodb MongoDB(®) port used for external access when service type is LoadBalancer
967       ##
968       ports:
969         mongodb: 27017
970       ## @param externalAccess.hidden.service.loadBalancerIPs Array of load balancer IPs for MongoDB(®) nodes
971       ## Example:
972       ## loadBalancerIPs:
973       ##   - X.X.X.X
974       ##   - Y.Y.Y.Y
975       ##
976       loadBalancerIPs: []
977       ## @param externalAccess.hidden.service.loadBalancerClass loadBalancerClass when service type is LoadBalancer
978       # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
979       loadBalancerClass: ""
980       ## @param externalAccess.hidden.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
981       ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
982       ## Example:
983       ## loadBalancerSourceRanges:
984       ## - 10.10.10.0/24
985       ##
986       loadBalancerSourceRanges: []
987       ## @param externalAccess.hidden.service.allocateLoadBalancerNodePorts Wheter to allocate node ports when service type is LoadBalancer
988       ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
989       ##
990       allocateLoadBalancerNodePorts: true
991       ## @param externalAccess.hidden.service.externalTrafficPolicy MongoDB(®) service external traffic policy
992       ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
993       ##
994       externalTrafficPolicy: Local
995       ## @param externalAccess.hidden.service.nodePorts Array of node ports used to configure MongoDB(®) advertised hostname when service type is NodePort. Length must be the same as replicaCount
996       ## Example:
997       ## nodePorts:
998       ##   - 30001
999       ##   - 30002
1000       ##
1001       nodePorts: []
1002       ## @param externalAccess.hidden.service.domain Domain or external IP used to configure MongoDB(®) advertised hostname when service type is NodePort
1003       ## If not specified, the container will try to get the kubernetes node external IP
1004       ## e.g:
1005       ## domain: mydomain.com
1006       ##
1007       domain: ""
1008       ## @param externalAccess.hidden.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1009       ##
1010       extraPorts: []
1011       ## @param externalAccess.hidden.service.annotations Service annotations for external access
1012       ##
1013       annotations: {}
1014       ## @param externalAccess.hidden.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1015       ## Values: ClientIP or None
1016       ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1017       ##
1018       sessionAffinity: None
1019       ## @param externalAccess.hidden.service.sessionAffinityConfig Additional settings for the sessionAffinity
1020       ## sessionAffinityConfig:
1021       ##   clientIP:
1022       ##     timeoutSeconds: 300
1023       ##
1024       sessionAffinityConfig: {}
1025 ## @section Network policy parameters
1026 ##
1027
1028 ## Network Policies
1029 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1030 ##
1031 networkPolicy:
1032   ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1033   ##
1034   enabled: true
1035   ## @param networkPolicy.allowExternal Don't require server label for connections
1036   ## The Policy model to apply. When set to false, only pods with the correct
1037   ## server label will have network access to the ports server is listening
1038   ## on. When true, server will accept connections from any source
1039   ## (with the correct destination port).
1040   ##
1041   allowExternal: true
1042   ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1043   ##
1044   allowExternalEgress: true
1045   ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolice
1046   ## e.g:
1047   ## extraIngress:
1048   ##   - ports:
1049   ##       - port: 1234
1050   ##     from:
1051   ##       - podSelector:
1052   ##           - matchLabels:
1053   ##               - role: frontend
1054   ##       - podSelector:
1055   ##           - matchExpressions:
1056   ##               - key: role
1057   ##                 operator: In
1058   ##                 values:
1059   ##                   - frontend
1060   extraIngress: []
1061   ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1062   ## e.g:
1063   ## extraEgress:
1064   ##   - ports:
1065   ##       - port: 1234
1066   ##     to:
1067   ##       - podSelector:
1068   ##           - matchLabels:
1069   ##               - role: frontend
1070   ##       - podSelector:
1071   ##           - matchExpressions:
1072   ##               - key: role
1073   ##                 operator: In
1074   ##                 values:
1075   ##                   - frontend
1076   ##
1077   extraEgress: []
1078   ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1079   ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1080   ##
1081   ingressNSMatchLabels: {}
1082   ingressNSPodMatchLabels: {}
1083 persistence:
1084   ## @param persistence.enabled Enable MongoDB(®) data persistence using PVC
1085   ##
1086   enabled: true
1087   ## @param persistence.name Name of the PVC and mounted volume
1088   ##
1089   name: "datadir"
1090   ## @param persistence.medium Provide a medium for `emptyDir` volumes.
1091   ## Requires persistence.enabled: false
1092   ##
1093   medium: ""
1094   ## @param persistence.existingClaim Provide an existing `PersistentVolumeClaim` (only when `architecture=standalone`)
1095   ## Requires persistence.enabled: true
1096   ## If defined, PVC must be created manually before volume will be bound
1097   ## Ignored when mongodb.architecture=replicaset
1098   ##
1099   existingClaim: ""
1100   ## @param persistence.resourcePolicy Setting it to "keep" to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted
1101   ##
1102   resourcePolicy: ""
1103   ## @param persistence.storageClass PVC Storage Class for MongoDB(®) data volume
1104   ## If defined, storageClassName: <storageClass>
1105   ## If set to "-", storageClassName: "", which disables dynamic provisioning
1106   ## If undefined (the default) or set to null, no storageClassName spec is
1107   ## set, choosing the default provisioner.
1108   ##
1109   storageClass: ""
1110   ## @param persistence.accessModes PV Access Mode
1111   ##
1112   accessModes:
1113     - ReadWriteOnce
1114   ## @param persistence.size PVC Storage Request for MongoDB(&reg;) data volume
1115   ##
1116   size: 8Gi
1117   ## @param persistence.annotations PVC annotations
1118   ##
1119   annotations: {}
1120   ## @param persistence.mountPath Path to mount the volume at
1121   ## MongoDB(&reg;) images.
1122   ##
1123   mountPath: /bitnami/mongodb
1124   ## @param persistence.subPath Subdirectory of the volume to mount at
1125   ## and one PV for multiple services.
1126   ##
1127   subPath: ""
1128   ## Fine tuning for volumeClaimTemplates
1129   ##
1130   volumeClaimTemplates:
1131     ## @param persistence.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
1132     ## A label query over volumes to consider for binding (e.g. when using local volumes)
1133     ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
1134     ##
1135     selector: {}
1136     ## @param persistence.volumeClaimTemplates.requests Custom PVC requests attributes
1137     ## Sometime cloud providers use additional requests attributes to provision custom storage instance
1138     ## See https://cloud.ibm.com/docs/containers?topic=containers-file_storage#file_dynamic_statefulset
1139     ##
1140     requests: {}
1141     ## @param persistence.volumeClaimTemplates.dataSource Add dataSource to the VolumeClaimTemplate
1142     ##
1143     dataSource: {}
1144 ## Persistent Volume Claim Retention Policy
1145 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1146 ##
1147 persistentVolumeClaimRetentionPolicy:
1148   ## @param persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for MongoDB(&reg;) Statefulset
1149   ##
1150   enabled: false
1151   ## @param persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1152   ##
1153   whenScaled: Retain
1154   ## @param persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1155   ##
1156   whenDeleted: Retain
1157 ## @section Backup parameters
1158 ## This section implements a trivial logical dump cronjob of the database.
1159 ## This only comes with the consistency guarantees of the dump program.
1160 ## This is not a snapshot based roll forward/backward recovery backup.
1161 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
1162 ##
1163 backup:
1164   ## @param backup.enabled Enable the logical dump of the database "regularly"
1165   ##
1166   enabled: false
1167   ## Fine tuning cronjob's config
1168   ##
1169   cronjob:
1170     ## @param backup.cronjob.schedule Set the cronjob parameter schedule
1171     ##
1172     schedule: "@daily"
1173     ## @param backup.cronjob.concurrencyPolicy Set the cronjob parameter concurrencyPolicy
1174     ##
1175     concurrencyPolicy: Allow
1176     ## @param backup.cronjob.failedJobsHistoryLimit Set the cronjob parameter failedJobsHistoryLimit
1177     ##
1178     failedJobsHistoryLimit: 1
1179     ## @param backup.cronjob.successfulJobsHistoryLimit Set the cronjob parameter successfulJobsHistoryLimit
1180     ##
1181     successfulJobsHistoryLimit: 3
1182     ## @param backup.cronjob.startingDeadlineSeconds Set the cronjob parameter startingDeadlineSeconds
1183     ##
1184     startingDeadlineSeconds: ""
1185     ## @param backup.cronjob.ttlSecondsAfterFinished Set the cronjob parameter ttlSecondsAfterFinished
1186     ##
1187     ttlSecondsAfterFinished: ""
1188     ## @param backup.cronjob.restartPolicy Set the cronjob parameter restartPolicy
1189     ##
1190     restartPolicy: OnFailure
1191     ## backup container's Security Context
1192     ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1193     ## @param backup.cronjob.containerSecurityContext.enabled Enabled containers' Security Context
1194     ## @param backup.cronjob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1195     ## @param backup.cronjob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1196     ## @param backup.cronjob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1197     ## @param backup.cronjob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1198     ## @param backup.cronjob.containerSecurityContext.privileged Set container's Security Context privileged
1199     ## @param backup.cronjob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1200     ## @param backup.cronjob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1201     ## @param backup.cronjob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1202     ## @param backup.cronjob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1203     ##
1204     containerSecurityContext:
1205       enabled: true
1206       seLinuxOptions: null
1207       runAsUser: 1001
1208       runAsGroup: 0
1209       runAsNonRoot: true
1210       privileged: false
1211       readOnlyRootFilesystem: false
1212       allowPrivilegeEscalation: false
1213       capabilities:
1214         drop: ["ALL"]
1215       seccompProfile:
1216         type: "RuntimeDefault"
1217     ## @param backup.cronjob.command Set backup container's command to run
1218     ##
1219     command: []
1220     ## @param backup.cronjob.labels Set the cronjob labels
1221     ##
1222     labels: {}
1223     ## @param backup.cronjob.annotations Set the cronjob annotations
1224     ##
1225     annotations: {}
1226     ## Backup container's
1227     ##
1228     storage:
1229       ## @param backup.cronjob.storage.existingClaim Provide an existing `PersistentVolumeClaim` (only when `architecture=standalone`)
1230       ## If defined, PVC must be created manually before volume will be bound
1231       ##
1232       existingClaim: ""
1233       ## @param backup.cronjob.storage.resourcePolicy Setting it to "keep" to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted
1234       ##
1235       resourcePolicy: ""
1236       ## @param backup.cronjob.storage.storageClass PVC Storage Class for the backup data volume
1237       ## If defined, storageClassName: <storageClass>
1238       ## If set to "-", storageClassName: "", which disables dynamic provisioning
1239       ## If undefined (the default) or set to null, no storageClassName spec is
1240       ## set, choosing the default provisioner.
1241       ##
1242       storageClass: ""
1243       ## @param backup.cronjob.storage.accessModes PV Access Mode
1244       ##
1245       accessModes:
1246         - ReadWriteOnce
1247       ## @param backup.cronjob.storage.size PVC Storage Request for the backup data volume
1248       ##
1249       size: 8Gi
1250       ## @param backup.cronjob.storage.annotations PVC annotations
1251       ##
1252       annotations: {}
1253       ## @param backup.cronjob.storage.mountPath Path to mount the volume at
1254       ##
1255       mountPath: /backup/mongodb
1256       ## @param backup.cronjob.storage.subPath Subdirectory of the volume to mount at
1257       ## and one PV for multiple services.
1258       ##
1259       subPath: ""
1260       ## Fine tuning for volumeClaimTemplates
1261       ##
1262       volumeClaimTemplates:
1263         ## @param backup.cronjob.storage.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
1264         ## A label query over volumes to consider for binding (e.g. when using local volumes)
1265         ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
1266         ##
1267         selector: {}
1268 ## @section RBAC parameters
1269 ##
1270
1271 ## ServiceAccount
1272 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1273 ##
1274 serviceAccount:
1275   ## @param serviceAccount.create Enable creation of ServiceAccount for MongoDB(&reg;) pods
1276   ##
1277   create: true
1278   ## @param serviceAccount.name Name of the created serviceAccount
1279   ## If not set and create is true, a name is generated using the mongodb.fullname template
1280   ##
1281   name: ""
1282   ## @param serviceAccount.annotations Additional Service Account annotations
1283   ##
1284   annotations: {}
1285   ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1286   ## Can be set to false if pods using this serviceAccount do not need to use K8s API
1287   ##
1288   automountServiceAccountToken: false
1289 ## Role Based Access
1290 ## ref: https://kubernetes.io/docs/admin/authorization/rbac/
1291 ##
1292 rbac:
1293   ## @param rbac.create Whether to create & use RBAC resources or not
1294   ## binding MongoDB(&reg;) ServiceAccount to a role
1295   ## that allows MongoDB(&reg;) pods querying the K8s API
1296   ## this needs to be set to 'true' to enable the mongo-labeler sidecar primary mongodb discovery
1297   ##
1298   create: false
1299   ## @param rbac.rules Custom rules to create following the role specification
1300   ## The example below needs to be uncommented to use the 'mongo-labeler' sidecar for dynamic discovery of the primary mongodb pod:
1301   ## rules:
1302   ##   - apiGroups:
1303   ##       - ""
1304   ##     resources:
1305   ##       - pods
1306   ##     verbs:
1307   ##       - get
1308   ##       - list
1309   ##       - watch
1310   ##       - update
1311   ##
1312   rules: []
1313 ## PodSecurityPolicy configuration
1314 ## Be sure to also set rbac.create to true, otherwise Role and RoleBinding won't be created.
1315 ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1316 ##
1317 podSecurityPolicy:
1318   ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1319   ##
1320   create: false
1321   ## @param podSecurityPolicy.allowPrivilegeEscalation Enable privilege escalation
1322   ## Either use predefined policy with some adjustments or use `podSecurityPolicy.spec`
1323   ##
1324   allowPrivilegeEscalation: false
1325   ## @param podSecurityPolicy.privileged Allow privileged
1326   ##
1327   privileged: false
1328   ## @param podSecurityPolicy.spec Specify the full spec to use for Pod Security Policy
1329   ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1330   ## Defining a spec ignores the above values.
1331   ##
1332   spec: {}
1333   ## Example:
1334   ##    allowPrivilegeEscalation: false
1335   ##    fsGroup:
1336   ##      rule: 'MustRunAs'
1337   ##      ranges:
1338   ##        - min: 1001
1339   ##          max: 1001
1340   ##    hostIPC: false
1341   ##    hostNetwork: false
1342   ##    hostPID: false
1343   ##    privileged: false
1344   ##    readOnlyRootFilesystem: false
1345   ##    requiredDropCapabilities:
1346   ##      - ALL
1347   ##    runAsUser:
1348   ##      rule: 'MustRunAs'
1349   ##      ranges:
1350   ##        - min: 1001
1351   ##          max: 1001
1352   ##    seLinux:
1353   ##      rule: 'RunAsAny'
1354   ##    supplementalGroups:
1355   ##      rule: 'MustRunAs'
1356   ##      ranges:
1357   ##        - min: 1001
1358   ##          max: 1001
1359   ##    volumes:
1360   ##      - 'configMap'
1361   ##      - 'secret'
1362   ##      - 'emptyDir'
1363   ##      - 'persistentVolumeClaim'
1364   ##
1365 ## @section Volume Permissions parameters
1366 ##
1367 ## Init Container parameters
1368 ## Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each component
1369 ## values from the securityContext section of the component
1370 ##
1371 volumePermissions:
1372   ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
1373   ##
1374   enabled: false
1375   ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
1376   ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image repository
1377   ## @skip volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1378   ## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1379   ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1380   ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array
1381   ##
1382   image:
1383     registry: docker.io
1384     repository: bitnami/os-shell
1385     tag: 12-debian-12-r15
1386     digest: ""
1387     ## Specify a imagePullPolicy
1388     ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
1389     ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1390     ##
1391     pullPolicy: IfNotPresent
1392     ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
1393     ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1394     ## Example:
1395     ## pullSecrets:
1396     ##   - myRegistryKeySecretName
1397     ##
1398     pullSecrets: []
1399   ## Init Container resource requests and limits
1400   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1401   ## We usually recommend not to specify default resources and to leave this as a conscious
1402   ## choice for the user. This also increases chances charts run on environments with little
1403   ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1404   ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1405   ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
1406   ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1407   ##
1408   resourcesPreset: "none"
1409   ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1410   ## Example:
1411   ## resources:
1412   ##   requests:
1413   ##     cpu: 2
1414   ##     memory: 512Mi
1415   ##   limits:
1416   ##     cpu: 3
1417   ##     memory: 1024Mi
1418   ##
1419   resources: {}
1420   ## Init container Security Context
1421   ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1422   ## and not the below volumePermissions.securityContext.runAsUser
1423   ## When runAsUser is set to special value "auto", init container will try to chwon the
1424   ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
1425   ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
1426   ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
1427   ## podSecurityContext.enabled=false,containerSecurityContext.enabled=false and shmVolume.chmod.enabled=false
1428   ## @param volumePermissions.securityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1429   ## @param volumePermissions.securityContext.runAsUser User ID for the volumePermissions container
1430   ##
1431   securityContext:
1432     seLinuxOptions: null
1433     runAsUser: 0
1434 ## @section Arbiter parameters
1435 ##
1436 arbiter:
1437   ## @param arbiter.enabled Enable deploying the arbiter
1438   ##   https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
1439   ##
1440   enabled: true
1441   ## @param arbiter.automountServiceAccountToken Mount Service Account token in pod
1442   ##
1443   automountServiceAccountToken: false
1444   ## @param arbiter.hostAliases Add deployment host aliases
1445   ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1446   ##
1447   hostAliases: []
1448   ## @param arbiter.configuration Arbiter configuration file to be used
1449   ##   http://docs.mongodb.org/manual/reference/configuration-options/
1450   ##
1451   configuration: ""
1452   ## @param arbiter.existingConfigmap Name of existing ConfigMap with Arbiter configuration
1453   ## NOTE: When it's set the arbiter.configuration parameter is ignored
1454   ##
1455   existingConfigmap: ""
1456   ## Command and args for running the container (set to default if not set). Use array form
1457   ## @param arbiter.command Override default container command (useful when using custom images)
1458   ## @param arbiter.args Override default container args (useful when using custom images)
1459   ##
1460   command: []
1461   args: []
1462   ## @param arbiter.extraFlags Arbiter additional command line flags
1463   ## Example:
1464   ## extraFlags:
1465   ##  - "--wiredTigerCacheSizeGB=2"
1466   ##
1467   extraFlags: []
1468   ## @param arbiter.extraEnvVars Extra environment variables to add to Arbiter pods
1469   ## E.g:
1470   ## extraEnvVars:
1471   ##   - name: FOO
1472   ##     value: BAR
1473   ##
1474   extraEnvVars: []
1475   ## @param arbiter.extraEnvVarsCM Name of existing ConfigMap containing extra env vars
1476   ##
1477   extraEnvVarsCM: ""
1478   ## @param arbiter.extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
1479   ##
1480   extraEnvVarsSecret: ""
1481   ## @param arbiter.annotations Additional labels to be added to the Arbiter statefulset
1482   ##
1483   annotations: {}
1484   ## @param arbiter.labels Annotations to be added to the Arbiter statefulset
1485   ##
1486   labels: {}
1487   ## @param arbiter.topologySpreadConstraints MongoDB(&reg;) Spread Constraints for arbiter Pods
1488   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
1489   ##
1490   topologySpreadConstraints: []
1491   ## @param arbiter.lifecycleHooks LifecycleHook for the Arbiter container to automate configuration before or after startup
1492   ##
1493   lifecycleHooks: {}
1494   ## @param arbiter.terminationGracePeriodSeconds Arbiter Termination Grace Period
1495   ##
1496   terminationGracePeriodSeconds: ""
1497   ## @param arbiter.updateStrategy.type Strategy that will be employed to update Pods in the StatefulSet
1498   ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1499   ## updateStrategy:
1500   ##  type: RollingUpdate
1501   ##  rollingUpdate:
1502   ##    maxSurge: 25%
1503   ##    maxUnavailable: 25%
1504   ##
1505   updateStrategy:
1506     type: RollingUpdate
1507   ## @param arbiter.podManagementPolicy Pod management policy for MongoDB(&reg;)
1508   ## Should be initialized one by one when building the replicaset for the first time
1509   ##
1510   podManagementPolicy: OrderedReady
1511   ## @param arbiter.schedulerName Name of the scheduler (other than default) to dispatch pods
1512   ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1513   ##
1514   schedulerName: ""
1515   ## @param arbiter.podAffinityPreset Arbiter Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1516   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1517   ##
1518   podAffinityPreset: ""
1519   ## @param arbiter.podAntiAffinityPreset Arbiter Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1520   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1521   ##
1522   podAntiAffinityPreset: soft
1523   ## Node affinity preset
1524   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1525   ##
1526   nodeAffinityPreset:
1527     ## @param arbiter.nodeAffinityPreset.type Arbiter Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1528     ##
1529     type: ""
1530     ## @param arbiter.nodeAffinityPreset.key Arbiter Node label key to match Ignored if `affinity` is set.
1531     ## E.g.
1532     ## key: "kubernetes.io/e2e-az-name"
1533     ##
1534     key: ""
1535     ## @param arbiter.nodeAffinityPreset.values Arbiter Node label values to match. Ignored if `affinity` is set.
1536     ## E.g.
1537     ## values:
1538     ##   - e2e-az1
1539     ##   - e2e-az2
1540     ##
1541     values: []
1542   ## @param arbiter.affinity Arbiter Affinity for pod assignment
1543   ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1544   ## Note: arbiter.podAffinityPreset, arbiter.podAntiAffinityPreset, and arbiter.nodeAffinityPreset will be ignored when it's set
1545   ##
1546   affinity: {}
1547   ## @param arbiter.nodeSelector Arbiter Node labels for pod assignment
1548   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1549   ##
1550   nodeSelector: {}
1551   ## @param arbiter.tolerations Arbiter Tolerations for pod assignment
1552   ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1553   ##
1554   tolerations: []
1555   ## @param arbiter.podLabels Arbiter pod labels
1556   ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1557   ##
1558   podLabels: {}
1559   ## @param arbiter.podAnnotations Arbiter Pod annotations
1560   ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1561   ##
1562   podAnnotations: {}
1563   ## @param arbiter.priorityClassName Name of the existing priority class to be used by Arbiter pod(s)
1564   ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1565   ##
1566   priorityClassName: ""
1567   ## @param arbiter.runtimeClassName Name of the runtime class to be used by Arbiter pod(s)
1568   ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
1569   ##
1570   runtimeClassName: ""
1571   ## MongoDB(&reg;) Arbiter pods' Security Context.
1572   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1573   ## @param arbiter.podSecurityContext.enabled Enable Arbiter pod(s)' Security Context
1574   ## @param arbiter.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1575   ## @param arbiter.podSecurityContext.supplementalGroups Set filesystem extra groups
1576   ## @param arbiter.podSecurityContext.fsGroup Group ID for the volumes of the Arbiter pod(s)
1577   ## @param arbiter.podSecurityContext.sysctls sysctl settings of the Arbiter pod(s)'
1578   ##
1579   podSecurityContext:
1580     enabled: true
1581     fsGroupChangePolicy: Always
1582     supplementalGroups: []
1583     fsGroup: 1001
1584     ## sysctl settings
1585     ## Example:
1586     ## sysctls:
1587     ## - name: net.core.somaxconn
1588     ##   value: "10000"
1589     ##
1590     sysctls: []
1591   ## MongoDB(&reg;) Arbiter containers' Security Context (only main container).
1592   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1593   ## @param arbiter.containerSecurityContext.enabled Enabled containers' Security Context
1594   ## @param arbiter.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1595   ## @param arbiter.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1596   ## @param arbiter.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1597   ## @param arbiter.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1598   ## @param arbiter.containerSecurityContext.privileged Set container's Security Context privileged
1599   ## @param arbiter.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1600   ## @param arbiter.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1601   ## @param arbiter.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1602   ## @param arbiter.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1603   ##
1604   containerSecurityContext:
1605     enabled: true
1606     seLinuxOptions: null
1607     runAsUser: 1001
1608     runAsGroup: 0
1609     runAsNonRoot: true
1610     privileged: false
1611     readOnlyRootFilesystem: false
1612     allowPrivilegeEscalation: false
1613     capabilities:
1614       drop: ["ALL"]
1615     seccompProfile:
1616       type: "RuntimeDefault"
1617   ## MongoDB(&reg;) Arbiter containers' resource requests and limits.
1618   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1619   ## We usually recommend not to specify default resources and to leave this as a conscious
1620   ## choice for the user. This also increases chances charts run on environments with little
1621   ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1622   ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1623   ## @param arbiter.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if arbiter.resources is set (arbiter.resources is recommended for production).
1624   ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1625   ##
1626   resourcesPreset: "none"
1627   ## @param arbiter.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1628   ## Example:
1629   ## resources:
1630   ##   requests:
1631   ##     cpu: 2
1632   ##     memory: 512Mi
1633   ##   limits:
1634   ##     cpu: 3
1635   ##     memory: 1024Mi
1636   ##
1637   resources: {}
1638   ## @param arbiter.containerPorts.mongodb MongoDB(&reg;) arbiter container port
1639   ##
1640   containerPorts:
1641     mongodb: 27017
1642   ## MongoDB(&reg;) Arbiter pods' liveness probe. Evaluated as a template.
1643   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1644   ## @param arbiter.livenessProbe.enabled Enable livenessProbe
1645   ## @param arbiter.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1646   ## @param arbiter.livenessProbe.periodSeconds Period seconds for livenessProbe
1647   ## @param arbiter.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1648   ## @param arbiter.livenessProbe.failureThreshold Failure threshold for livenessProbe
1649   ## @param arbiter.livenessProbe.successThreshold Success threshold for livenessProbe
1650   ##
1651   livenessProbe:
1652     enabled: true
1653     initialDelaySeconds: 30
1654     periodSeconds: 20
1655     timeoutSeconds: 10
1656     failureThreshold: 6
1657     successThreshold: 1
1658   ## MongoDB(&reg;) Arbiter pods' readiness probe. Evaluated as a template.
1659   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1660   ## @param arbiter.readinessProbe.enabled Enable readinessProbe
1661   ## @param arbiter.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1662   ## @param arbiter.readinessProbe.periodSeconds Period seconds for readinessProbe
1663   ## @param arbiter.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1664   ## @param arbiter.readinessProbe.failureThreshold Failure threshold for readinessProbe
1665   ## @param arbiter.readinessProbe.successThreshold Success threshold for readinessProbe
1666   ##
1667   readinessProbe:
1668     enabled: true
1669     initialDelaySeconds: 5
1670     periodSeconds: 20
1671     timeoutSeconds: 10
1672     failureThreshold: 6
1673     successThreshold: 1
1674   ## MongoDB(&reg;) Arbiter pods' startup probe. Evaluated as a template.
1675   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1676   ## @param arbiter.startupProbe.enabled Enable startupProbe
1677   ## @param arbiter.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1678   ## @param arbiter.startupProbe.periodSeconds Period seconds for startupProbe
1679   ## @param arbiter.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1680   ## @param arbiter.startupProbe.failureThreshold Failure threshold for startupProbe
1681   ## @param arbiter.startupProbe.successThreshold Success threshold for startupProbe
1682   ##
1683   startupProbe:
1684     enabled: false
1685     initialDelaySeconds: 5
1686     periodSeconds: 10
1687     timeoutSeconds: 5
1688     successThreshold: 1
1689     failureThreshold: 30
1690   ## @param arbiter.customLivenessProbe Override default liveness probe for Arbiter containers
1691   ## Ignored when arbiter.livenessProbe.enabled=true
1692   ##
1693   customLivenessProbe: {}
1694   ## @param arbiter.customReadinessProbe Override default readiness probe for Arbiter containers
1695   ## Ignored when arbiter.readinessProbe.enabled=true
1696   ##
1697   customReadinessProbe: {}
1698   ## @param arbiter.customStartupProbe Override default startup probe for Arbiter containers
1699   ## Ignored when arbiter.startupProbe.enabled=true
1700   ##
1701   customStartupProbe: {}
1702   ## @param arbiter.initContainers Add additional init containers for the Arbiter pod(s)
1703   ## Example:
1704   ## initContainers:
1705   ##   - name: your-image-name
1706   ##     image: your-image
1707   ##     imagePullPolicy: Always
1708   ##     ports:
1709   ##       - name: portname
1710   ##         containerPort: 1234
1711   ##
1712   initContainers: []
1713   ## @param arbiter.sidecars Add additional sidecar containers for the Arbiter pod(s)
1714   ## Example:
1715   ## sidecars:
1716   ##   - name: your-image-name
1717   ##     image: your-image
1718   ##     imagePullPolicy: Always
1719   ##     ports:
1720   ##       - name: portname
1721   ##         containerPort: 1234
1722   ##
1723   sidecars: []
1724   ## @param arbiter.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Arbiter container(s)
1725   ## Examples:
1726   ## extraVolumeMounts:
1727   ##   - name: extras
1728   ##     mountPath: /usr/share/extras
1729   ##     readOnly: true
1730   ##
1731   extraVolumeMounts: []
1732   ## @param arbiter.extraVolumes Optionally specify extra list of additional volumes to the Arbiter statefulset
1733   ## extraVolumes:
1734   ##   - name: extras
1735   ##     emptyDir: {}
1736   ##
1737   extraVolumes: []
1738   ## MongoDB(&reg;) Arbiter Pod Disruption Budget configuration
1739   ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1740   ##
1741   pdb:
1742     ## @param arbiter.pdb.create Enable/disable a Pod Disruption Budget creation for Arbiter pod(s)
1743     ##
1744     create: false
1745     ## @param arbiter.pdb.minAvailable Minimum number/percentage of Arbiter pods that should remain scheduled
1746     ##
1747     minAvailable: 1
1748     ## @param arbiter.pdb.maxUnavailable Maximum number/percentage of Arbiter pods that may be made unavailable
1749     ##
1750     maxUnavailable: ""
1751   ## MongoDB(&reg;) Arbiter service parameters
1752   ##
1753   service:
1754     ## @param arbiter.service.nameOverride The arbiter service name
1755     ##
1756     nameOverride: ""
1757     ## @param arbiter.service.ports.mongodb MongoDB(&reg;) service port
1758     ##
1759     ports:
1760       mongodb: 27017
1761     ## @param arbiter.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1762     ##
1763     extraPorts: []
1764     ## @param arbiter.service.annotations Provide any additional annotations that may be required
1765     ##
1766     annotations: {}
1767     ## Headless service properties
1768     ##
1769     headless:
1770       ## @param arbiter.service.headless.annotations Annotations for the headless service.
1771       ##
1772       annotations: {}
1773 ## @section Hidden Node parameters
1774 ##
1775 hidden:
1776   ## @param hidden.enabled Enable deploying the hidden nodes
1777   ##   https://docs.mongodb.com/manual/tutorial/configure-a-hidden-replica-set-member/
1778   ##
1779   enabled: false
1780   ## @param hidden.automountServiceAccountToken Mount Service Account token in pod
1781   ##
1782   automountServiceAccountToken: false
1783   ## @param hidden.hostAliases Add deployment host aliases
1784   ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1785   ##
1786   hostAliases: []
1787   ## @param hidden.configuration Hidden node configuration file to be used
1788   ##   http://docs.mongodb.org/manual/reference/configuration-options/
1789   ##
1790   configuration: ""
1791   ## @param hidden.existingConfigmap Name of existing ConfigMap with Hidden node configuration
1792   ## NOTE: When it's set the hidden.configuration parameter is ignored
1793   ##
1794   existingConfigmap: ""
1795   ## Command and args for running the container (set to default if not set). Use array form
1796   ## @param hidden.command Override default container command (useful when using custom images)
1797   ## @param hidden.args Override default container args (useful when using custom images)
1798   ##
1799   command: []
1800   args: []
1801   ## @param hidden.extraFlags Hidden node additional command line flags
1802   ## Example:
1803   ## extraFlags:
1804   ##  - "--wiredTigerCacheSizeGB=2"
1805   ##
1806   extraFlags: []
1807   ## @param hidden.extraEnvVars Extra environment variables to add to Hidden node pods
1808   ## E.g:
1809   ## extraEnvVars:
1810   ##   - name: FOO
1811   ##     value: BAR
1812   ##
1813   extraEnvVars: []
1814   ## @param hidden.extraEnvVarsCM Name of existing ConfigMap containing extra env vars
1815   ##
1816   extraEnvVarsCM: ""
1817   ## @param hidden.extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
1818   ##
1819   extraEnvVarsSecret: ""
1820   ## @param hidden.annotations Additional labels to be added to thehidden node statefulset
1821   ##
1822   annotations: {}
1823   ## @param hidden.labels Annotations to be added to the hidden node statefulset
1824   ##
1825   labels: {}
1826   ## @param hidden.topologySpreadConstraints MongoDB(&reg;) Spread Constraints for hidden Pods
1827   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
1828   ##
1829   topologySpreadConstraints: []
1830   ## @param hidden.lifecycleHooks LifecycleHook for the Hidden container to automate configuration before or after startup
1831   ##
1832   lifecycleHooks: {}
1833   ## @param hidden.replicaCount Number of hidden nodes (only when `architecture=replicaset`)
1834   ## Ignored when mongodb.architecture=standalone
1835   ##
1836   replicaCount: 1
1837   ## @param hidden.terminationGracePeriodSeconds Hidden Termination Grace Period
1838   ##
1839   terminationGracePeriodSeconds: ""
1840   ## @param hidden.updateStrategy.type Strategy that will be employed to update Pods in the StatefulSet
1841   ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1842   ## updateStrategy:
1843   ##  type: RollingUpdate
1844   ##  rollingUpdate:
1845   ##    maxSurge: 25%
1846   ##    maxUnavailable: 25%
1847   ##
1848   updateStrategy:
1849     type: RollingUpdate
1850   ## @param hidden.podManagementPolicy Pod management policy for hidden node
1851   ##
1852   podManagementPolicy: OrderedReady
1853   ## @param hidden.schedulerName Name of the scheduler (other than default) to dispatch pods
1854   ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1855   ##
1856   schedulerName: ""
1857   ## @param hidden.podAffinityPreset Hidden node Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1858   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1859   ##
1860   podAffinityPreset: ""
1861   ## @param hidden.podAntiAffinityPreset Hidden node Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1862   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1863   ##
1864   podAntiAffinityPreset: soft
1865   ## Node affinity preset
1866   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1867   ## Allowed values: soft, hard
1868   ##
1869   nodeAffinityPreset:
1870     ## @param hidden.nodeAffinityPreset.type Hidden Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1871     ##
1872     type: ""
1873     ## @param hidden.nodeAffinityPreset.key Hidden Node label key to match Ignored if `affinity` is set.
1874     ## E.g.
1875     ## key: "kubernetes.io/e2e-az-name"
1876     ##
1877     key: ""
1878     ## @param hidden.nodeAffinityPreset.values Hidden Node label values to match. Ignored if `affinity` is set.
1879     ## E.g.
1880     ## values:
1881     ##   - e2e-az1
1882     ##   - e2e-az2
1883     ##
1884     values: []
1885   ## @param hidden.affinity Hidden node Affinity for pod assignment
1886   ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1887   ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
1888   ##
1889   affinity: {}
1890   ## @param hidden.nodeSelector Hidden node Node labels for pod assignment
1891   ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1892   ##
1893   nodeSelector: {}
1894   ## @param hidden.tolerations Hidden node Tolerations for pod assignment
1895   ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1896   ##
1897   tolerations: []
1898   ## @param hidden.podLabels Hidden node pod labels
1899   ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1900   ##
1901   podLabels: {}
1902   ## @param hidden.podAnnotations Hidden node Pod annotations
1903   ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1904   ##
1905   podAnnotations: {}
1906   ## @param hidden.priorityClassName Name of the existing priority class to be used by hidden node pod(s)
1907   ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1908   ##
1909   priorityClassName: ""
1910   ## @param hidden.runtimeClassName Name of the runtime class to be used by hidden node pod(s)
1911   ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
1912   ##
1913   runtimeClassName: ""
1914   ## MongoDB(&reg;) Hidden pods' Security Context.
1915   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1916   ## @param hidden.podSecurityContext.enabled Enable Hidden pod(s)' Security Context
1917   ## @param hidden.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1918   ## @param hidden.podSecurityContext.supplementalGroups Set filesystem extra groups
1919   ## @param hidden.podSecurityContext.fsGroup Group ID for the volumes of the Hidden pod(s)
1920   ## @param hidden.podSecurityContext.sysctls sysctl settings of the Hidden pod(s)'
1921   ##
1922   podSecurityContext:
1923     enabled: true
1924     fsGroupChangePolicy: Always
1925     supplementalGroups: []
1926     fsGroup: 1001
1927     ## sysctl settings
1928     ## Example:
1929     ## sysctls:
1930     ## - name: net.core.somaxconn
1931     ##   value: "10000"
1932     ##
1933     sysctls: []
1934   ## MongoDB(&reg;) Hidden containers' Security Context (only main container).
1935   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1936   ## @param hidden.containerSecurityContext.enabled Enabled containers' Security Context
1937   ## @param hidden.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1938   ## @param hidden.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1939   ## @param hidden.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1940   ## @param hidden.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1941   ## @param hidden.containerSecurityContext.privileged Set container's Security Context privileged
1942   ## @param hidden.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1943   ## @param hidden.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1944   ## @param hidden.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1945   ## @param hidden.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1946   ##
1947   containerSecurityContext:
1948     enabled: true
1949     seLinuxOptions: null
1950     runAsUser: 1001
1951     runAsGroup: 0
1952     runAsNonRoot: true
1953     privileged: false
1954     readOnlyRootFilesystem: false
1955     allowPrivilegeEscalation: false
1956     capabilities:
1957       drop: ["ALL"]
1958     seccompProfile:
1959       type: "RuntimeDefault"
1960   ## MongoDB(&reg;) Hidden containers' resource requests and limits.
1961   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1962   ## We usually recommend not to specify default resources and to leave this as a conscious
1963   ## choice for the user. This also increases chances charts run on environments with little
1964   ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1965   ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1966   ## @param hidden.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if hidden.resources is set (hidden.resources is recommended for production).
1967   ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1968   ##
1969   resourcesPreset: "none"
1970   ## @param hidden.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1971   ## Example:
1972   ## resources:
1973   ##   requests:
1974   ##     cpu: 2
1975   ##     memory: 512Mi
1976   ##   limits:
1977   ##     cpu: 3
1978   ##     memory: 1024Mi
1979   ##
1980   resources: {}
1981   ## @param hidden.containerPorts.mongodb MongoDB(&reg;) hidden container port
1982   ##
1983   containerPorts:
1984     mongodb: 27017
1985   ## MongoDB(&reg;) Hidden pods' liveness probe. Evaluated as a template.
1986   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1987   ## @param hidden.livenessProbe.enabled Enable livenessProbe
1988   ## @param hidden.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1989   ## @param hidden.livenessProbe.periodSeconds Period seconds for livenessProbe
1990   ## @param hidden.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1991   ## @param hidden.livenessProbe.failureThreshold Failure threshold for livenessProbe
1992   ## @param hidden.livenessProbe.successThreshold Success threshold for livenessProbe
1993   ##
1994   livenessProbe:
1995     enabled: true
1996     initialDelaySeconds: 30
1997     periodSeconds: 20
1998     timeoutSeconds: 10
1999     failureThreshold: 6
2000     successThreshold: 1
2001   ## MongoDB(&reg;) Hidden pods' readiness probe. Evaluated as a template.
2002   ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2003   ## @param hidden.readinessProbe.enabled Enable readinessProbe
2004   ## @param hidden.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2005   ## @param hidden.readinessProbe.periodSeconds Period seconds for readinessProbe
2006   ## @param hidden.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2007   ## @param hidden.readinessProbe.failureThreshold Failure threshold for readinessProbe
2008   ## @param hidden.readinessProbe.successThreshold Success threshold for readinessProbe
2009   ##
2010   readinessProbe:
2011     enabled: true
2012     initialDelaySeconds: 5
2013     periodSeconds: 20
2014     timeoutSeconds: 10
2015     failureThreshold: 6
2016     successThreshold: 1
2017   ## Slow starting containers can be protected through startup probes
2018   ## Startup probes are available in Kubernetes version 1.16 and above
2019   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
2020   ## @param hidden.startupProbe.enabled Enable startupProbe
2021   ## @param hidden.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2022   ## @param hidden.startupProbe.periodSeconds Period seconds for startupProbe
2023   ## @param hidden.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2024   ## @param hidden.startupProbe.failureThreshold Failure threshold for startupProbe
2025   ## @param hidden.startupProbe.successThreshold Success threshold for startupProbe
2026   ##
2027   startupProbe:
2028     enabled: false
2029     initialDelaySeconds: 5
2030     periodSeconds: 10
2031     timeoutSeconds: 5
2032     successThreshold: 1
2033     failureThreshold: 30
2034   ## @param hidden.customLivenessProbe Override default liveness probe for hidden node containers
2035   ## Ignored when hidden.livenessProbe.enabled=true
2036   ##
2037   customLivenessProbe: {}
2038   ## @param hidden.customReadinessProbe Override default readiness probe for hidden node containers
2039   ## Ignored when hidden.readinessProbe.enabled=true
2040   ##
2041   customReadinessProbe: {}
2042   ## @param hidden.customStartupProbe Override default startup probe for MongoDB(&reg;) containers
2043   ## Ignored when hidden.startupProbe.enabled=true
2044   ##
2045   customStartupProbe: {}
2046   ## @param hidden.initContainers Add init containers to the MongoDB(&reg;) Hidden pods.
2047   ## Example:
2048   ## initContainers:
2049   ##   - name: your-image-name
2050   ##     image: your-image
2051   ##     imagePullPolicy: Always
2052   ##     ports:
2053   ##       - name: portname
2054   ##         containerPort: 1234
2055   ##
2056   initContainers: []
2057   ## @param hidden.sidecars Add additional sidecar containers for the hidden node pod(s)
2058   ## Example:
2059   ## sidecars:
2060   ##   - name: your-image-name
2061   ##     image: your-image
2062   ##     imagePullPolicy: Always
2063   ##     ports:
2064   ##       - name: portname
2065   ##         containerPort: 1234
2066   ##
2067   sidecars: []
2068   ## @param hidden.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the hidden node container(s)
2069   ## Examples:
2070   ## extraVolumeMounts:
2071   ##   - name: extras
2072   ##     mountPath: /usr/share/extras
2073   ##     readOnly: true
2074   ##
2075   extraVolumeMounts: []
2076   ## @param hidden.extraVolumes Optionally specify extra list of additional volumes to the hidden node statefulset
2077   ## extraVolumes:
2078   ##   - name: extras
2079   ##     emptyDir: {}
2080   ##
2081   extraVolumes: []
2082   ## MongoDB(&reg;) Hidden Pod Disruption Budget configuration
2083   ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2084   ##
2085   pdb:
2086     ## @param hidden.pdb.create Enable/disable a Pod Disruption Budget creation for hidden node pod(s)
2087     ##
2088     create: false
2089     ## @param hidden.pdb.minAvailable Minimum number/percentage of hidden node pods that should remain scheduled
2090     ##
2091     minAvailable: 1
2092     ## @param hidden.pdb.maxUnavailable Maximum number/percentage of hidden node pods that may be made unavailable
2093     ##
2094     maxUnavailable: ""
2095   ## Enable persistence using Persistent Volume Claims
2096   ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
2097   ##
2098   persistence:
2099     ## @param hidden.persistence.enabled Enable hidden node data persistence using PVC
2100     ##
2101     enabled: true
2102     ## @param hidden.persistence.medium Provide a medium for `emptyDir` volumes.
2103     ## Requires hidden.persistence.enabled: false
2104     ##
2105     medium: ""
2106     ## @param hidden.persistence.storageClass PVC Storage Class for hidden node data volume
2107     ## If defined, storageClassName: <storageClass>
2108     ## If set to "-", storageClassName: "", which disables dynamic provisioning
2109     ## If undefined (the default) or set to null, no storageClassName spec is
2110     ## set, choosing the default provisioner.
2111     ##
2112     storageClass: ""
2113     ## @param hidden.persistence.accessModes PV Access Mode
2114     ##
2115     accessModes:
2116       - ReadWriteOnce
2117     ## @param hidden.persistence.size PVC Storage Request for hidden node data volume
2118     ##
2119     size: 8Gi
2120     ## @param hidden.persistence.annotations PVC annotations
2121     ##
2122     annotations: {}
2123     ## @param hidden.persistence.mountPath The path the volume will be mounted at, useful when using different MongoDB(&reg;) images.
2124     ##
2125     mountPath: /bitnami/mongodb
2126     ## @param hidden.persistence.subPath The subdirectory of the volume to mount to, useful in dev environments
2127     ## and one PV for multiple services.
2128     ##
2129     subPath: ""
2130     ## Fine tuning for volumeClaimTemplates
2131     ##
2132     volumeClaimTemplates:
2133       ## @param hidden.persistence.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
2134       ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
2135       ##
2136       selector: {}
2137       ## @param hidden.persistence.volumeClaimTemplates.requests Custom PVC requests attributes
2138       ## Sometime cloud providers use additional requests attributes to provision custom storage instance
2139       ## See https://cloud.ibm.com/docs/containers?topic=containers-file_storage#file_dynamic_statefulset
2140       ##
2141       requests: {}
2142       ## @param hidden.persistence.volumeClaimTemplates.dataSource Set volumeClaimTemplate dataSource
2143       ##
2144       dataSource: {}
2145   service:
2146     ## @param hidden.service.portName MongoDB(&reg;) service port name
2147     ##
2148     portName: "mongodb"
2149     ## @param hidden.service.ports.mongodb MongoDB(&reg;) service port
2150     ##
2151     ports:
2152       mongodb: 27017
2153     ## @param hidden.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2154     ##
2155     extraPorts: []
2156     ## @param hidden.service.annotations Provide any additional annotations that may be required
2157     ##
2158     annotations: {}
2159     ## Headless service properties
2160     ##
2161     headless:
2162       ## @param hidden.service.headless.annotations Annotations for the headless service.
2163       ##
2164       annotations: {}
2165 ## @section Metrics parameters
2166 ##
2167 metrics:
2168   ## @param metrics.enabled Enable using a sidecar Prometheus exporter
2169   ##
2170   enabled: false
2171   ## Bitnami MongoDB(&reg;) Promtheus Exporter image
2172   ## ref: https://hub.docker.com/r/bitnami/mongodb-exporter/tags/
2173   ## @param metrics.image.registry [default: REGISTRY_NAME] MongoDB(&reg;) Prometheus exporter image registry
2174   ## @param metrics.image.repository [default: REPOSITORY_NAME/mongodb-exporter] MongoDB(&reg;) Prometheus exporter image repository
2175   ## @skip metrics.image.tag MongoDB(&reg;) Prometheus exporter image tag (immutable tags are recommended)
2176   ## @param metrics.image.digest MongoDB(&reg;) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2177   ## @param metrics.image.pullPolicy MongoDB(&reg;) Prometheus exporter image pull policy
2178   ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
2179   ##
2180   image:
2181     registry: docker.io
2182     repository: bitnami/mongodb-exporter
2183     tag: 0.40.0-debian-12-r11
2184     digest: ""
2185     pullPolicy: IfNotPresent
2186     ## Optionally specify an array of imagePullSecrets.
2187     ## Secrets must be manually created in the namespace.
2188     ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2189     ## e.g:
2190     ## pullSecrets:
2191     ##   - myRegistryKeySecretName
2192     ##
2193     pullSecrets: []
2194   ## @param metrics.username String with username for the metrics exporter
2195   ## If undefined the root user will be used for the metrics exporter
2196   ##
2197   username: ""
2198   ## @param metrics.password String with password for the metrics exporter
2199   ## If undefined but metrics.username is defined, a random password will be generated
2200   ##
2201   password: ""
2202   ## @param metrics.compatibleMode Enables old style mongodb-exporter metrics
2203   compatibleMode: true
2204   collector:
2205     ## @param metrics.collector.all Enable all collectors. Same as enabling all individual metrics
2206     ## Enabling all metrics will cause significant CPU load on mongod
2207     all: false
2208     ## @param metrics.collector.diagnosticdata Boolean Enable collecting metrics from getDiagnosticData
2209     diagnosticdata: true
2210     ## @param metrics.collector.replicasetstatus Boolean Enable collecting metrics from replSetGetStatus
2211     replicasetstatus: true
2212     ## @param metrics.collector.dbstats Boolean Enable collecting metrics from dbStats
2213     dbstats: false
2214     ## @param metrics.collector.topmetrics Boolean Enable collecting metrics from top admin command
2215     topmetrics: false
2216     ## @param metrics.collector.indexstats Boolean Enable collecting metrics from $indexStats
2217     indexstats: false
2218     ## @param metrics.collector.collstats Boolean Enable collecting metrics from $collStats
2219     collstats: false
2220     ## @param metrics.collector.collstatsColls List of \<databases\>.\<collections\> to get $collStats
2221     collstatsColls: []
2222     ## @param metrics.collector.indexstatsColls List - List of \<databases\>.\<collections\> to get $indexStats
2223     indexstatsColls: []
2224     ## @param metrics.collector.collstatsLimit Number - Disable collstats, dbstats, topmetrics and indexstats collector if there are more than \<n\> collections. 0=No limit
2225     collstatsLimit: 0
2226   ## @param metrics.extraFlags String with extra flags to the metrics exporter
2227   ## ref: https://github.com/percona/mongodb_exporter/blob/main/main.go
2228   ##
2229   extraFlags: ""
2230   ## Command and args for running the container (set to default if not set). Use array form
2231   ## @param metrics.command Override default container command (useful when using custom images)
2232   ## @param metrics.args Override default container args (useful when using custom images)
2233   ##
2234   command: []
2235   args: []
2236   ## Metrics exporter container resource requests and limits
2237   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2238   ## We usually recommend not to specify default resources and to leave this as a conscious
2239   ## choice for the user. This also increases chances charts run on environments with little
2240   ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2241   ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2242   ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
2243   ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
2244   ##
2245   resourcesPreset: "none"
2246   ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2247   ## Example:
2248   ## resources:
2249   ##   requests:
2250   ##     cpu: 2
2251   ##     memory: 512Mi
2252   ##   limits:
2253   ##     cpu: 3
2254   ##     memory: 1024Mi
2255   ##
2256   resources: {}
2257   ## @param metrics.containerPort Port of the Prometheus metrics container
2258   ##
2259   containerPort: 9216
2260   ## Prometheus Exporter service configuration
2261   ##
2262   service:
2263     ## @param metrics.service.annotations [object] Annotations for Prometheus Exporter pods. Evaluated as a template.
2264     ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2265     ##
2266     annotations:
2267       prometheus.io/scrape: "true"
2268       prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
2269       prometheus.io/path: "/metrics"
2270     ## @param metrics.service.type Type of the Prometheus metrics service
2271     ##
2272     type: ClusterIP
2273     ## @param metrics.service.ports.metrics Port of the Prometheus metrics service
2274     ##
2275     ports:
2276       metrics: 9216
2277     ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2278     ##
2279     extraPorts: []
2280   ## Metrics exporter liveness probe
2281   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
2282   ## @param metrics.livenessProbe.enabled Enable livenessProbe
2283   ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2284   ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
2285   ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2286   ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
2287   ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
2288   ##
2289   livenessProbe:
2290     enabled: true
2291     initialDelaySeconds: 15
2292     periodSeconds: 5
2293     timeoutSeconds: 10
2294     failureThreshold: 3
2295     successThreshold: 1
2296   ## Metrics exporter readiness probe
2297   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
2298   ## @param metrics.readinessProbe.enabled Enable readinessProbe
2299   ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2300   ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
2301   ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2302   ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
2303   ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
2304   ##
2305   readinessProbe:
2306     enabled: true
2307     initialDelaySeconds: 5
2308     periodSeconds: 5
2309     timeoutSeconds: 10
2310     failureThreshold: 3
2311     successThreshold: 1
2312   ## Slow starting containers can be protected through startup probes
2313   ## Startup probes are available in Kubernetes version 1.16 and above
2314   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
2315   ## @param metrics.startupProbe.enabled Enable startupProbe
2316   ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2317   ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
2318   ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2319   ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
2320   ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
2321   ##
2322   startupProbe:
2323     enabled: false
2324     initialDelaySeconds: 5
2325     periodSeconds: 10
2326     timeoutSeconds: 5
2327     successThreshold: 1
2328     failureThreshold: 30
2329   ## @param metrics.customLivenessProbe Override default liveness probe for MongoDB(&reg;) containers
2330   ## Ignored when livenessProbe.enabled=true
2331   ##
2332   customLivenessProbe: {}
2333   ## @param metrics.customReadinessProbe Override default readiness probe for MongoDB(&reg;) containers
2334   ## Ignored when readinessProbe.enabled=true
2335   ##
2336   customReadinessProbe: {}
2337   ## @param metrics.customStartupProbe Override default startup probe for MongoDB(&reg;) containers
2338   ## Ignored when startupProbe.enabled=true
2339   ##
2340   customStartupProbe: {}
2341   ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the metrics container(s)
2342   ## Examples:
2343   ## extraVolumeMounts:
2344   ##   - name: extras
2345   ##     mountPath: /usr/share/extras
2346   ##     readOnly: true
2347   ##
2348   extraVolumeMounts: []
2349   ## Prometheus Service Monitor
2350   ## ref: https://github.com/coreos/prometheus-operator
2351   ##      https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md
2352   ##
2353   serviceMonitor:
2354     ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
2355     ##
2356     enabled: false
2357     ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in
2358     ##
2359     namespace: ""
2360     ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
2361     ##
2362     interval: 30s
2363     ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
2364     ## e.g:
2365     ## scrapeTimeout: 30s
2366     ##
2367     scrapeTimeout: ""
2368     ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping.
2369     ##
2370     relabelings: []
2371     ## @param metrics.serviceMonitor.metricRelabelings MetricsRelabelConfigs to apply to samples before ingestion.
2372     ##
2373     metricRelabelings: []
2374     ## @param metrics.serviceMonitor.labels Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
2375     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
2376     ##
2377     labels: {}
2378     ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
2379     ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
2380     ##
2381     selector: {}
2382     ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2383     ##
2384     honorLabels: false
2385     ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2386     ##
2387     jobLabel: ""
2388   ## Custom PrometheusRule to be defined
2389   ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
2390   ##
2391   prometheusRule:
2392     ## @param metrics.prometheusRule.enabled Set this to true to create prometheusRules for Prometheus operator
2393     ##
2394     enabled: false
2395     ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so prometheusRules will be discovered by Prometheus
2396     ##
2397     additionalLabels: {}
2398     ## @param metrics.prometheusRule.namespace Namespace where prometheusRules resource should be created
2399     ##
2400     namespace: ""
2401     ## @param metrics.prometheusRule.rules Rules to be created, check values for an example
2402     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#rulegroup
2403     ##      https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
2404     ##
2405     ## This is an example of a rule, you should add the below code block under the "rules" param, removing the brackets
2406     ## rules:
2407     ## - alert: HighRequestLatency
2408     ##   expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
2409     ##   for: 10m
2410     ##   labels:
2411     ##     severity: page
2412     ##   annotations:
2413     ##     summary: High request latency
2414     ##
2415     rules: []