1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
16## @param global.imageRegistry Global Docker image registry
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
19## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
20## @param global.namespaceOverride Override the namespace for resource deployed by the chart, but can itself be overridden by the local namespaceOverride
26 ## - myRegistryKeySecretName
29 defaultStorageClass: ""
31 ## Security parameters
34 ## @param global.security.allowInsecureImages Allows skipping image verification
35 allowInsecureImages: false
37 ## Compatibility adaptations for Kubernetes platforms
40 ## Compatibility adaptations for Openshift
43 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
45 adaptSecurityContext: auto
47## @section Common parameters
50## @param nameOverride String to partially override mongodb.fullname template (will maintain the release name)
53## @param fullnameOverride String to fully override mongodb.fullname template
56## @param namespaceOverride String to fully override common.names.namespace
59## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
62## @param clusterDomain Default Kubernetes cluster domain
64clusterDomain: cluster.local
65## @param extraDeploy Array of extra objects to deploy with the release
67## This needs to be uncommented and added to 'extraDeploy' in order to use the replicaset 'mongo-labeler' sidecar
68## for dynamically discovering the mongodb primary pod
69## suggestion is to use a hard-coded and predictable TCP port for the primary mongodb pod (here is 30001, choose your own)
73## name: mongodb-primary
74## namespace: the-mongodb-namespace
76## app.kubernetes.io/component: mongodb
77## app.kubernetes.io/instance: mongodb
78## app.kubernetes.io/managed-by: Helm
79## app.kubernetes.io/name: mongodb
82## externalTrafficPolicy: Cluster
90## app.kubernetes.io/component: mongodb
91## app.kubernetes.io/instance: mongodb
92## app.kubernetes.io/name: mongodb
96## @param commonLabels Add labels to all the deployed resources (sub-charts are not considered). Evaluated as a template
99## @param commonAnnotations Common annotations to add to all Mongo resources (sub-charts are not considered). Evaluated as a template
102## @param topologyKey Override common lib default topology key. If empty - "kubernetes.io/hostname" is used
103## i.e. topologyKey: topology.kubernetes.io/zone
106## @param serviceBindings.enabled Create secret for service binding (Experimental)
107## Ref: https://servicebinding.io/service-provider/
111## @param enableServiceLinks Whether information about services should be injected into pod's environment variable
112## 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.
113## If you experience slow pod startups or slow running of the scripts you probably want to set this to `false`.
115enableServiceLinks: true
116## @param usePasswordFiles Mount credentials as files instead of using environment variables
118usePasswordFiles: true
119## Enable diagnostic mode in the deployment
122 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
125 ## @param diagnosticMode.command Command to override all containers in the deployment
129 ## @param diagnosticMode.args Args to override all containers in the deployment
133## @section MongoDB(®) parameters
136## Iamguarded MongoDB(®) image
137## @param image.registry [default: REGISTRY_NAME] MongoDB(®) image registry
138## @param image.repository [default: REPOSITORY_NAME/mongodb] MongoDB(®) image registry
139## @skip image.tag MongoDB(®) image tag (immutable tags are recommended)
140## @param image.digest MongoDB(®) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
141## @param image.pullPolicy MongoDB(®) image pull policy
142## @param image.pullSecrets Specify docker-registry secret names as an array
143## @param image.debug Set to true if you would like to see extra information on logs
147 repository: chainguard-private/mongodb-iamguarded
150 ## Specify a imagePullPolicy
151 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
153 pullPolicy: IfNotPresent
154 ## Optionally specify an array of imagePullSecrets.
155 ## Secrets must be manually created in the namespace.
156 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
159 ## - myRegistryKeySecretName
162 ## Set to true if you would like to see extra information on logs
165## @param schedulerName Name of the scheduler (other than default) to dispatch pods
166## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
169## @param architecture MongoDB(®) architecture (`standalone` or `replicaset`)
171architecture: standalone
172## @param useStatefulSet Set to true to use a StatefulSet instead of a Deployment (only when `architecture=standalone`)
175## MongoDB(®) Authentication parameters
178 ## @param auth.enabled Enable authentication
179 ## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/
182 ## @param auth.rootUser MongoDB(®) root user
185 ## @param auth.rootPassword MongoDB(®) root password
188 ## MongoDB(®) custom users and databases
189 ## @param auth.usernames List of custom users to be created during the initialization
190 ## @param auth.passwords List of passwords for the custom users set at `auth.usernames`
191 ## @param auth.databases List of custom databases to be created during the initialization
196 ## @param auth.username DEPRECATED: use `auth.usernames` instead
197 ## @param auth.password DEPRECATED: use `auth.passwords` instead
198 ## @param auth.database DEPRECATED: use `auth.databases` instead
203 ## @param auth.replicaSetKey Key used for authentication in the replicaset (only when `architecture=replicaset`)
206 ## @param auth.existingSecret Existing secret with MongoDB(®) credentials (keys: `mongodb-passwords`, `mongodb-root-password`, `mongodb-metrics-password`, `mongodb-replica-set-key`)
207 ## NOTE: When it's set the previous parameters are ignored.
211 ## @param tls.enabled Enable MongoDB(®) TLS support between nodes in the cluster as well as between mongo clients and nodes
215 ## @param tls.mTLS.enabled IF TLS support is enabled, require clients to provide certificates
217 ## @param tls.autoGenerated Generate a custom CA and self-signed certificates
220 ## @param tls.existingSecret Existing secret with TLS certificates (keys: `mongodb-ca-cert`, `mongodb-ca-key`)
221 ## NOTE: When it's set it will disable secret creation.
224 ## Add Custom CA certificate
225 ## @param tls.caCert Custom CA certificated (base64 encoded)
226 ## @param tls.caKey CA certificate private key (base64 encoded)
230 ## @param tls.pemChainIncluded Flag to denote that the Certificate Authority (CA) certificates are bundled with the endpoint cert.
231 ## Certificates must be in proper order, where the top certificate is the leaf and the bottom certificate is the top-most intermediate CA.
233 pemChainIncluded: false
235 ## @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.
236 ## NOTE: When it's set it will disable certificate self-generation from existing CA.
240 ## @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.
244 ## NOTE: When it's set it will disable certificate self-generation from existing CA.
248 ## @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.
252 ## NOTE: When it's set it will disable certificate self-generation from existing CA.
256 ## @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.
257 ## NOTE: When it's set it will disable certificate self-generation from existing CA.
260 ## Iamguarded Nginx image
261 ## @param tls.image.registry [default: REGISTRY_NAME] Init container TLS certs setup image registry
262 ## @param tls.image.repository [default: REPOSITORY_NAME/nginx] Init container TLS certs setup image repository
263 ## @skip tls.image.tag Init container TLS certs setup image tag (immutable tags are recommended)
264 ## @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
265 ## @param tls.image.pullPolicy Init container TLS certs setup image pull policy
266 ## @param tls.image.pullSecrets Init container TLS certs specify docker-registry secret names as an array
267 ## @param tls.extraDnsNames Add extra dns names to the CA, can solve x509 auth issue for pod clients
271 repository: chainguard-private/nginx-iamguarded
274 pullPolicy: IfNotPresent
275 ## Optionally specify an array of imagePullSecrets.
276 ## Secrets must be manually created in the namespace.
277 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
280 ## - myRegistryKeySecretName
285 ## "DNS.6": "$my_host"
289 ## @param tls.mode Allows to set the tls mode which should be used when tls is enabled (options: `allowTLS`, `preferTLS`, `requireTLS`)
292 ## Init Container resource requests and limits
293 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
294 ## We usually recommend not to specify default resources and to leave this as a conscious
295 ## choice for the user. This also increases chances charts run on environments with little
296 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
297 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
298 ## @param tls.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if tls.resources is set (tls.resources is recommended for production).
300 resourcesPreset: "nano"
301 ## @param tls.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
312 ## Init Container securityContext
313 ## ref: https://kubernetes.io/docs/concepts/security/pod-security-policy/
314 ## @param tls.securityContext Init container generate-tls-cert Security context
318 ## allowPrivilegeEscalation: false
322## @param automountServiceAccountToken Mount Service Account token in pod
324automountServiceAccountToken: false
325## @param hostAliases Add deployment host aliases
326## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
329## @param replicaSetName Name of the replica set (only when `architecture=replicaset`)
330## Ignored when mongodb.architecture=standalone
333## @param replicaSetHostnames Enable DNS hostnames in the replicaset config (only when `architecture=replicaset`)
334## Ignored when mongodb.architecture=standalone
335## Ignored when externalAccess.enabled=true
337replicaSetHostnames: true
338## @param enableIPv6 Switch to enable/disable IPv6 on MongoDB(®)
341## @param directoryPerDB Switch to enable/disable DirectoryPerDB on MongoDB(®)
344## MongoDB(®) System Log configuration
345## @param systemLogVerbosity MongoDB(®) system log verbosity level
346## @param disableSystemLog Switch to enable/disable MongoDB(®) system log
349disableSystemLog: false
350## @param disableJavascript Switch to enable/disable MongoDB(®) server-side JavaScript execution
351## ref: https://docs.mongodb.com/manual/core/server-side-javascript/
353disableJavascript: false
354## @param enableJournal Switch to enable/disable MongoDB(®) Journaling
355## ref: https://docs.mongodb.com/manual/reference/configuration-options/#mongodb-setting-storage.journal.enabled
358## @param configuration MongoDB(®) configuration file to be used for Primary and Secondary nodes
359## For documentation of all options, see: http://docs.mongodb.org/manual/reference/configuration-options/
362## # where and how to store data.
364## dbPath: /iamguarded/mongodb/data/db
367## directoryPerDB: false
368## # where to write logging data
374## path: /opt/iamguarded/mongodb/logs/mongodb.log
376## # network interfaces
381## pathPrefix: /opt/iamguarded/mongodb/tmp
384## # replica set options
386## #replSetName: replicaset
387## #enableMajorityReadConcern: true
388## # process management options
391## pidFilePath: /opt/iamguarded/mongodb/tmp/mongodb.pid
392## # set parameter options
394## enableLocalhostAuthBypass: true
397## authorization: disabled
398## #keyFile: /opt/iamguarded/mongodb/conf/keyfile
401## @section replicaSetConfigurationSettings settings applied during runtime (not via configuration file)
402## If enabled, these are applied by a script which is called within setup.sh
403## for documentation see https://docs.mongodb.com/manual/reference/replica-configuration/#replica-set-configuration-fields
404## @param replicaSetConfigurationSettings.enabled Enable MongoDB(®) Switch to enable/disable configuring MongoDB(®) run time rs.conf settings
405## @param replicaSetConfigurationSettings.configuration run-time rs.conf settings
407replicaSetConfigurationSettings:
410## Custom configurations for individual replica set members.
411## Use the prefix 'members[X].' to apply settings to the member X of the replica set.
412## Example: 'members[0].priority: 3' sets the priority of the first replica set member to 3.
413## The index X in 'members[X]' corresponds to the member's position in the replica set.
414## members[0].priority: 3
415## chainingAllowed : false
416## heartbeatTimeoutSecs : 10
417## heartbeatIntervalMillis : 2000
418## electionTimeoutMillis : 10000
419## catchUpTimeoutMillis : 30000
420## @param existingConfigmap Name of existing ConfigMap with MongoDB(®) configuration for Primary and Secondary nodes
421## NOTE: When it's set the arbiter.configuration parameter is ignored
424## @param initdbScripts Dictionary of initdb scripts
425## Specify dictionary of scripts to be run at first boot
428## my_init_script.sh: |
430## echo "Do something."
433## @param initdbScriptsConfigMap Existing ConfigMap with custom initdb scripts
435initdbScriptsConfigMap: ""
436## Command and args for running the container (set to default if not set). Use array form
437## @param command Override default container command (useful when using custom images)
438## @param args Override default container args (useful when using custom images)
442## @param extraFlags MongoDB(®) additional command line flags
445## - "--wiredTigerCacheSizeGB=2"
448## @param extraEnvVars Extra environment variables to add to MongoDB(®) pods
455## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
458## @param extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
460extraEnvVarsSecret: ""
461## @section MongoDB(®) statefulset parameters
464## @param annotations Additional labels to be added to the MongoDB(®) statefulset. Evaluated as a template
467## @param labels Annotations to be added to the MongoDB(®) statefulset. Evaluated as a template
470## @param replicaCount Number of MongoDB(®) nodes
471## When `mongodb.architecture=replicaset`, the number of replicas is taken in account
472## When `mongodb.architecture=standalone`, the number of replicas can only be 0 or 1 (value higher then 1 will not be taken in account)
475## @param updateStrategy.type Strategy to use to replace existing MongoDB(®) pods. When architecture=standalone and useStatefulSet=false,
476## this parameter will be applied on a deployment object. In other case it will be applied on a statefulset object
477## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
478## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
481## type: RollingUpdate
484## maxUnavailable: 25%
488## @param podManagementPolicy Pod management policy for MongoDB(®)
489## Should be initialized one by one when building the replicaset for the first time
491podManagementPolicy: OrderedReady
492## @param podAffinityPreset MongoDB(®) Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
493## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
496## @param podAntiAffinityPreset MongoDB(®) Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
497## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
499podAntiAffinityPreset: soft
500## Node affinity preset
501## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
504 ## @param nodeAffinityPreset.type MongoDB(®) Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
507 ## @param nodeAffinityPreset.key MongoDB(®) Node label key to match Ignored if `affinity` is set.
509 ## key: "kubernetes.io/e2e-az-name"
512 ## @param nodeAffinityPreset.values MongoDB(®) Node label values to match. Ignored if `affinity` is set.
519## @param affinity MongoDB(®) Affinity for pod assignment
520## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
521## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
524## @param nodeSelector MongoDB(®) Node labels for pod assignment
525## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
528## @param tolerations MongoDB(®) Tolerations for pod assignment
529## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
532## @param topologySpreadConstraints MongoDB(®) Spread Constraints for Pods
533## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
535topologySpreadConstraints: []
536## @param lifecycleHooks LifecycleHook for the MongoDB(®) container(s) to automate configuration before or after startup
539## @param terminationGracePeriodSeconds MongoDB(®) Termination Grace Period
541terminationGracePeriodSeconds: ""
542## @param podLabels MongoDB(®) pod labels
543## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
546## @param podAnnotations MongoDB(®) Pod annotations
547## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
550## @param priorityClassName Name of the existing priority class to be used by MongoDB(®) pod(s)
551## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
554## @param runtimeClassName Name of the runtime class to be used by MongoDB(®) pod(s)
555## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
558## MongoDB(®) pods' Security Context.
559## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
560## @param podSecurityContext.enabled Enable MongoDB(®) pod(s)' Security Context
561## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
562## @param podSecurityContext.supplementalGroups Set filesystem extra groups
563## @param podSecurityContext.fsGroup Group ID for the volumes of the MongoDB(®) pod(s)
564## @param podSecurityContext.sysctls sysctl settings of the MongoDB(®) pod(s)'
568 fsGroupChangePolicy: Always
569 supplementalGroups: []
574 ## - name: net.core.somaxconn
578## MongoDB(®) containers' Security Context (main and metrics container).
579## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
580## @param containerSecurityContext.enabled Enabled containers' Security Context
581## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
582## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
583## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
584## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
585## @param containerSecurityContext.privileged Set container's Security Context privileged
586## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
587## @param containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
588## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
589## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
591containerSecurityContext:
598 readOnlyRootFilesystem: true
599 allowPrivilegeEscalation: false
603 type: "RuntimeDefault"
604## MongoDB(®) containers' resource requests and limits.
605## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
606## We usually recommend not to specify default resources and to leave this as a conscious
607## choice for the user. This also increases chances charts run on environments with little
608## resources, such as Minikube. If you do want to specify resources, uncomment the following
609## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
610## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
612resourcesPreset: "small"
613## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
624## @param containerPorts.mongodb MongoDB(®) container port
628## MongoDB(®) pods' liveness probe. Evaluated as a template.
629## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
630## @param livenessProbe.enabled Enable livenessProbe
631## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
632## @param livenessProbe.periodSeconds Period seconds for livenessProbe
633## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
634## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
635## @param livenessProbe.successThreshold Success threshold for livenessProbe
639 initialDelaySeconds: 30
644## MongoDB(®) pods' readiness probe. Evaluated as a template.
645## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
646## @param readinessProbe.enabled Enable readinessProbe
647## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
648## @param readinessProbe.periodSeconds Period seconds for readinessProbe
649## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
650## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
651## @param readinessProbe.successThreshold Success threshold for readinessProbe
655 initialDelaySeconds: 5
660## Slow starting containers can be protected through startup probes
661## Startup probes are available in Kubernetes version 1.16 and above
662## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
663## @param startupProbe.enabled Enable startupProbe
664## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
665## @param startupProbe.periodSeconds Period seconds for startupProbe
666## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
667## @param startupProbe.failureThreshold Failure threshold for startupProbe
668## @param startupProbe.successThreshold Success threshold for startupProbe
672 initialDelaySeconds: 5
677## @param customLivenessProbe Override default liveness probe for MongoDB(®) containers
678## Ignored when livenessProbe.enabled=true
680customLivenessProbe: {}
681## @param customReadinessProbe Override default readiness probe for MongoDB(®) containers
682## Ignored when readinessProbe.enabled=true
684customReadinessProbe: {}
685## @param customStartupProbe Override default startup probe for MongoDB(®) containers
686## Ignored when startupProbe.enabled=true
688customStartupProbe: {}
689## @param initContainers Add additional init containers for the hidden node pod(s)
692## - name: your-image-name
694## imagePullPolicy: Always
697## containerPort: 1234
700## @param sidecars Add additional sidecar containers for the MongoDB(®) pod(s)
703## - name: your-image-name
705## imagePullPolicy: Always
708## containerPort: 1234
709## This is an optional 'mongo-labeler' sidecar container that tracks replica-set for the primary mongodb pod
710## and labels it dynamically with ' primary: "true" ' in order for an extra-deployed service to always expose
711## and attach to the primary pod, this needs to be uncommented along with the suggested 'extraDeploy' example
712## and the suggested rbac example for the pod to be allowed adding labels to mongo replica pods
713## search 'mongo-labeler' through this file to find the sections that needs to be uncommented to make it work
715## - name: mongo-labeler
716## image: korenlev/k8s-mongo-labeler-sidecar
717## imagePullPolicy: Always
719## - name: LABEL_SELECTOR
720## value: "app.kubernetes.io/component=mongodb,app.kubernetes.io/instance=mongodb,app.kubernetes.io/name=mongodb"
722## value: "the-mongodb-namespace"
727## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MongoDB(®) container(s)
731## mountPath: /usr/share/extras
735## @param extraVolumes Optionally specify extra list of additional volumes to the MongoDB(®) statefulset
741## MongoDB(®) Pod Disruption Budget configuration
742## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
745 ## @param pdb.create Enable/disable a Pod Disruption Budget creation for MongoDB(®) pod(s)
748 ## @param pdb.minAvailable Minimum number/percentage of MongoDB(®) pods that must still be available after the eviction
751 ## @param pdb.maxUnavailable Maximum number/percentage of MongoDB(®) pods that may be made unavailable after the eviction. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
754## @section Traffic exposure parameters
760 ## @param service.nameOverride MongoDB(®) service name
763 ## @param service.type Kubernetes Service type (only for standalone architecture)
766 ## @param service.portName MongoDB(®) service port name (only for standalone architecture)
769 ## @param service.ports.mongodb MongoDB(®) service port.
773 ## @param service.nodePorts.mongodb Port to bind to for NodePort and LoadBalancer service types (only for standalone architecture)
774 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
778 ## @param service.clusterIP MongoDB(®) service cluster IP (only for standalone architecture)
783 ## @param service.externalIPs Specify the externalIP value ClusterIP service type (only for standalone architecture)
784 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
787 ## @param service.loadBalancerIP loadBalancerIP for MongoDB(®) Service (only for standalone architecture)
788 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
791 ## @param service.loadBalancerClass loadBalancerClass for MongoDB(®) Service (only for standalone architecture)
792 # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
793 loadBalancerClass: ""
794 ## @param service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer (only for standalone architecture)
795 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
797 loadBalancerSourceRanges: []
798 ## @param service.allocateLoadBalancerNodePorts Wheter to allocate node ports when service type is LoadBalancer
799 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
801 allocateLoadBalancerNodePorts: true
802 ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
805 ## @param service.annotations Provide any additional annotations that may be required
808 ## @param service.externalTrafficPolicy service external traffic policy (only for standalone architecture)
809 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
811 externalTrafficPolicy: Local
812 ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
813 ## Values: ClientIP or None
814 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
816 sessionAffinity: None
817 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
818 ## sessionAffinityConfig:
820 ## timeoutSeconds: 300
822 sessionAffinityConfig: {}
823 ## Headless service properties
826 ## @param service.headless.annotations Annotations for the headless service.
829 ## @param service.publishNotReadyAddresses Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready
830 ## ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/
832 publishNotReadyAddresses: false
833## External Access to MongoDB(®) nodes configuration
836 ## @param externalAccess.enabled Enable Kubernetes external cluster access to MongoDB(®) nodes (only for replicaset architecture)
839 ## External IPs auto-discovery configuration
840 ## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
841 ## Note: RBAC might be required
844 ## @param externalAccess.autoDiscovery.enabled Enable using an init container to auto-detect external IPs by querying the K8s API
847 ## Iamguarded Kubectl image
848 ## @param externalAccess.autoDiscovery.image.registry [default: REGISTRY_NAME] Init container auto-discovery image registry
849 ## @param externalAccess.autoDiscovery.image.repository [default: REPOSITORY_NAME/kubectl] Init container auto-discovery image repository
850 ## @skip externalAccess.autoDiscovery.image.tag Init container auto-discovery image tag (immutable tags are recommended)
851 ## @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
852 ## @param externalAccess.autoDiscovery.image.pullPolicy Init container auto-discovery image pull policy
853 ## @param externalAccess.autoDiscovery.image.pullSecrets Init container auto-discovery image pull secrets
857 repository: chainguard-private/kubectl-iamguarded
860 ## Specify a imagePullPolicy
861 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
863 pullPolicy: IfNotPresent
864 ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
865 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
868 ## - myRegistryKeySecretName
871 ## Init Container resource requests and limits
872 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
873 ## We usually recommend not to specify default resources and to leave this as a conscious
874 ## choice for the user. This also increases chances charts run on environments with little
875 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
876 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
877 ## @param externalAccess.autoDiscovery.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if externalAccess.autoDiscovery.resources is set (externalAccess.autoDiscovery.resources is recommended for production).
879 resourcesPreset: "nano"
880 ## @param externalAccess.autoDiscovery.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
891 ## Init container what mission is ensure public names can be resolved.
894 ## Iamguarded os-shell image
895 ## @param externalAccess.dnsCheck.image.registry [default: REGISTRY_NAME] Init container dns-check image registry
896 ## @param externalAccess.dnsCheck.image.repository [default: REPOSITORY_NAME/kubectl] Init container dns-check image repository
897 ## @skip externalAccess.dnsCheck.image.tag Init container dns-check image tag (immutable tags are recommended)
898 ## @param externalAccess.dnsCheck.image.digest Init container dns-check image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
899 ## @param externalAccess.dnsCheck.image.pullPolicy Init container dns-check image pull policy
900 ## @param externalAccess.dnsCheck.image.pullSecrets Init container dns-check image pull secrets
904 repository: chainguard-private/os-shell-iamguarded
907 ## Specify a imagePullPolicy
908 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
910 pullPolicy: IfNotPresent
911 ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
912 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
915 ## - myRegistryKeySecretName
918 ## Init Container resource requests and limits
919 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
920 ## We usually recommend not to specify default resources and to leave this as a conscious
921 ## choice for the user. This also increases chances charts run on environments with little
922 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
923 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
924 ## @param externalAccess.dnsCheck.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if externalAccess.autoDiscovery.resources is set (externalAccess.autoDiscovery.resources is recommended for production).
926 resourcesPreset: "nano"
927 ## @param externalAccess.dnsCheck.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
938 ## Parameters to configure a set of Pods that connect to an existing MongoDB(®) deployment that lies outside of Kubernetes.
939 ## @param externalAccess.externalMaster.enabled Use external master for bootstrapping
940 ## @param externalAccess.externalMaster.host External master host to bootstrap from
941 ## @param externalAccess.externalMaster.port Port for MongoDB(®) service external master host
947 ## Parameters to configure K8s service(s) used to externally access MongoDB(®)
948 ## A new service per broker will be created
951 ## @param externalAccess.service.type Kubernetes Service type for external access. Allowed values: NodePort, LoadBalancer or ClusterIP
954 ## @param externalAccess.service.portName MongoDB(®) port name used for external access when service type is LoadBalancer
957 ## @param externalAccess.service.ports.mongodb MongoDB(®) port used for external access when service type is LoadBalancer
961 ## @param externalAccess.service.loadBalancerIPs Array of load balancer IPs for MongoDB(®) nodes
968 ## @param externalAccess.service.publicNames Array of public names. The size should be equal to the number of replicas.
971 ## @param externalAccess.service.loadBalancerClass loadBalancerClass when service type is LoadBalancer
972 # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
973 loadBalancerClass: ""
974 ## @param externalAccess.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
975 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
977 ## loadBalancerSourceRanges:
980 loadBalancerSourceRanges: []
981 ## @param externalAccess.service.allocateLoadBalancerNodePorts Whether to allocate node ports when service type is LoadBalancer
982 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
984 allocateLoadBalancerNodePorts: true
985 ## @param externalAccess.service.externalTrafficPolicy MongoDB(®) service external traffic policy
986 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
988 externalTrafficPolicy: Local
989 ## @param externalAccess.service.nodePorts Array of node ports used to configure MongoDB(®) advertised hostname when service type is NodePort
996 ## @param externalAccess.service.domain Domain or external IP used to configure MongoDB(®) advertised hostname when service type is NodePort
997 ## If not specified, the container will try to get the kubernetes node external IP
999 ## domain: mydomain.com
1002 ## @param externalAccess.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1005 ## @param externalAccess.service.annotations Service annotations for external access. These annotations are common for all services created.
1008 ## @param externalAccess.service.annotationsList Service annotations for eache external service. This value contains a list allowing different annotations per each external service.
1011 ## - external-dns.alpha.kubernetes.io/hostname: mongodb-0.example.com
1012 ## - external-dns.alpha.kubernetes.io/hostname: mongodb-1.example.com
1015 ## @param externalAccess.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1016 ## Values: ClientIP or None
1017 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1019 sessionAffinity: None
1020 ## @param externalAccess.service.sessionAffinityConfig Additional settings for the sessionAffinity
1021 ## sessionAffinityConfig:
1023 ## timeoutSeconds: 300
1025 sessionAffinityConfig: {}
1026 ## External Access to MongoDB(®) Hidden nodes configuration
1029 ## @param externalAccess.hidden.enabled Enable Kubernetes external cluster access to MongoDB(®) hidden nodes
1032 ## Parameters to configure K8s service(s) used to externally access MongoDB(®)
1033 ## A new service per broker will be created
1036 ## @param externalAccess.hidden.service.type Kubernetes Service type for external access. Allowed values: NodePort or LoadBalancer
1039 ## @param externalAccess.hidden.service.portName MongoDB(®) port name used for external access when service type is LoadBalancer
1042 ## @param externalAccess.hidden.service.ports.mongodb MongoDB(®) port used for external access when service type is LoadBalancer
1046 ## @param externalAccess.hidden.service.loadBalancerIPs Array of load balancer IPs for MongoDB(®) nodes
1053 ## @param externalAccess.hidden.service.loadBalancerClass loadBalancerClass when service type is LoadBalancer
1054 # ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
1055 loadBalancerClass: ""
1056 ## @param externalAccess.hidden.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
1057 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1059 ## loadBalancerSourceRanges:
1062 loadBalancerSourceRanges: []
1063 ## @param externalAccess.hidden.service.allocateLoadBalancerNodePorts Wheter to allocate node ports when service type is LoadBalancer
1064 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
1066 allocateLoadBalancerNodePorts: true
1067 ## @param externalAccess.hidden.service.externalTrafficPolicy MongoDB(®) service external traffic policy
1068 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1070 externalTrafficPolicy: Local
1071 ## @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
1078 ## @param externalAccess.hidden.service.domain Domain or external IP used to configure MongoDB(®) advertised hostname when service type is NodePort
1079 ## If not specified, the container will try to get the kubernetes node external IP
1081 ## domain: mydomain.com
1084 ## @param externalAccess.hidden.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1087 ## @param externalAccess.hidden.service.annotations Service annotations for external access
1090 ## @param externalAccess.hidden.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1091 ## Values: ClientIP or None
1092 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1094 sessionAffinity: None
1095 ## @param externalAccess.hidden.service.sessionAffinityConfig Additional settings for the sessionAffinity
1096 ## sessionAffinityConfig:
1098 ## timeoutSeconds: 300
1100 sessionAffinityConfig: {}
1101## @section Password update job
1104 ## @param passwordUpdateJob.enabled Enable password update job
1107 ## @param passwordUpdateJob.backoffLimit set backoff limit of the job
1110 ## @param passwordUpdateJob.command Override default container command on mysql Primary container(s) (useful when using custom images)
1113 ## @param passwordUpdateJob.args Override default container args on mysql Primary container(s) (useful when using custom images)
1116 ## @param passwordUpdateJob.extraCommands Extra commands to pass to the generation job
1119 ## @param passwordUpdateJob.previousPasswords.rootPassword Previous root password (set if the password secret was already changed)
1120 ## @param passwordUpdateJob.previousPasswords.existingSecret Name of a secret containing the previous passwords (set if the password secret was already changed)
1124 ## Configure Container Security Context
1125 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1126 ## @param passwordUpdateJob.containerSecurityContext.enabled Enabled containers' Security Context
1127 ## @param passwordUpdateJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1128 ## @param passwordUpdateJob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1129 ## @param passwordUpdateJob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1130 ## @param passwordUpdateJob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1131 ## @param passwordUpdateJob.containerSecurityContext.privileged Set container's Security Context privileged
1132 ## @param passwordUpdateJob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1133 ## @param passwordUpdateJob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1134 ## @param passwordUpdateJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1135 ## @param passwordUpdateJob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1137 containerSecurityContext:
1144 readOnlyRootFilesystem: true
1145 allowPrivilegeEscalation: false
1149 type: "RuntimeDefault"
1150 ## Configure Pods Security Context
1151 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1152 ## @param passwordUpdateJob.podSecurityContext.enabled Enabled credential init job pods' Security Context
1153 ## @param passwordUpdateJob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1154 ## @param passwordUpdateJob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1155 ## @param passwordUpdateJob.podSecurityContext.supplementalGroups Set filesystem extra groups
1156 ## @param passwordUpdateJob.podSecurityContext.fsGroup Set credential init job pod's Security Context fsGroup
1160 fsGroupChangePolicy: Always
1162 supplementalGroups: []
1164 ## @param passwordUpdateJob.extraEnvVars Array containing extra env vars to configure the credential init job
1167 ## - name: GF_DEFAULT_INSTANCE_NAME
1168 ## value: my-instance
1171 ## @param passwordUpdateJob.extraEnvVarsCM ConfigMap containing extra env vars to configure the credential init job
1174 ## @param passwordUpdateJob.extraEnvVarsSecret Secret containing extra env vars to configure the credential init job (in case of sensitive data)
1176 extraEnvVarsSecret: ""
1177 ## @param passwordUpdateJob.extraVolumes Optionally specify extra list of additional volumes for the credential init job
1180 ## @param passwordUpdateJob.extraVolumeMounts Array of extra volume mounts to be added to the jwt Container (evaluated as template). Normally used with `extraVolumes`.
1182 extraVolumeMounts: []
1183 ## @param passwordUpdateJob.initContainers Add additional init containers for the mysql Primary pod(s)
1186 ## Container resource requests and limits
1187 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1188 ## @param passwordUpdateJob.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if passwordUpdateJob.resources is set (passwordUpdateJob.resources is recommended for production).
1190 resourcesPreset: "micro"
1191 ## @param passwordUpdateJob.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1202 ## @param passwordUpdateJob.customLivenessProbe Custom livenessProbe that overrides the default one
1204 customLivenessProbe: {}
1205 ## @param passwordUpdateJob.customReadinessProbe Custom readinessProbe that overrides the default one
1207 customReadinessProbe: {}
1208 ## @param passwordUpdateJob.customStartupProbe Custom startupProbe that overrides the default one
1210 customStartupProbe: {}
1211 ## @param passwordUpdateJob.automountServiceAccountToken Mount Service Account token in pod
1213 automountServiceAccountToken: false
1214 ## @param passwordUpdateJob.hostAliases Add deployment host aliases
1215 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1218 ## @param passwordUpdateJob.annotations [object] Add annotations to the job
1221 ## @param passwordUpdateJob.podLabels Additional pod labels
1222 ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1225 ## @param passwordUpdateJob.podAnnotations Additional pod annotations
1226 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1229## @section Network policy parameters
1233## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1236 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1239 ## @param networkPolicy.allowExternal Don't require server label for connections
1240 ## The Policy model to apply. When set to false, only pods with the correct
1241 ## server label will have network access to the ports server is listening
1242 ## on. When true, server will accept connections from any source
1243 ## (with the correct destination port).
1246 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1248 allowExternalEgress: true
1249 ## @param networkPolicy.addExternalClientAccess Allow access from pods with client label set to "true". Ignored if `networkPolicy.allowExternal` is true.
1251 addExternalClientAccess: true
1252 ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1262 ## - matchExpressions:
1268 ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1278 ## - matchExpressions:
1285 ## @param networkPolicy.ingressPodMatchLabels [object] Labels to match to allow traffic from other pods. Ignored if `networkPolicy.allowExternal` is true.
1287 ## ingressPodMatchLabels:
1288 ## my-client: "true"
1290 ingressPodMatchLabels: {}
1291 ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces. Ignored if `networkPolicy.allowExternal` is true.
1292 ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces. Ignored if `networkPolicy.allowExternal` is true.
1294 ingressNSMatchLabels: {}
1295 ingressNSPodMatchLabels: {}
1297 ## @param persistence.enabled Enable MongoDB(®) data persistence using PVC
1300 ## @param persistence.name Name of the PVC and mounted volume
1303 ## @param persistence.medium Provide a medium for `emptyDir` volumes.
1304 ## Requires persistence.enabled: false
1307 ## @param persistence.existingClaim Provide an existing `PersistentVolumeClaim` (only when `architecture=standalone`)
1308 ## Requires persistence.enabled: true
1309 ## If defined, PVC must be created manually before volume will be bound
1310 ## Ignored when mongodb.architecture=replicaset
1313 ## @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
1316 ## @param persistence.storageClass PVC Storage Class for MongoDB(®) data volume
1317 ## If defined, storageClassName: <storageClass>
1318 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1319 ## If undefined (the default) or set to null, no storageClassName spec is
1320 ## set, choosing the default provisioner.
1323 ## @param persistence.accessModes PV Access Mode
1327 ## @param persistence.size PVC Storage Request for MongoDB(®) data volume
1330 ## @param persistence.annotations PVC annotations
1333 ## @param persistence.labels PVC labels
1336 ## @param persistence.mountPath Path to mount the volume at
1337 ## MongoDB(®) images.
1339 mountPath: /iamguarded/mongodb
1340 ## @param persistence.subPath Subdirectory of the volume to mount at
1341 ## and one PV for multiple services.
1344 ## Fine tuning for volumeClaimTemplates
1346 volumeClaimTemplates:
1347 ## @param persistence.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
1348 ## A label query over volumes to consider for binding (e.g. when using local volumes)
1349 ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
1352 ## @param persistence.volumeClaimTemplates.requests Custom PVC requests attributes
1353 ## Sometime cloud providers use additional requests attributes to provision custom storage instance
1354 ## See https://cloud.ibm.com/docs/containers?topic=containers-file_storage#file_dynamic_statefulset
1357 ## @param persistence.volumeClaimTemplates.dataSource Add dataSource to the VolumeClaimTemplate
1360## Persistent Volume Claim Retention Policy
1361## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1363persistentVolumeClaimRetentionPolicy:
1364 ## @param persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for MongoDB(®) Statefulset
1367 ## @param persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1370 ## @param persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1373## @section Backup parameters
1374## This section implements a trivial logical dump cronjob of the database.
1375## This only comes with the consistency guarantees of the dump program.
1376## This is not a snapshot based roll forward/backward recovery backup.
1377## ref: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
1380 ## @param backup.enabled Enable the logical dump of the database "regularly"
1383 ## Fine tuning cronjob's config
1386 ## @param backup.cronjob.schedule Set the cronjob parameter schedule
1389 ## @param backup.cronjob.timeZone Set the cronjob parameter timeZone
1392 ## @param backup.cronjob.concurrencyPolicy Set the cronjob parameter concurrencyPolicy
1394 concurrencyPolicy: Allow
1395 ## @param backup.cronjob.failedJobsHistoryLimit Set the cronjob parameter failedJobsHistoryLimit
1397 failedJobsHistoryLimit: 1
1398 ## @param backup.cronjob.successfulJobsHistoryLimit Set the cronjob parameter successfulJobsHistoryLimit
1400 successfulJobsHistoryLimit: 3
1401 ## @param backup.cronjob.startingDeadlineSeconds Set the cronjob parameter startingDeadlineSeconds
1403 startingDeadlineSeconds: ""
1404 ## @param backup.cronjob.ttlSecondsAfterFinished Set the cronjob parameter ttlSecondsAfterFinished
1406 ttlSecondsAfterFinished: ""
1407 ## @param backup.cronjob.restartPolicy Set the cronjob parameter restartPolicy
1409 restartPolicy: OnFailure
1410 ## @param backup.cronjob.backoffLimit Set the cronjob parameter backoffLimit
1412 ## @param backup.cronjob.serviceAccount.name Set the cronjob parameter serviceAccountName. If you change from the default values make sure that the SA already exists.
1415 ## backup container's Security Context
1416 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1417 ## @param backup.cronjob.containerSecurityContext.enabled Enabled containers' Security Context
1418 ## @param backup.cronjob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1419 ## @param backup.cronjob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1420 ## @param backup.cronjob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1421 ## @param backup.cronjob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1422 ## @param backup.cronjob.containerSecurityContext.privileged Set container's Security Context privileged
1423 ## @param backup.cronjob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1424 ## @param backup.cronjob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1425 ## @param backup.cronjob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1426 ## @param backup.cronjob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1428 containerSecurityContext:
1435 readOnlyRootFilesystem: true
1436 allowPrivilegeEscalation: false
1440 type: "RuntimeDefault"
1441 ## backup container's resource requests and limits.
1442 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1443 ## We usually recommend not to specify default resources and to leave this as a conscious
1444 ## choice for the user. This also increases chances charts run on environments with little
1445 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1446 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1447 ## @param backup.cronjob.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
1449 resourcesPreset: "none"
1450 ## @param backup.cronjob.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1461 ## @param backup.cronjob.command Set backup container's command to run
1464 ## @param backup.cronjob.labels Set the cronjob labels
1467 ## @param backup.cronjob.annotations Set the cronjob annotations
1470 ## Backup container's
1473 ## @param backup.cronjob.storage.existingClaim Provide an existing `PersistentVolumeClaim` (only when `architecture=standalone`)
1474 ## If defined, PVC must be created manually before volume will be bound
1477 ## @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
1480 ## @param backup.cronjob.storage.storageClass PVC Storage Class for the backup data volume
1481 ## If defined, storageClassName: <storageClass>
1482 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1483 ## If undefined (the default) or set to null, no storageClassName spec is
1484 ## set, choosing the default provisioner.
1487 ## @param backup.cronjob.storage.accessModes PV Access Mode
1491 ## @param backup.cronjob.storage.size PVC Storage Request for the backup data volume
1494 ## @param backup.cronjob.storage.annotations PVC annotations
1497 ## @param backup.cronjob.storage.mountPath Path to mount the volume at
1499 mountPath: /backup/mongodb
1500 ## @param backup.cronjob.storage.subPath Subdirectory of the volume to mount at
1501 ## and one PV for multiple services.
1504 ## Fine tuning for volumeClaimTemplates
1506 volumeClaimTemplates:
1507 ## @param backup.cronjob.storage.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
1508 ## A label query over volumes to consider for binding (e.g. when using local volumes)
1509 ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
1512## @section RBAC parameters
1516## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1519 ## @param serviceAccount.create Enable creation of ServiceAccount for MongoDB(®) pods
1522 ## @param serviceAccount.name Name of the created serviceAccount
1523 ## If not set and create is true, a name is generated using the mongodb.fullname template
1526 ## @param serviceAccount.annotations Additional Service Account annotations
1529 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1530 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
1532 automountServiceAccountToken: false
1534## ref: https://kubernetes.io/docs/admin/authorization/rbac/
1537 ## @param rbac.create Whether to create & use RBAC resources or not
1538 ## binding MongoDB(®) ServiceAccount to a role
1539 ## that allows MongoDB(®) pods querying the K8s API
1540 ## this needs to be set to 'true' to enable the mongo-labeler sidecar primary mongodb discovery
1543 ## @param rbac.rules Custom rules to create following the role specification
1544 ## The example below needs to be uncommented to use the 'mongo-labeler' sidecar for dynamic discovery of the primary mongodb pod:
1557## PodSecurityPolicy configuration
1558## Be sure to also set rbac.create to true, otherwise Role and RoleBinding won't be created.
1559## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1562 ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1565 ## @param podSecurityPolicy.allowPrivilegeEscalation Enable privilege escalation
1566 ## Either use predefined policy with some adjustments or use `podSecurityPolicy.spec`
1568 allowPrivilegeEscalation: false
1569 ## @param podSecurityPolicy.privileged Allow privileged
1572 ## @param podSecurityPolicy.spec Specify the full spec to use for Pod Security Policy
1573 ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1574 ## Defining a spec ignores the above values.
1578 ## allowPrivilegeEscalation: false
1580 ## rule: 'MustRunAs'
1585 ## hostNetwork: false
1587 ## privileged: false
1588 ## readOnlyRootFilesystem: true
1589 ## requiredDropCapabilities:
1592 ## rule: 'MustRunAs'
1598 ## supplementalGroups:
1599 ## rule: 'MustRunAs'
1607 ## - 'persistentVolumeClaim'
1609## @section Volume Permissions parameters
1611## Init Container parameters
1612## Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each component
1613## values from the securityContext section of the component
1616 ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
1619 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
1620 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image repository
1621 ## @skip volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1622 ## @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
1623 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1624 ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array
1628 repository: chainguard-private/os-shell-iamguarded
1631 ## Specify a imagePullPolicy
1632 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1634 pullPolicy: IfNotPresent
1635 ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
1636 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1639 ## - myRegistryKeySecretName
1642 ## Init Container resource requests and limits
1643 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1644 ## We usually recommend not to specify default resources and to leave this as a conscious
1645 ## choice for the user. This also increases chances charts run on environments with little
1646 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1647 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1648 ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
1650 resourcesPreset: "nano"
1651 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1662 ## Init container Security Context
1663 ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1664 ## and not the below volumePermissions.securityContext.runAsUser
1665 ## When runAsUser is set to special value "auto", init container will try to chwon the
1666 ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
1667 ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
1668 ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
1669 ## podSecurityContext.enabled=false,containerSecurityContext.enabled=false and shmVolume.chmod.enabled=false
1670 ## @param volumePermissions.securityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1671 ## @param volumePermissions.securityContext.runAsUser User ID for the volumePermissions container
1676## @section Arbiter parameters
1679 ## @param arbiter.enabled Enable deploying the arbiter
1680 ## https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
1683 ## @param arbiter.automountServiceAccountToken Mount Service Account token in pod
1685 automountServiceAccountToken: false
1686 ## @param arbiter.hostAliases Add deployment host aliases
1687 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1690 ## @param arbiter.configuration Arbiter configuration file to be used
1691 ## http://docs.mongodb.org/manual/reference/configuration-options/
1694 ## @param arbiter.existingConfigmap Name of existing ConfigMap with Arbiter configuration
1695 ## NOTE: When it's set the arbiter.configuration parameter is ignored
1697 existingConfigmap: ""
1698 ## Command and args for running the container (set to default if not set). Use array form
1699 ## @param arbiter.command Override default container command (useful when using custom images)
1700 ## @param arbiter.args Override default container args (useful when using custom images)
1704 ## @param arbiter.extraFlags Arbiter additional command line flags
1707 ## - "--wiredTigerCacheSizeGB=2"
1710 ## @param arbiter.extraEnvVars Extra environment variables to add to Arbiter pods
1717 ## @param arbiter.extraEnvVarsCM Name of existing ConfigMap containing extra env vars
1720 ## @param arbiter.extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
1722 extraEnvVarsSecret: ""
1723 ## @param arbiter.annotations Additional labels to be added to the Arbiter statefulset
1726 ## @param arbiter.labels Annotations to be added to the Arbiter statefulset
1729 ## @param arbiter.topologySpreadConstraints MongoDB(®) Spread Constraints for arbiter Pods
1730 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
1732 topologySpreadConstraints: []
1733 ## @param arbiter.lifecycleHooks LifecycleHook for the Arbiter container to automate configuration before or after startup
1736 ## @param arbiter.terminationGracePeriodSeconds Arbiter Termination Grace Period
1738 terminationGracePeriodSeconds: ""
1739 ## @param arbiter.updateStrategy.type Strategy that will be employed to update Pods in the StatefulSet
1740 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1742 ## type: RollingUpdate
1745 ## maxUnavailable: 25%
1749 ## @param arbiter.podManagementPolicy Pod management policy for MongoDB(®)
1750 ## Should be initialized one by one when building the replicaset for the first time
1752 podManagementPolicy: OrderedReady
1753 ## @param arbiter.schedulerName Name of the scheduler (other than default) to dispatch pods
1754 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1757 ## @param arbiter.podAffinityPreset Arbiter Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1758 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1760 podAffinityPreset: ""
1761 ## @param arbiter.podAntiAffinityPreset Arbiter Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1762 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1764 podAntiAffinityPreset: soft
1765 ## Node affinity preset
1766 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1769 ## @param arbiter.nodeAffinityPreset.type Arbiter Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1772 ## @param arbiter.nodeAffinityPreset.key Arbiter Node label key to match Ignored if `affinity` is set.
1774 ## key: "kubernetes.io/e2e-az-name"
1777 ## @param arbiter.nodeAffinityPreset.values Arbiter Node label values to match. Ignored if `affinity` is set.
1784 ## @param arbiter.affinity Arbiter Affinity for pod assignment
1785 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1786 ## Note: arbiter.podAffinityPreset, arbiter.podAntiAffinityPreset, and arbiter.nodeAffinityPreset will be ignored when it's set
1789 ## @param arbiter.nodeSelector Arbiter Node labels for pod assignment
1790 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1793 ## @param arbiter.tolerations Arbiter Tolerations for pod assignment
1794 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1797 ## @param arbiter.podLabels Arbiter pod labels
1798 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1801 ## @param arbiter.podAnnotations Arbiter Pod annotations
1802 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1805 ## @param arbiter.priorityClassName Name of the existing priority class to be used by Arbiter pod(s)
1806 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1808 priorityClassName: ""
1809 ## @param arbiter.runtimeClassName Name of the runtime class to be used by Arbiter pod(s)
1810 ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
1812 runtimeClassName: ""
1813 ## MongoDB(®) Arbiter pods' Security Context.
1814 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1815 ## @param arbiter.podSecurityContext.enabled Enable Arbiter pod(s)' Security Context
1816 ## @param arbiter.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1817 ## @param arbiter.podSecurityContext.supplementalGroups Set filesystem extra groups
1818 ## @param arbiter.podSecurityContext.fsGroup Group ID for the volumes of the Arbiter pod(s)
1819 ## @param arbiter.podSecurityContext.sysctls sysctl settings of the Arbiter pod(s)'
1823 fsGroupChangePolicy: Always
1824 supplementalGroups: []
1829 ## - name: net.core.somaxconn
1833 ## MongoDB(®) Arbiter containers' Security Context (only main container).
1834 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1835 ## @param arbiter.containerSecurityContext.enabled Enabled containers' Security Context
1836 ## @param arbiter.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1837 ## @param arbiter.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1838 ## @param arbiter.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1839 ## @param arbiter.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1840 ## @param arbiter.containerSecurityContext.privileged Set container's Security Context privileged
1841 ## @param arbiter.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1842 ## @param arbiter.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1843 ## @param arbiter.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1844 ## @param arbiter.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1846 containerSecurityContext:
1853 readOnlyRootFilesystem: true
1854 allowPrivilegeEscalation: false
1858 type: "RuntimeDefault"
1859 ## MongoDB(®) Arbiter containers' resource requests and limits.
1860 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1861 ## We usually recommend not to specify default resources and to leave this as a conscious
1862 ## choice for the user. This also increases chances charts run on environments with little
1863 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1864 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1865 ## @param arbiter.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if arbiter.resources is set (arbiter.resources is recommended for production).
1867 resourcesPreset: "small"
1868 ## @param arbiter.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1879 ## @param arbiter.containerPorts.mongodb MongoDB(®) arbiter container port
1883 ## MongoDB(®) Arbiter pods' liveness probe. Evaluated as a template.
1884 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1885 ## @param arbiter.livenessProbe.enabled Enable livenessProbe
1886 ## @param arbiter.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1887 ## @param arbiter.livenessProbe.periodSeconds Period seconds for livenessProbe
1888 ## @param arbiter.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1889 ## @param arbiter.livenessProbe.failureThreshold Failure threshold for livenessProbe
1890 ## @param arbiter.livenessProbe.successThreshold Success threshold for livenessProbe
1894 initialDelaySeconds: 30
1899 ## MongoDB(®) Arbiter pods' readiness probe. Evaluated as a template.
1900 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1901 ## @param arbiter.readinessProbe.enabled Enable readinessProbe
1902 ## @param arbiter.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1903 ## @param arbiter.readinessProbe.periodSeconds Period seconds for readinessProbe
1904 ## @param arbiter.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1905 ## @param arbiter.readinessProbe.failureThreshold Failure threshold for readinessProbe
1906 ## @param arbiter.readinessProbe.successThreshold Success threshold for readinessProbe
1910 initialDelaySeconds: 5
1915 ## MongoDB(®) Arbiter pods' startup probe. Evaluated as a template.
1916 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
1917 ## @param arbiter.startupProbe.enabled Enable startupProbe
1918 ## @param arbiter.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1919 ## @param arbiter.startupProbe.periodSeconds Period seconds for startupProbe
1920 ## @param arbiter.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1921 ## @param arbiter.startupProbe.failureThreshold Failure threshold for startupProbe
1922 ## @param arbiter.startupProbe.successThreshold Success threshold for startupProbe
1926 initialDelaySeconds: 5
1930 failureThreshold: 30
1931 ## @param arbiter.customLivenessProbe Override default liveness probe for Arbiter containers
1932 ## Ignored when arbiter.livenessProbe.enabled=true
1934 customLivenessProbe: {}
1935 ## @param arbiter.customReadinessProbe Override default readiness probe for Arbiter containers
1936 ## Ignored when arbiter.readinessProbe.enabled=true
1938 customReadinessProbe: {}
1939 ## @param arbiter.customStartupProbe Override default startup probe for Arbiter containers
1940 ## Ignored when arbiter.startupProbe.enabled=true
1942 customStartupProbe: {}
1943 ## @param arbiter.initContainers Add additional init containers for the Arbiter pod(s)
1946 ## - name: your-image-name
1947 ## image: your-image
1948 ## imagePullPolicy: Always
1951 ## containerPort: 1234
1954 ## @param arbiter.sidecars Add additional sidecar containers for the Arbiter pod(s)
1957 ## - name: your-image-name
1958 ## image: your-image
1959 ## imagePullPolicy: Always
1962 ## containerPort: 1234
1965 ## @param arbiter.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Arbiter container(s)
1967 ## extraVolumeMounts:
1969 ## mountPath: /usr/share/extras
1972 extraVolumeMounts: []
1973 ## @param arbiter.extraVolumes Optionally specify extra list of additional volumes to the Arbiter statefulset
1979 ## MongoDB(®) Arbiter Pod Disruption Budget configuration
1980 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1983 ## @param arbiter.pdb.create Enable/disable a Pod Disruption Budget creation for Arbiter pod(s)
1986 ## @param arbiter.pdb.minAvailable Minimum number/percentage of Arbiter pods that should remain scheduled
1989 ## @param arbiter.pdb.maxUnavailable Maximum number/percentage of Arbiter pods that may be made unavailable. Defaults to `1` if both `arbiter.pdb.minAvailable` and `arbiter.pdb.maxUnavailable` are empty.
1992 ## MongoDB(®) Arbiter service parameters
1995 ## @param arbiter.service.nameOverride The arbiter service name
1998 ## @param arbiter.service.ports.mongodb MongoDB(®) service port
2002 ## @param arbiter.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2005 ## @param arbiter.service.annotations Provide any additional annotations that may be required
2008 ## Headless service properties
2011 ## @param arbiter.service.headless.annotations Annotations for the headless service.
2014## @section Hidden Node parameters
2017 ## @param hidden.enabled Enable deploying the hidden nodes
2018 ## https://docs.mongodb.com/manual/tutorial/configure-a-hidden-replica-set-member/
2021 ## @param hidden.automountServiceAccountToken Mount Service Account token in pod
2023 automountServiceAccountToken: false
2024 ## @param hidden.hostAliases Add deployment host aliases
2025 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2028 ## @param hidden.configuration Hidden node configuration file to be used
2029 ## http://docs.mongodb.org/manual/reference/configuration-options/
2032 ## @param hidden.existingConfigmap Name of existing ConfigMap with Hidden node configuration
2033 ## NOTE: When it's set the hidden.configuration parameter is ignored
2035 existingConfigmap: ""
2036 ## Command and args for running the container (set to default if not set). Use array form
2037 ## @param hidden.command Override default container command (useful when using custom images)
2038 ## @param hidden.args Override default container args (useful when using custom images)
2042 ## @param hidden.extraFlags Hidden node additional command line flags
2045 ## - "--wiredTigerCacheSizeGB=2"
2048 ## @param hidden.extraEnvVars Extra environment variables to add to Hidden node pods
2055 ## @param hidden.extraEnvVarsCM Name of existing ConfigMap containing extra env vars
2058 ## @param hidden.extraEnvVarsSecret Name of existing Secret containing extra env vars (in case of sensitive data)
2060 extraEnvVarsSecret: ""
2061 ## @param hidden.annotations Additional labels to be added to thehidden node statefulset
2064 ## @param hidden.labels Annotations to be added to the hidden node statefulset
2067 ## @param hidden.topologySpreadConstraints MongoDB(®) Spread Constraints for hidden Pods
2068 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
2070 topologySpreadConstraints: []
2071 ## @param hidden.lifecycleHooks LifecycleHook for the Hidden container to automate configuration before or after startup
2074 ## @param hidden.replicaCount Number of hidden nodes (only when `architecture=replicaset`)
2075 ## Ignored when mongodb.architecture=standalone
2078 ## @param hidden.terminationGracePeriodSeconds Hidden Termination Grace Period
2080 terminationGracePeriodSeconds: ""
2081 ## @param hidden.updateStrategy.type Strategy that will be employed to update Pods in the StatefulSet
2082 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2084 ## type: RollingUpdate
2087 ## maxUnavailable: 25%
2091 ## @param hidden.podManagementPolicy Pod management policy for hidden node
2093 podManagementPolicy: OrderedReady
2094 ## @param hidden.schedulerName Name of the scheduler (other than default) to dispatch pods
2095 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2098 ## @param hidden.podAffinityPreset Hidden node Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2099 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2101 podAffinityPreset: ""
2102 ## @param hidden.podAntiAffinityPreset Hidden node Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2103 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2105 podAntiAffinityPreset: soft
2106 ## Node affinity preset
2107 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2108 ## Allowed values: soft, hard
2111 ## @param hidden.nodeAffinityPreset.type Hidden Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
2114 ## @param hidden.nodeAffinityPreset.key Hidden Node label key to match Ignored if `affinity` is set.
2116 ## key: "kubernetes.io/e2e-az-name"
2119 ## @param hidden.nodeAffinityPreset.values Hidden Node label values to match. Ignored if `affinity` is set.
2126 ## @param hidden.affinity Hidden node Affinity for pod assignment
2127 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2128 ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
2131 ## @param hidden.nodeSelector Hidden node Node labels for pod assignment
2132 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2135 ## @param hidden.tolerations Hidden node Tolerations for pod assignment
2136 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2139 ## @param hidden.podLabels Hidden node pod labels
2140 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2143 ## @param hidden.podAnnotations Hidden node Pod annotations
2144 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2147 ## @param hidden.priorityClassName Name of the existing priority class to be used by hidden node pod(s)
2148 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2150 priorityClassName: ""
2151 ## @param hidden.runtimeClassName Name of the runtime class to be used by hidden node pod(s)
2152 ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
2154 runtimeClassName: ""
2155 ## MongoDB(®) Hidden pods' Security Context.
2156 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2157 ## @param hidden.podSecurityContext.enabled Enable Hidden pod(s)' Security Context
2158 ## @param hidden.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2159 ## @param hidden.podSecurityContext.supplementalGroups Set filesystem extra groups
2160 ## @param hidden.podSecurityContext.fsGroup Group ID for the volumes of the Hidden pod(s)
2161 ## @param hidden.podSecurityContext.sysctls sysctl settings of the Hidden pod(s)'
2165 fsGroupChangePolicy: Always
2166 supplementalGroups: []
2171 ## - name: net.core.somaxconn
2175 ## MongoDB(®) Hidden containers' Security Context (only main container).
2176 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2177 ## @param hidden.containerSecurityContext.enabled Enabled containers' Security Context
2178 ## @param hidden.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2179 ## @param hidden.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
2180 ## @param hidden.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
2181 ## @param hidden.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
2182 ## @param hidden.containerSecurityContext.privileged Set container's Security Context privileged
2183 ## @param hidden.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
2184 ## @param hidden.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
2185 ## @param hidden.containerSecurityContext.capabilities.drop List of capabilities to be dropped
2186 ## @param hidden.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
2188 containerSecurityContext:
2195 readOnlyRootFilesystem: true
2196 allowPrivilegeEscalation: false
2200 type: "RuntimeDefault"
2201 ## MongoDB(®) Hidden containers' resource requests and limits.
2202 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2203 ## We usually recommend not to specify default resources and to leave this as a conscious
2204 ## choice for the user. This also increases chances charts run on environments with little
2205 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2206 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2207 ## @param hidden.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if hidden.resources is set (hidden.resources is recommended for production).
2209 resourcesPreset: "micro"
2210 ## @param hidden.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2221 ## @param hidden.containerPorts.mongodb MongoDB(®) hidden container port
2225 ## MongoDB(®) Hidden pods' liveness probe. Evaluated as a template.
2226 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2227 ## @param hidden.livenessProbe.enabled Enable livenessProbe
2228 ## @param hidden.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2229 ## @param hidden.livenessProbe.periodSeconds Period seconds for livenessProbe
2230 ## @param hidden.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2231 ## @param hidden.livenessProbe.failureThreshold Failure threshold for livenessProbe
2232 ## @param hidden.livenessProbe.successThreshold Success threshold for livenessProbe
2236 initialDelaySeconds: 30
2241 ## MongoDB(®) Hidden pods' readiness probe. Evaluated as a template.
2242 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
2243 ## @param hidden.readinessProbe.enabled Enable readinessProbe
2244 ## @param hidden.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2245 ## @param hidden.readinessProbe.periodSeconds Period seconds for readinessProbe
2246 ## @param hidden.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2247 ## @param hidden.readinessProbe.failureThreshold Failure threshold for readinessProbe
2248 ## @param hidden.readinessProbe.successThreshold Success threshold for readinessProbe
2252 initialDelaySeconds: 5
2257 ## Slow starting containers can be protected through startup probes
2258 ## Startup probes are available in Kubernetes version 1.16 and above
2259 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
2260 ## @param hidden.startupProbe.enabled Enable startupProbe
2261 ## @param hidden.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2262 ## @param hidden.startupProbe.periodSeconds Period seconds for startupProbe
2263 ## @param hidden.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2264 ## @param hidden.startupProbe.failureThreshold Failure threshold for startupProbe
2265 ## @param hidden.startupProbe.successThreshold Success threshold for startupProbe
2269 initialDelaySeconds: 5
2273 failureThreshold: 30
2274 ## @param hidden.customLivenessProbe Override default liveness probe for hidden node containers
2275 ## Ignored when hidden.livenessProbe.enabled=true
2277 customLivenessProbe: {}
2278 ## @param hidden.customReadinessProbe Override default readiness probe for hidden node containers
2279 ## Ignored when hidden.readinessProbe.enabled=true
2281 customReadinessProbe: {}
2282 ## @param hidden.customStartupProbe Override default startup probe for MongoDB(®) containers
2283 ## Ignored when hidden.startupProbe.enabled=true
2285 customStartupProbe: {}
2286 ## @param hidden.initContainers Add init containers to the MongoDB(®) Hidden pods.
2289 ## - name: your-image-name
2290 ## image: your-image
2291 ## imagePullPolicy: Always
2294 ## containerPort: 1234
2297 ## @param hidden.sidecars Add additional sidecar containers for the hidden node pod(s)
2300 ## - name: your-image-name
2301 ## image: your-image
2302 ## imagePullPolicy: Always
2305 ## containerPort: 1234
2308 ## @param hidden.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the hidden node container(s)
2310 ## extraVolumeMounts:
2312 ## mountPath: /usr/share/extras
2315 extraVolumeMounts: []
2316 ## @param hidden.extraVolumes Optionally specify extra list of additional volumes to the hidden node statefulset
2322 ## MongoDB(®) Hidden Pod Disruption Budget configuration
2323 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2326 ## @param hidden.pdb.create Enable/disable a Pod Disruption Budget creation for hidden node pod(s)
2329 ## @param hidden.pdb.minAvailable Minimum number/percentage of hidden node pods that should remain scheduled
2332 ## @param hidden.pdb.maxUnavailable Maximum number/percentage of hidden node pods that may be made unavailable. Defaults to `1` if both `hidden.pdb.minAvailable` and `hidden.pdb.maxUnavailable` are empty.
2335 ## Enable persistence using Persistent Volume Claims
2336 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
2339 ## @param hidden.persistence.enabled Enable hidden node data persistence using PVC
2342 ## @param hidden.persistence.medium Provide a medium for `emptyDir` volumes.
2343 ## Requires hidden.persistence.enabled: false
2346 ## @param hidden.persistence.storageClass PVC Storage Class for hidden node data volume
2347 ## If defined, storageClassName: <storageClass>
2348 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2349 ## If undefined (the default) or set to null, no storageClassName spec is
2350 ## set, choosing the default provisioner.
2353 ## @param hidden.persistence.accessModes PV Access Mode
2357 ## @param hidden.persistence.size PVC Storage Request for hidden node data volume
2360 ## @param hidden.persistence.annotations PVC annotations
2363 ## @param hidden.persistence.mountPath The path the volume will be mounted at, useful when using different MongoDB(®) images.
2365 mountPath: /iamguarded/mongodb
2366 ## @param hidden.persistence.subPath The subdirectory of the volume to mount to, useful in dev environments
2367 ## and one PV for multiple services.
2370 ## Fine tuning for volumeClaimTemplates
2372 volumeClaimTemplates:
2373 ## @param hidden.persistence.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
2374 ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
2377 ## @param hidden.persistence.volumeClaimTemplates.requests Custom PVC requests attributes
2378 ## Sometime cloud providers use additional requests attributes to provision custom storage instance
2379 ## See https://cloud.ibm.com/docs/containers?topic=containers-file_storage#file_dynamic_statefulset
2382 ## @param hidden.persistence.volumeClaimTemplates.dataSource Set volumeClaimTemplate dataSource
2386 ## @param hidden.service.nameOverride The hidden service name
2389 ## @param hidden.service.portName MongoDB(®) service port name
2392 ## @param hidden.service.ports.mongodb MongoDB(®) service port
2396 ## @param hidden.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2399 ## @param hidden.service.annotations Provide any additional annotations that may be required
2402 ## Headless service properties
2405 ## @param hidden.service.headless.annotations Annotations for the headless service.
2408## @section Metrics parameters
2411 ## @param metrics.enabled Enable using a sidecar Prometheus exporter
2414 ## Iamguarded MongoDB(®) Promtheus Exporter image
2415 ## @param metrics.image.registry [default: REGISTRY_NAME] MongoDB(®) Prometheus exporter image registry
2416 ## @param metrics.image.repository [default: REPOSITORY_NAME/mongodb-exporter] MongoDB(®) Prometheus exporter image repository
2417 ## @skip metrics.image.tag MongoDB(®) Prometheus exporter image tag (immutable tags are recommended)
2418 ## @param metrics.image.digest MongoDB(®) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2419 ## @param metrics.image.pullPolicy MongoDB(®) Prometheus exporter image pull policy
2420 ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
2424 repository: chainguard-private/prometheus-mongodb-exporter-iamguarded
2427 pullPolicy: IfNotPresent
2428 ## Optionally specify an array of imagePullSecrets.
2429 ## Secrets must be manually created in the namespace.
2430 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2433 ## - myRegistryKeySecretName
2436 ## @param metrics.username String with username for the metrics exporter
2437 ## If undefined the root user will be used for the metrics exporter
2440 ## @param metrics.password String with password for the metrics exporter
2441 ## If undefined but metrics.username is defined, a random password will be generated
2444 ## @param metrics.compatibleMode Enables old style mongodb-exporter metrics
2445 compatibleMode: true
2447 ## @param metrics.collector.all Enable all collectors. Same as enabling all individual metrics
2448 ## Enabling all metrics will cause significant CPU load on mongod
2450 ## @param metrics.collector.diagnosticdata Boolean Enable collecting metrics from getDiagnosticData
2451 diagnosticdata: true
2452 ## @param metrics.collector.replicasetstatus Boolean Enable collecting metrics from replSetGetStatus
2453 replicasetstatus: true
2454 ## @param metrics.collector.dbstats Boolean Enable collecting metrics from dbStats
2456 ## @param metrics.collector.topmetrics Boolean Enable collecting metrics from top admin command
2458 ## @param metrics.collector.indexstats Boolean Enable collecting metrics from $indexStats
2460 ## @param metrics.collector.collstats Boolean Enable collecting metrics from $collStats
2462 ## @param metrics.collector.collstatsColls List of \<databases\>.\<collections\> to get $collStats
2464 ## @param metrics.collector.indexstatsColls List - List of \<databases\>.\<collections\> to get $indexStats
2466 ## @param metrics.collector.collstatsLimit Number - Disable collstats, dbstats, topmetrics and indexstats collector if there are more than \<n\> collections. 0=No limit
2468 ## @param metrics.extraFlags String with extra flags to the metrics exporter
2469 ## ref: https://github.com/percona/mongodb_exporter/blob/main/main.go
2472 ## Command and args for running the container (set to default if not set). Use array form
2473 ## @param metrics.command Override default container command (useful when using custom images)
2474 ## @param metrics.args Override default container args (useful when using custom images)
2478 ## Metrics exporter container resource requests and limits
2479 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2480 ## We usually recommend not to specify default resources and to leave this as a conscious
2481 ## choice for the user. This also increases chances charts run on environments with little
2482 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
2483 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
2484 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
2486 resourcesPreset: "nano"
2487 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2498 ## @param metrics.containerPort Port of the Prometheus metrics container
2501 ## Prometheus Exporter service configuration
2504 ## @param metrics.service.annotations [object] Annotations for Prometheus Exporter pods. Evaluated as a template.
2505 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2508 prometheus.io/scrape: "true"
2509 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
2510 prometheus.io/path: "/metrics"
2511 ## @param metrics.service.type Type of the Prometheus metrics service
2514 ## @param metrics.service.ports.metrics Port of the Prometheus metrics service
2518 ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
2521 ## Metrics exporter liveness probe
2522 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
2523 ## @param metrics.livenessProbe.enabled Enable livenessProbe
2524 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2525 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
2526 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2527 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
2528 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
2532 initialDelaySeconds: 15
2537 ## Metrics exporter readiness probe
2538 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
2539 ## @param metrics.readinessProbe.enabled Enable readinessProbe
2540 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2541 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
2542 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2543 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
2544 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
2548 initialDelaySeconds: 5
2553 ## Slow starting containers can be protected through startup probes
2554 ## Startup probes are available in Kubernetes version 1.16 and above
2555 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes
2556 ## @param metrics.startupProbe.enabled Enable startupProbe
2557 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2558 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
2559 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2560 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
2561 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
2565 initialDelaySeconds: 5
2569 failureThreshold: 30
2570 ## @param metrics.customLivenessProbe Override default liveness probe for MongoDB(®) containers
2571 ## Ignored when livenessProbe.enabled=true
2573 customLivenessProbe: {}
2574 ## @param metrics.customReadinessProbe Override default readiness probe for MongoDB(®) containers
2575 ## Ignored when readinessProbe.enabled=true
2577 customReadinessProbe: {}
2578 ## @param metrics.customStartupProbe Override default startup probe for MongoDB(®) containers
2579 ## Ignored when startupProbe.enabled=true
2581 customStartupProbe: {}
2582 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the metrics container(s)
2584 ## extraVolumeMounts:
2586 ## mountPath: /usr/share/extras
2589 extraVolumeMounts: []
2590 ## Prometheus Service Monitor
2591 ## ref: https://github.com/coreos/prometheus-operator
2592 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md
2595 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
2598 ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in
2601 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
2604 ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
2606 ## scrapeTimeout: 30s
2609 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping.
2612 ## @param metrics.serviceMonitor.metricRelabelings MetricsRelabelConfigs to apply to samples before ingestion.
2614 metricRelabelings: []
2615 ## @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
2616 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
2619 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
2622 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2625 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2628 ## Custom PrometheusRule to be defined
2629 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
2632 ## @param metrics.prometheusRule.enabled Set this to true to create prometheusRules for Prometheus operator
2635 ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so prometheusRules will be discovered by Prometheus
2637 additionalLabels: {}
2638 ## @param metrics.prometheusRule.namespace Namespace where prometheusRules resource should be created
2641 ## @param metrics.prometheusRule.rules Rules to be created, check values for an example
2642 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#rulegroup
2643 ## https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
2645 ## This is an example of a rule, you should add the below code block under the "rules" param, removing the brackets
2647 ## - alert: HighRequestLatency
2648 ## expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
2653 ## summary: High request latency