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
25 ## - myRegistryKeySecretName
28 defaultStorageClass: ""
30 ## Security parameters
33 ## @param global.security.allowInsecureImages Allows skipping image verification
34 allowInsecureImages: false
35 ## Compatibility adaptations for Kubernetes platforms
38 ## Compatibility adaptations for Openshift
41 ## @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)
43 adaptSecurityContext: auto
45## @section Common parameters
48## @param kubeVersion Override Kubernetes version
51## @param nameOverride String to partially override common.names.name
54## @param fullnameOverride String to fully override common.names.fullname
57## @param namespaceOverride String to fully override common.names.namespace
60## @param commonLabels Labels to add to all deployed objects
63## @param commonAnnotations Annotations to add to all deployed objects
66## @param clusterDomain Kubernetes cluster domain name
68clusterDomain: cluster.local
69## @param extraDeploy Array of extra objects to deploy with the release
72## Enable diagnostic mode in the deployment
75 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
78 ## @param diagnosticMode.command Command to override all containers in the deployment
82 ## @param diagnosticMode.args Args to override all containers in the deployment
86## @section MongoDB(®) Sharded parameters
89## Iamguarded MongoDB(®) Sharded image version
90## @param image.registry [default: REGISTRY_NAME] MongoDB(®) Sharded image registry
91## @param image.repository [default: REPOSITORY_NAME/mongodb-sharded] MongoDB(®) Sharded Image name
92## @skip image.tag MongoDB(®) Sharded image tag (immutable tags are recommended)
93## @param image.digest MongoDB(®) Sharded image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
94## @param image.pullPolicy MongoDB(®) Sharded image pull policy
95## @param image.pullSecrets Specify docker-registry secret names as an array
96## @param image.debug Specify if debug logs should be enabled
100 repository: chainguard-private/mongodb-sharded-iamguarded
103 ## Specify a imagePullPolicy
104 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
106 pullPolicy: IfNotPresent
107 ## Optionally specify an array of imagePullSecrets.
108 ## Secrets must be manually created in the namespace.
109 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
112 ## - myRegistryKeySecretName
115 ## Set to true if you would like to see extra information on logs
118## MongoDB(®) Authentication parameters
121 ## @param auth.enabled Enable authentication
122 ## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/
125 ## @param auth.rootUser MongoDB(®) root user
128 ## @param auth.rootPassword MongoDB(®) root password
131 ## @param auth.replicaSetKey Key used for authentication in the replicaset
134 ## @param auth.existingSecret Existing secret with MongoDB(®) credentials (keys: `mongodb-password`, `mongodb-root-password`, `mongodb-replica-set-key`)
135 ## NOTE: When it's set the previous parameters are ignored.
138 ## @param auth.usePasswordFiles Mount credentials as files instead of using environment variables
140 usePasswordFiles: true
141## @param shards Number of shards to be created
142## ref: https://docs.mongodb.com/manual/core/sharded-cluster-shards/
145## Properties for all of the pods in the cluster (shards, config servers and mongos)
148 ## @param common.mongodbEnableNumactl Enable launch MongoDB instance prefixed with "numactl --interleave=all"
149 ## ref: https://docs.mongodb.com/manual/administration/production-notes/#mongodb-and-numa-hardware
151 mongodbEnableNumactl: false
152 ## @param common.useHostnames Enable DNS hostnames in the replica set config
155 ## @param common.mongodbEnableIPv6 Switch to enable/disable IPv6 on MongoDB®
157 mongodbEnableIPv6: false
158 ## @param common.mongodbDirectoryPerDB Switch to enable/disable DirectoryPerDB on MongoDB®
160 mongodbDirectoryPerDB: false
161 ## @param common.mongodbSystemLogVerbosity MongoDB® system log verbosity level
162 ## ref: https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-ipv6
164 mongodbSystemLogVerbosity: 0
165 ## @param common.mongodbDisableSystemLog Whether to disable MongoDB® system log or not
167 mongodbDisableSystemLog: false
168 ## @param common.mongodbInitRetryAttempts Maximum retries for checking the MongoDB® initialization status
170 mongodbInitRetryAttempts: 24
171 ## @param common.mongodbInitRetryDelay Time (in seconds) to wait between retries for checking the MongoDB® initialization status
173 mongodbInitRetryDelay: 5
174 ## @param common.initScriptsCM Configmap with init scripts to execute
177 ## @param common.initScriptsSecret Secret with init scripts to execute (for sensitive data)
179 initScriptsSecret: ""
180 ## @param common.extraEnvVars An array to add extra env vars
183 ## - name: KIBANA_ELASTICSEARCH_URL
187 ## @param common.extraEnvVarsCM Name of a ConfigMap containing extra env vars
190 ## @param common.extraEnvVarsSecret Name of a Secret containing extra env vars
192 extraEnvVarsSecret: ""
193 ## @param common.sidecars Add sidecars to the pod
196 ## - name: your-image-name
198 ## imagePullPolicy: Always
201 ## containerPort: 1234
204 ## @param common.initContainers Add init containers to the pod
207 ## - name: your-image-name
209 ## imagePullPolicy: Always
212 ## @param common.podAnnotations Additional pod annotations
213 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
216 ## @param common.podLabels Additional pod labels
217 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
220 ## @param common.extraVolumes Array to add extra volumes
223 ## @param common.extraVolumeMounts Array to add extra mounts (normally used with extraVolumes)
225 extraVolumeMounts: []
226 ## @param common.containerPorts.mongodb MongoDB container port
230 ## K8s Service Account.
231 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
234 ## @param common.serviceAccount.create Whether to create a Service Account for all pods automatically
237 ## @param common.serviceAccount.name Name of a Service Account to be used by all Pods
238 ## If not set and create is true, a name is generated using the XXX.fullname template
241 ## @param common.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
244 ## @param common.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
246 automountServiceAccountToken: false
247## Init containers parameters:
248## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
251 ## @param volumePermissions.enabled Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work)
254 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
255 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image name
256 ## @skip volumePermissions.image.tag Init container volume-permissions image tag
257 ## @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
258 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
259 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
263 repository: chainguard-private/os-shell-iamguarded
266 pullPolicy: IfNotPresent
267 ## Optionally specify an array of imagePullSecrets.
268 ## Secrets must be manually created in the namespace.
269 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
272 ## - myRegistryKeySecretName
275 ## @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).
277 resourcesPreset: "nano"
278 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
289## Kubernetes service type
290## ref: https://kubernetes.io/docs/concepts/services-networking/service/
293 ## @param service.name Specify an explicit service name
296 ## @param service.annotations Additional service annotations (evaluate as a template)
297 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
300 ## @param service.type Service type
301 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
304 ## @param service.externalTrafficPolicy External traffic policy
305 ## Enable client source IP preservation
306 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
308 externalTrafficPolicy: Cluster
309 ## @param service.ports.mongodb MongoDB® service port
313 ## @param service.clusterIP Static clusterIP or None for headless services
314 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#servicespec-v1-core
317 ## @param service.nodePorts.mongodb Specify the nodePort value for the LoadBalancer and NodePort service types.
318 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
322 ## @param service.nodePorts.metrics Specify the metrics nodePort value for the LoadBalancer and NodePort service types.
325 ## @param service.externalIPs External IP list to use with ClusterIP service type
326 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
329 ## @param service.loadBalancerIP Static IP Address to use for LoadBalancer service type
330 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
333 ## @param service.loadBalancerSourceRanges List of IP ranges allowed access to load balancer (if supported)
334 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
336 loadBalancerSourceRanges: []
337 ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
340 ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
341 ## If "ClientIP", consecutive client requests will be directed to the same mongos Pod
342 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
344 sessionAffinity: None
345 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
346 ## sessionAffinityConfig:
348 ## timeoutSeconds: 300
350 sessionAffinityConfig: {}
351 ## Headless service properties
354 ## @param service.headless.annotations Annotations for the headless service.
358## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
361 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
364 ## @param networkPolicy.allowExternal Don't require server label for connections
365 ## The Policy model to apply. When set to false, only pods with the correct
366 ## server label will have network access to the ports server is listening
367 ## on. When true, server will accept connections from any source
368 ## (with the correct destination port).
371 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
373 allowExternalEgress: true
374 ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
384 ## - matchExpressions:
390 ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
400 ## - matchExpressions:
407 ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
408 ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
410 ingressNSMatchLabels: {}
411 ingressNSPodMatchLabels: {}
412## @section Config Server parameters
415## Config Server replica set properties
416## ref: https://docs.mongodb.com/manual/core/sharded-cluster-config-servers/
419 ## @param configsvr.replicaCount Number of nodes in the replica set (the first node will be primary)
422 ## @param configsvr.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if configsvr.resources is set (configsvr.resources is recommended for production).
424 resourcesPreset: "small"
425 ## @param configsvr.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
434 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
437 ## @param configsvr.automountServiceAccountToken Mount Service Account token in pod
439 automountServiceAccountToken: false
440 ## @param configsvr.hostAliases Deployment pod host aliases
441 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
444 ## @param configsvr.mongodbExtraFlags MongoDB® additional command line flags
445 ## Can be used to specify command line flags, for example:
446 ## mongodbExtraFlags:
447 ## - "--wiredTigerCacheSizeGB=2"
449 mongodbExtraFlags: []
450 ## @param configsvr.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
451 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
453 topologySpreadConstraints: []
454 ## @param configsvr.priorityClassName Pod priority class name
455 ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
457 priorityClassName: ""
458 ## @param configsvr.podAffinityPreset Config Server Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
459 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
461 podAffinityPreset: ""
462 ## @param configsvr.podAntiAffinityPreset Config Server Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
463 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
465 podAntiAffinityPreset: soft
466 ## Node affinity preset
467 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
470 ## @param configsvr.nodeAffinityPreset.type Config Server Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
473 ## @param configsvr.nodeAffinityPreset.key Config Server Node label key to match Ignored if `affinity` is set.
475 ## key: "kubernetes.io/e2e-az-name"
478 ## @param configsvr.nodeAffinityPreset.values Config Server Node label values to match. Ignored if `affinity` is set.
485 ## @param configsvr.affinity Config Server Affinity for pod assignment
486 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
487 ## Note: configsvr.podAffinityPreset, configsvr.podAntiAffinityPreset, and configsvr.nodeAffinityPreset will be ignored when it's set
490 ## @param configsvr.nodeSelector Config Server Node labels for pod assignment
491 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
494 ## @param configsvr.tolerations Config Server Tolerations for pod assignment
495 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
498 ## @param configsvr.podManagementPolicy Statefulset's pod management policy, allows parallel startup of pods
499 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
501 podManagementPolicy: OrderedReady
502 ## @param configsvr.updateStrategy.type updateStrategy for MongoDB® Primary, Secondary and Arbiter statefulsets
503 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
507 ## @param configsvr.config MongoDB® configuration file
508 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
511 ## @param configsvr.configCM ConfigMap name with Config Server configuration file (cannot be used with configsvr.config)
512 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
515 ## @param configsvr.extraEnvVars An array to add extra env vars
518 ## - name: KIBANA_ELASTICSEARCH_URL
522 ## @param configsvr.extraEnvVarsCM Name of a ConfigMap containing extra env vars
525 ## @param configsvr.extraEnvVarsSecret Name of a Secret containing extra env vars
527 extraEnvVarsSecret: ""
528 ## @param configsvr.sidecars Add sidecars to the pod
531 ## - name: your-image-name
533 ## imagePullPolicy: Always
536 ## containerPort: 1234
539 ## @param configsvr.initContainers Add init containers to the pod
542 ## - name: your-image-name
544 ## imagePullPolicy: Always
547 ## @param configsvr.podAnnotations Additional pod annotations
548 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
551 ## @param configsvr.podLabels Additional pod labels
552 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
555 ## @param configsvr.extraVolumes Array to add extra volumes. Requires setting `extraVolumeMounts`
558 ## @param configsvr.extraVolumeMounts Array to add extra mounts (normally used with extraVolumes). Normally used with `extraVolumes`
560 extraVolumeMounts: []
561 ## @param configsvr.schedulerName Use an alternate scheduler, e.g. "stork".
562 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
565 ## Pod disruption budget
568 ## @param configsvr.pdb.create Enable pod disruption budget
571 ## @param configsvr.pdb.minAvailable Minimum number of available config pods allowed (`0` to disable)
574 ## @param configsvr.pdb.maxUnavailable Maximum number of unavailable config pods allowed (`0` to disable)
577 ## Enable persistence using Persistent Volume Claims
578 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
581 ## @param configsvr.persistence.enabled Use a PVC to persist data
584 ## @param configsvr.persistence.mountPath Path to mount the volume at
585 ## MongoDB® images.
587 mountPath: /iamguarded/mongodb
588 ## @param configsvr.persistence.subPath Subdirectory of the volume to mount at (evaluated as a template)
589 ## Useful in dev environments and one PV for multiple services.
592 ## @param configsvr.persistence.storageClass Storage class of backing PVC
593 ## If defined, storageClassName: <storageClass>
594 ## If set to "-", storageClassName: "", which disables dynamic provisioning
595 ## If undefined (the default) or set to null, no storageClassName spec is
596 ## set, choosing the default provisioner. (gp2 on AWS, standard on
597 ## GKE, AWS & OpenStack)
600 ## @param configsvr.persistence.accessModes Use volume as ReadOnly or ReadWrite
604 ## @param configsvr.persistence.size PersistentVolumeClaim size
607 ## @param configsvr.persistence.annotations Persistent Volume annotations
608 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
611 ## @param configsvr.persistence.selector Selector to match an existing Persistent Volume for Config Server data PVC
612 ## A label query over volumes to consider for binding (e.g. when using local volumes)
615 ## Persistent Volume Claim Retention Policy
616 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
618 persistentVolumeClaimRetentionPolicy:
619 ## @param configsvr.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for Config Server StatefulSet
622 ## @param configsvr.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
625 ## @param configsvr.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
628 ## K8s Service Account.
629 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
632 ## @param configsvr.serviceAccount.create Specifies whether a ServiceAccount should be created for Config Server
635 ## @param configsvr.serviceAccount.name Name of a Service Account to be used by Config Server
636 ## If not set and create is true, a name is generated using the XXX.fullname template
639 ## @param configsvr.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
642 ## @param configsvr.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
644 automountServiceAccountToken: false
645 ## Use a external config server instead of deploying one
648 ## @param configsvr.external.host Primary node of an external Config Server replicaset
651 ## @param configsvr.external.rootPassword Root password of the external Config Server replicaset
654 ## @param configsvr.external.replicasetName Replicaset name of an external Config Server
657 ## @param configsvr.external.replicasetKey Replicaset key of an external Config Server
660 ## Configure Pods Security Context
661 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
662 ## @param configsvr.podSecurityContext.enabled Enable security context
663 ## @param configsvr.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
664 ## @param configsvr.podSecurityContext.sysctls Set kernel settings using the sysctl interface
665 ## @param configsvr.podSecurityContext.supplementalGroups Set filesystem extra groups
666 ## @param configsvr.podSecurityContext.fsGroup Group ID for the container
670 fsGroupChangePolicy: Always
672 supplementalGroups: []
674 ## Configure Container Security Context
675 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
676 ## @param configsvr.containerSecurityContext.enabled Enabled containers' Security Context
677 ## @param configsvr.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
678 ## @param configsvr.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
679 ## @param configsvr.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
680 ## @param configsvr.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
681 ## @param configsvr.containerSecurityContext.privileged Set container's Security Context privileged
682 ## @param configsvr.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
683 ## @param configsvr.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
684 ## @param configsvr.containerSecurityContext.capabilities.drop List of capabilities to be dropped
685 ## @param configsvr.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
687 containerSecurityContext:
694 readOnlyRootFilesystem: true
695 allowPrivilegeEscalation: false
699 type: "RuntimeDefault"
700 ## @param configsvr.command Override default container command (useful when using custom images)
704 - /entrypoint/replicaset-entrypoint.sh
705 ## @param configsvr.args Override default container args (useful when using custom images)
708 ## @param configsvr.terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
709 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
711 terminationGracePeriodSeconds: ""
712 ## @param configsvr.lifecycleHooks for the Config Server container(s) to automate configuration before or after startup
715 ## Configure extra options for liveness probes
716 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
717 ## @param configsvr.livenessProbe.enabled Enable livenessProbe
718 ## @param configsvr.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
719 ## @param configsvr.livenessProbe.periodSeconds Period seconds for livenessProbe
720 ## @param configsvr.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
721 ## @param configsvr.livenessProbe.failureThreshold Failure threshold for livenessProbe
722 ## @param configsvr.livenessProbe.successThreshold Success threshold for livenessProbe
726 initialDelaySeconds: 60
731 ## Configure extra options for readiness probe
732 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
733 ## @param configsvr.readinessProbe.enabled Enable readinessProbe
734 ## @param configsvr.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
735 ## @param configsvr.readinessProbe.periodSeconds Period seconds for readinessProbe
736 ## @param configsvr.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
737 ## @param configsvr.readinessProbe.failureThreshold Failure threshold for readinessProbe
738 ## @param configsvr.readinessProbe.successThreshold Success threshold for readinessProbe
742 initialDelaySeconds: 10
747 ## Configure extra options for startup probe
748 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
749 ## @param configsvr.startupProbe.enabled Enable startupProbe
750 ## @param configsvr.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
751 ## @param configsvr.startupProbe.periodSeconds Period seconds for startupProbe
752 ## @param configsvr.startupProbe.timeoutSeconds Timeout seconds for startupProbe
753 ## @param configsvr.startupProbe.failureThreshold Failure threshold for startupProbe
754 ## @param configsvr.startupProbe.successThreshold Success threshold for startupProbe
758 initialDelaySeconds: 0
763 ## @param configsvr.customLivenessProbe Custom livenessProbe that overrides the default one
765 customLivenessProbe: {}
766 ## @param configsvr.customReadinessProbe Custom readinessProbe that overrides the default one
768 customReadinessProbe: {}
769 ## @param configsvr.customStartupProbe Custom startupProbe that overrides the default one
771 customStartupProbe: {}
772## @section Mongos parameters
776## ref: https://docs.mongodb.com/manual/reference/program/mongos/#bin.mongos
779 ## @param mongos.replicaCount Number of replicas
782 ## @param mongos.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if mongos.resources is set (mongos.resources is recommended for production).
784 resourcesPreset: "small"
785 ## @param mongos.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
794 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
797 ## @param mongos.automountServiceAccountToken Mount Service Account token in pod
799 automountServiceAccountToken: false
800 ## @param mongos.hostAliases Deployment pod host aliases
801 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
804 ## @param mongos.mongodbExtraFlags MongoDB® additional command line flags
805 ## Can be used to specify command line flags, for example:
806 ## mongodbExtraFlags:
807 ## - "--wiredTigerCacheSizeGB=2"
809 mongodbExtraFlags: []
810 ## @param mongos.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
811 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
813 topologySpreadConstraints: []
814 ## @param mongos.priorityClassName Pod priority class name
815 ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
817 priorityClassName: ""
818 ## @param mongos.podAffinityPreset Mongos Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
819 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
821 podAffinityPreset: ""
822 ## @param mongos.podAntiAffinityPreset Mongos Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
823 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
825 podAntiAffinityPreset: soft
826 ## Node affinity preset
827 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
830 ## @param mongos.nodeAffinityPreset.type Mongos Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
833 ## @param mongos.nodeAffinityPreset.key Mongos Node label key to match Ignored if `affinity` is set.
835 ## key: "kubernetes.io/e2e-az-name"
838 ## @param mongos.nodeAffinityPreset.values Mongos Node label values to match. Ignored if `affinity` is set.
845 ## @param mongos.affinity Mongos Affinity for pod assignment
846 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
847 ## Note: mongos.podAffinityPreset, mongos.podAntiAffinityPreset, and mongos.nodeAffinityPreset will be ignored when it's set
850 ## @param mongos.nodeSelector Mongos Node labels for pod assignment
851 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
854 ## @param mongos.tolerations Mongos Tolerations for pod assignment
855 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
858 ## @param mongos.podManagementPolicy Statefulsets pod management policy, allows parallel startup of pods
859 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
861 podManagementPolicy: OrderedReady
862 ## @param mongos.updateStrategy.type updateStrategy for MongoDB® Primary, Secondary and Arbiter statefulsets
863 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
867 ## @param mongos.config MongoDB® configuration file
868 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
871 ## @param mongos.configCM ConfigMap name with MongoDB® configuration file (cannot be used with mongos.config)
872 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
875 ## @param mongos.extraEnvVars An array to add extra env vars
878 ## - name: KIBANA_ELASTICSEARCH_URL
882 ## @param mongos.extraEnvVarsCM Name of a ConfigMap containing extra env vars
885 ## @param mongos.extraEnvVarsSecret Name of a Secret containing extra env vars
887 extraEnvVarsSecret: ""
888 ## @param mongos.sidecars Add sidecars to the pod
891 ## - name: your-image-name
893 ## imagePullPolicy: Always
896 ## containerPort: 1234
899 ## @param mongos.initContainers Add init containers to the pod
902 ## - name: your-image-name
904 ## imagePullPolicy: Always
907 ## @param mongos.podAnnotations Additional pod annotations
908 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
911 ## @param mongos.podLabels Additional pod labels
912 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
915 ## @param mongos.extraVolumes Array to add extra volumes. Requires setting `extraVolumeMounts`
918 ## @param mongos.extraVolumeMounts Array to add extra volume mounts. Normally used with `extraVolumes`.
920 extraVolumeMounts: []
921 ## @param mongos.schedulerName Use an alternate scheduler, e.g. "stork".
922 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
925 ## @param mongos.useStatefulSet Use StatefulSet instead of Deployment
927 useStatefulSet: false
928 ## When using a statefulset, you can enable one service per replica
929 ## This is useful when exposing the mongos through load balancers to make sure clients
930 ## connect to the same mongos and therefore can follow their cursors
933 ## @param mongos.servicePerReplica.enabled Create one service per mongos replica (must be used with statefulset)
936 ## @param mongos.servicePerReplica.annotations Additional service annotations (evaluate as a template)
937 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
940 ## @param mongos.servicePerReplica.type Service type
941 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
944 ## @param mongos.servicePerReplica.externalTrafficPolicy External traffic policy
945 ## Enable client source IP preservation
946 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
948 externalTrafficPolicy: Cluster
949 ## @param mongos.servicePerReplica.port MongoDB® service port
952 ## @param mongos.servicePerReplica.clusterIPs Array of static clusterIPs for each MongoDB@reg; replica. Length must be the same as mongos.replicaCount
953 ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#servicespec-v1-core
956 ## @param mongos.servicePerReplica.nodePorts Array of node ports used for each MongoDB@reg; replica. Length must be the same as mongos.replicaCount
957 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
960 ## @param mongos.servicePerReplica.externalIPs External IP list to use with ClusterIP service type
961 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
964 ## @param mongos.servicePerReplica.loadBalancerIPs Array of static IP Address to use for each replica LoadBalancer service type. Length must be the same as mongos.replicaCount
965 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
968 ## @param mongos.servicePerReplica.loadBalancerSourceRanges List of IP ranges allowed access to load balancer (if supported)
969 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
971 loadBalancerSourceRanges: []
972 ## @param mongos.servicePerReplica.extraPorts Extra ports to expose (normally used with the `sidecar` value)
975 ## @param mongos.servicePerReplica.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
976 ## If "ClientIP", consecutive client requests will be directed to the same mongos Pod
977 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
979 sessionAffinity: None
980 ## @param mongos.servicePerReplica.sessionAffinityConfig Additional settings for the sessionAffinity
981 ## sessionAffinityConfig:
983 ## timeoutSeconds: 300
985 sessionAffinityConfig: {}
986 ## Pod disruption budget
989 ## @param mongos.pdb.create Enable pod disruption budget
992 ## @param mongos.pdb.minAvailable Minimum number of available mongo pods allowed (`0` to disable)
995 ## @param mongos.pdb.maxUnavailable Maximum number of unavailable mongo pods allowed (`0` to disable)
998 ## K8s Service Account.
999 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1002 ## @param mongos.serviceAccount.create Whether to create a Service Account for mongos automatically
1005 ## @param mongos.serviceAccount.name Name of a Service Account to be used by mongos
1006 ## If not set and create is true, a name is generated using the XXX.fullname template
1009 ## @param mongos.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1012 ## @param mongos.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1014 automountServiceAccountToken: false
1015 ## Configure Pods Security Context
1016 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1017 ## @param mongos.podSecurityContext.enabled Enable security context
1018 ## @param mongos.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1019 ## @param mongos.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1020 ## @param mongos.podSecurityContext.supplementalGroups Set filesystem extra groups
1021 ## @param mongos.podSecurityContext.fsGroup Group ID for the container
1025 fsGroupChangePolicy: Always
1027 supplementalGroups: []
1029 ## Configure Container Security Context
1030 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1031 ## @param mongos.containerSecurityContext.enabled Enabled containers' Security Context
1032 ## @param mongos.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1033 ## @param mongos.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1034 ## @param mongos.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1035 ## @param mongos.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1036 ## @param mongos.containerSecurityContext.privileged Set container's Security Context privileged
1037 ## @param mongos.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1038 ## @param mongos.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1039 ## @param mongos.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1040 ## @param mongos.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1042 containerSecurityContext:
1049 readOnlyRootFilesystem: true
1050 allowPrivilegeEscalation: false
1054 type: "RuntimeDefault"
1055 ## @param mongos.command Override default container command (useful when using custom images)
1058 ## @param mongos.args Override default container args (useful when using custom images)
1061 ## @param mongos.terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
1062 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1064 terminationGracePeriodSeconds: ""
1065 ## @param mongos.lifecycleHooks for the Mongo container(s) to automate configuration before or after startup
1068 ## Configure extra options for liveness probes
1069 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1070 ## @param mongos.livenessProbe.enabled Enable livenessProbe
1071 ## @param mongos.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1072 ## @param mongos.livenessProbe.periodSeconds Period seconds for livenessProbe
1073 ## @param mongos.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1074 ## @param mongos.livenessProbe.failureThreshold Failure threshold for livenessProbe
1075 ## @param mongos.livenessProbe.successThreshold Success threshold for livenessProbe
1079 initialDelaySeconds: 60
1084 ## Configure extra options for readiness probe
1085 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1086 ## @param mongos.readinessProbe.enabled Enable readinessProbe
1087 ## @param mongos.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1088 ## @param mongos.readinessProbe.periodSeconds Period seconds for readinessProbe
1089 ## @param mongos.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1090 ## @param mongos.readinessProbe.failureThreshold Failure threshold for readinessProbe
1091 ## @param mongos.readinessProbe.successThreshold Success threshold for readinessProbe
1095 initialDelaySeconds: 10
1100 ## Configure extra options for startup probe
1101 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1102 ## @param mongos.startupProbe.enabled Enable startupProbe
1103 ## @param mongos.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1104 ## @param mongos.startupProbe.periodSeconds Period seconds for startupProbe
1105 ## @param mongos.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1106 ## @param mongos.startupProbe.failureThreshold Failure threshold for startupProbe
1107 ## @param mongos.startupProbe.successThreshold Success threshold for startupProbe
1111 initialDelaySeconds: 0
1114 failureThreshold: 30
1116 ## @param mongos.customLivenessProbe Custom livenessProbe that overrides the default one
1118 customLivenessProbe: {}
1119 ## @param mongos.customReadinessProbe Custom readinessProbe that overrides the default one
1121 customReadinessProbe: {}
1122 ## @param mongos.customStartupProbe Custom startupProbe that overrides the default one
1124 customStartupProbe: {}
1125## @section Shard configuration: Data node parameters
1128## Shard replica set properties
1129## ref: https://docs.mongodb.com/manual/replication/index.html
1132 ## Properties for data nodes (primary and secondary)
1135 ## @param shardsvr.dataNode.replicaCount Number of nodes in each shard replica set (the first node will be primary)
1138 ## @param shardsvr.dataNode.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if shardsvr.dataNode.resources is set (shardsvr.dataNode.resources is recommended for production).
1140 resourcesPreset: "medium"
1141 ## @param shardsvr.dataNode.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1150 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1153 ## @param shardsvr.dataNode.mongodbExtraFlags MongoDB® additional command line flags
1154 ## Can be used to specify command line flags, for example:
1155 ## mongodbExtraFlags:
1156 ## - "--wiredTigerCacheSizeGB=2"
1158 mongodbExtraFlags: []
1159 ## @param shardsvr.dataNode.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1160 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1162 topologySpreadConstraints: []
1163 ## @param shardsvr.dataNode.priorityClassName Pod priority class name
1164 ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1166 priorityClassName: ""
1167 ## @param shardsvr.dataNode.podAffinityPreset Data nodes Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1168 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1170 podAffinityPreset: ""
1171 ## @param shardsvr.dataNode.podAntiAffinityPreset Data nodes Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1172 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1174 podAntiAffinityPreset: soft
1175 ## Node affinity preset
1176 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1179 ## @param shardsvr.dataNode.nodeAffinityPreset.type Data nodes Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1182 ## @param shardsvr.dataNode.nodeAffinityPreset.key Data nodes Node label key to match Ignored if `affinity` is set.
1184 ## key: "kubernetes.io/e2e-az-name"
1187 ## @param shardsvr.dataNode.nodeAffinityPreset.values Data nodes Node label values to match. Ignored if `affinity` is set.
1194 ## @param shardsvr.dataNode.affinity Data nodes Affinity for pod assignment
1195 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1196 ## You can set dataNodeLoopId (or any other parameter) by setting the below code block under this 'affinity' section:
1199 ## shard: "{{ .dataNodeLoopId }}"
1201 ## Note: shardsvr.dataNode.podAffinityPreset, shardsvr.dataNode.podAntiAffinityPreset, and shardsvr.dataNode.nodeAffinityPreset will be ignored when it's set
1204 ## @param shardsvr.dataNode.nodeSelector Data nodes Node labels for pod assignment
1205 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1206 ## You can set dataNodeLoopId (or any other parameter) by setting the below code block under this 'nodeSelector' section:
1207 ## nodeSelector: { shardId: "{{ .dataNodeLoopId }}" }
1210 ## @param shardsvr.dataNode.tolerations Data nodes Tolerations for pod assignment
1211 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1212 ## You can set dataNodeLoopId (or any other parameter) by setting the below code block under this 'nodeSelector' section:
1215 ## operator: "Equal"
1216 ## value: "{{ .dataNodeLoopId }}"
1217 ## effect: "NoSchedule"
1220 ## @param shardsvr.dataNode.podManagementPolicy podManagementPolicy for the statefulset, allows parallel startup of pods
1221 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1223 podManagementPolicy: OrderedReady
1224 ## @param shardsvr.dataNode.updateStrategy.type updateStrategy for MongoDB® Primary, Secondary and Arbiter statefulsets
1225 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1229 ## @param shardsvr.dataNode.automountServiceAccountToken Mount Service Account token in pod
1231 automountServiceAccountToken: false
1232 ## @param shardsvr.dataNode.hostAliases Deployment pod host aliases
1233 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1236 ## @param shardsvr.dataNode.config Entries for the MongoDB® config file
1237 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
1240 ## @param shardsvr.dataNode.configCM ConfigMap name with MongoDB® configuration (cannot be used with shardsvr.dataNode.config)
1241 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
1244 ## @param shardsvr.dataNode.extraEnvVars An array to add extra env vars
1247 ## - name: KIBANA_ELASTICSEARCH_URL
1251 ## @param shardsvr.dataNode.extraEnvVarsCM Name of a ConfigMap containing extra env vars
1254 ## @param shardsvr.dataNode.extraEnvVarsSecret Name of a Secret containing extra env vars
1256 extraEnvVarsSecret: ""
1257 ## @param shardsvr.dataNode.sidecars Attach additional containers (evaluated as a template)
1260 ## - name: your-image-name
1261 ## image: your-image
1262 ## imagePullPolicy: Always
1265 ## containerPort: 1234
1268 ## @param shardsvr.dataNode.initContainers Add init containers to the pod
1271 ## - name: your-image-name
1272 ## image: your-image
1273 ## imagePullPolicy: Always
1276 ## @param shardsvr.dataNode.podAnnotations Additional pod annotations
1277 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1280 ## @param shardsvr.dataNode.podLabels Additional pod labels
1281 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1284 ## @param shardsvr.dataNode.extraVolumes Array to add extra volumes. Requires setting `extraVolumeMounts`
1287 ## @param shardsvr.dataNode.extraVolumeMounts Array to add extra mounts. Normally used with `extraVolumes`
1289 extraVolumeMounts: []
1290 ## @param shardsvr.dataNode.schedulerName Use an alternate scheduler, e.g. "stork".
1291 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1294 ## Pod disruption budget
1297 ## @param shardsvr.dataNode.pdb.create Enable pod disruption budget
1300 ## @param shardsvr.dataNode.pdb.minAvailable Minimum number of available data pods allowed (`0` to disable)
1303 ## @param shardsvr.dataNode.pdb.maxUnavailable Maximum number of unavailable data pods allowed (`0` to disable)
1306 ## K8s Service Account.
1307 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1310 ## @param shardsvr.dataNode.serviceAccount.create Specifies whether a ServiceAccount should be created for shardsvr
1313 ## @param shardsvr.dataNode.serviceAccount.name Name of a Service Account to be used by shardsvr data pods
1314 ## If not set and create is true, a name is generated using the XXX.fullname template
1317 ## @param shardsvr.dataNode.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1320 ## @param shardsvr.dataNode.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1322 automountServiceAccountToken: false
1323 ## Configure Pods Security Context
1324 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1325 ## @param shardsvr.dataNode.podSecurityContext.enabled Enable security context
1326 ## @param shardsvr.dataNode.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1327 ## @param shardsvr.dataNode.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1328 ## @param shardsvr.dataNode.podSecurityContext.supplementalGroups Set filesystem extra groups
1329 ## @param shardsvr.dataNode.podSecurityContext.fsGroup Group ID for the container
1333 fsGroupChangePolicy: Always
1335 supplementalGroups: []
1337 ## Configure Container Security Context
1338 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1339 ## @param shardsvr.dataNode.containerSecurityContext.enabled Enabled containers' Security Context
1340 ## @param shardsvr.dataNode.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1341 ## @param shardsvr.dataNode.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1342 ## @param shardsvr.dataNode.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1343 ## @param shardsvr.dataNode.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1344 ## @param shardsvr.dataNode.containerSecurityContext.privileged Set container's Security Context privileged
1345 ## @param shardsvr.dataNode.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1346 ## @param shardsvr.dataNode.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1347 ## @param shardsvr.dataNode.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1348 ## @param shardsvr.dataNode.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1350 containerSecurityContext:
1357 readOnlyRootFilesystem: true
1358 allowPrivilegeEscalation: false
1362 type: "RuntimeDefault"
1363 ## @param shardsvr.dataNode.command Override default container command (useful when using custom images)
1367 - /entrypoint/replicaset-entrypoint.sh
1368 ## @param shardsvr.dataNode.args Override default container args (useful when using custom images)
1371 ## @param shardsvr.dataNode.terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
1372 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1374 terminationGracePeriodSeconds: ""
1375 ## @param shardsvr.dataNode.lifecycleHooks for the Data container(s) to automate configuration before or after startup
1378 ## Configure extra options for liveness probes
1379 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1380 ## @param shardsvr.dataNode.livenessProbe.enabled Enable livenessProbe
1381 ## @param shardsvr.dataNode.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1382 ## @param shardsvr.dataNode.livenessProbe.periodSeconds Period seconds for livenessProbe
1383 ## @param shardsvr.dataNode.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1384 ## @param shardsvr.dataNode.livenessProbe.failureThreshold Failure threshold for livenessProbe
1385 ## @param shardsvr.dataNode.livenessProbe.successThreshold Success threshold for livenessProbe
1389 initialDelaySeconds: 60
1394 ## Configure extra options for readiness probe
1395 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1396 ## @param shardsvr.dataNode.readinessProbe.enabled Enable readinessProbe
1397 ## @param shardsvr.dataNode.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1398 ## @param shardsvr.dataNode.readinessProbe.periodSeconds Period seconds for readinessProbe
1399 ## @param shardsvr.dataNode.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1400 ## @param shardsvr.dataNode.readinessProbe.failureThreshold Failure threshold for readinessProbe
1401 ## @param shardsvr.dataNode.readinessProbe.successThreshold Success threshold for readinessProbe
1405 initialDelaySeconds: 10
1410 ## Configure extra options for startup probe
1411 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1412 ## @param shardsvr.dataNode.startupProbe.enabled Enable startupProbe
1413 ## @param shardsvr.dataNode.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1414 ## @param shardsvr.dataNode.startupProbe.periodSeconds Period seconds for startupProbe
1415 ## @param shardsvr.dataNode.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1416 ## @param shardsvr.dataNode.startupProbe.failureThreshold Failure threshold for startupProbe
1417 ## @param shardsvr.dataNode.startupProbe.successThreshold Success threshold for startupProbe
1421 initialDelaySeconds: 0
1424 failureThreshold: 30
1426 ## @param shardsvr.dataNode.customLivenessProbe Custom livenessProbe that overrides the default one
1428 customLivenessProbe: {}
1429 ## @param shardsvr.dataNode.customReadinessProbe Custom readinessProbe that overrides the default one
1431 customReadinessProbe: {}
1432 ## @param shardsvr.dataNode.customStartupProbe Custom startupProbe that overrides the default one
1434 customStartupProbe: {}
1435 ## @section Shard configuration: Persistence parameters
1438 ## Enable persistence using Persistent Volume Claims
1439 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1442 ## @param shardsvr.persistence.enabled Use a PVC to persist data
1445 ## @param shardsvr.persistence.mountPath The path the volume will be mounted at, useful when using different MongoDB® images.
1447 mountPath: /iamguarded/mongodb
1448 ## @param shardsvr.persistence.subPath Subdirectory of the volume to mount at (evaluated as a template)
1449 ## Useful in development environments and one PV for multiple services.
1452 ## @param shardsvr.persistence.storageClass Storage class of backing PVC
1453 ## If defined, storageClassName: <storageClass>
1454 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1455 ## If undefined (the default) or set to null, no storageClassName spec is
1456 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1457 ## GKE, AWS & OpenStack)
1460 ## @param shardsvr.persistence.accessModes Use volume as ReadOnly or ReadWrite
1464 ## @param shardsvr.persistence.size PersistentVolumeClaim size
1467 ## @param shardsvr.persistence.annotations Additional volume annotations
1468 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1471 ## @param shardsvr.persistence.selector Selector to match an existing Persistent Volume for Shard data PVC
1472 ## A label query over volumes to consider for binding (e.g. when using local volumes)
1473 ## Selector can be defined with static and dynamic options:
1477 ## shard: shard{{ .Index }}
1479 ## shard{{ .Index }} will be substituted to shard0, shard1 accordingly
1482 ## Persistent Volume Claim Retention Policy
1483 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1485 persistentVolumeClaimRetentionPolicy:
1486 ## @param shardsvr.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for Shard replicas StatefulSet
1489 ## @param shardsvr.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1492 ## @param shardsvr.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1495 ## @section Shard configuration: Arbiter parameters
1498 ## Properties for arbiter nodes
1499 ## ref: https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
1502 ## @param shardsvr.arbiter.replicaCount Number of arbiters in each shard replica set (the first node will be primary)
1505 ## @param shardsvr.arbiter.automountServiceAccountToken Mount Service Account token in pod
1507 automountServiceAccountToken: false
1508 ## @param shardsvr.arbiter.hostAliases Deployment pod host aliases
1509 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1512 ## @param shardsvr.arbiter.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if shardsvr.arbiter.resources is set (shardsvr.arbiter.resources is recommended for production).
1514 resourcesPreset: "small"
1515 ## @param shardsvr.arbiter.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1524 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1527 ## @param shardsvr.arbiter.mongodbExtraFlags MongoDB® additional command line flags
1528 ## Can be used to specify command line flags, for example:
1529 ## mongodbExtraFlags:
1530 ## - "--wiredTigerCacheSizeGB=2"
1532 mongodbExtraFlags: []
1533 ## @param shardsvr.arbiter.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1534 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1536 topologySpreadConstraints: []
1537 ## @param shardsvr.arbiter.priorityClassName Pod priority class name
1538 ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1540 priorityClassName: ""
1541 ## @param shardsvr.arbiter.podAffinityPreset Arbiter's Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1542 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1544 podAffinityPreset: ""
1545 ## @param shardsvr.arbiter.podAntiAffinityPreset Arbiter's Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1546 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1548 podAntiAffinityPreset: soft
1549 ## Node affinity preset
1550 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1553 ## @param shardsvr.arbiter.nodeAffinityPreset.type Arbiter's Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1556 ## @param shardsvr.arbiter.nodeAffinityPreset.key Arbiter's Node label key to match Ignored if `affinity` is set.
1558 ## key: "kubernetes.io/e2e-az-name"
1561 ## @param shardsvr.arbiter.nodeAffinityPreset.values Arbiter's Node label values to match. Ignored if `affinity` is set.
1568 ## @param shardsvr.arbiter.affinity Arbiter's Affinity for pod assignment
1569 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1570 ## You can set arbiterLoopId (or any other parameter) by setting the below code block under this 'affinity' section:
1573 ## shard: "{{ .arbiterLoopId }}"
1575 ## Note: shardsvr.arbiter.podAffinityPreset, shardsvr.arbiter.podAntiAffinityPreset, and shardsvr.arbiter.nodeAffinityPreset will be ignored when it's set
1578 ## @param shardsvr.arbiter.nodeSelector Arbiter's Node labels for pod assignment
1579 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1582 ## @param shardsvr.arbiter.tolerations Arbiter's Tolerations for pod assignment
1583 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1586 ## @param shardsvr.arbiter.podManagementPolicy Statefulset's pod management policy, allows parallel startup of pods
1587 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1589 podManagementPolicy: OrderedReady
1590 ## @param shardsvr.arbiter.updateStrategy.type updateStrategy for MongoDB® Primary, Secondary and Arbiter statefulsets
1591 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1595 ## @param shardsvr.arbiter.config MongoDB® configuration file
1596 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
1599 ## @param shardsvr.arbiter.configCM ConfigMap name with MongoDB® configuration file (cannot be used with shardsvr.arbiter.config)
1600 ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
1603 ## @param shardsvr.arbiter.extraEnvVars An array to add extra env vars
1606 ## - name: KIBANA_ELASTICSEARCH_URL
1610 ## @param shardsvr.arbiter.extraEnvVarsCM Name of a ConfigMap containing extra env vars
1613 ## @param shardsvr.arbiter.extraEnvVarsSecret Name of a Secret containing extra env vars
1615 extraEnvVarsSecret: ""
1616 ## @param shardsvr.arbiter.sidecars Add sidecars to the pod
1619 ## - name: your-image-name
1620 ## image: your-image
1621 ## imagePullPolicy: Always
1624 ## containerPort: 1234
1627 ## @param shardsvr.arbiter.initContainers Add init containers to the pod
1630 ## - name: your-image-name
1631 ## image: your-image
1632 ## imagePullPolicy: Always
1635 ## @param shardsvr.arbiter.podAnnotations Additional pod annotations
1636 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1639 ## @param shardsvr.arbiter.podLabels Additional pod labels
1640 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1643 ## @param shardsvr.arbiter.extraVolumes Array to add extra volumes
1646 ## @param shardsvr.arbiter.extraVolumeMounts Array to add extra mounts (normally used with extraVolumes)
1648 extraVolumeMounts: []
1649 ## @param shardsvr.arbiter.schedulerName Use an alternate scheduler, e.g. "stork".
1650 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1653 ## K8s Service Account.
1654 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1657 ## @param shardsvr.arbiter.serviceAccount.create Specifies whether a ServiceAccount should be created for shardsvr arbiter nodes
1660 ## @param shardsvr.arbiter.serviceAccount.name Name of a Service Account to be used by shardsvr arbiter pods
1661 ## If not set and create is true, a name is generated using the XXX.fullname template
1664 ## @param shardsvr.arbiter.serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1667 ## @param shardsvr.arbiter.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1669 automountServiceAccountToken: false
1670 ## Configure Pods Security Context
1671 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1672 ## @param shardsvr.arbiter.podSecurityContext.enabled Enable security context
1673 ## @param shardsvr.arbiter.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1674 ## @param shardsvr.arbiter.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1675 ## @param shardsvr.arbiter.podSecurityContext.supplementalGroups Set filesystem extra groups
1676 ## @param shardsvr.arbiter.podSecurityContext.fsGroup Group ID for the container
1680 fsGroupChangePolicy: Always
1682 supplementalGroups: []
1684 ## Configure Container Security Context
1685 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1686 ## @param shardsvr.arbiter.containerSecurityContext.enabled Enabled containers' Security Context
1687 ## @param shardsvr.arbiter.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1688 ## @param shardsvr.arbiter.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1689 ## @param shardsvr.arbiter.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1690 ## @param shardsvr.arbiter.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1691 ## @param shardsvr.arbiter.containerSecurityContext.privileged Set container's Security Context privileged
1692 ## @param shardsvr.arbiter.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1693 ## @param shardsvr.arbiter.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1694 ## @param shardsvr.arbiter.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1695 ## @param shardsvr.arbiter.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1697 containerSecurityContext:
1704 readOnlyRootFilesystem: true
1705 allowPrivilegeEscalation: false
1709 type: "RuntimeDefault"
1710 ## @param shardsvr.arbiter.command Override default container command (useful when using custom images)
1713 ## @param shardsvr.arbiter.args Override default container args (useful when using custom images)
1716 ## @param shardsvr.arbiter.terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
1717 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1719 terminationGracePeriodSeconds: ""
1720 ## @param shardsvr.arbiter.lifecycleHooks for the arbiter container(s) to automate configuration before or after startup
1723 ## Configure extra options for liveness probes
1724 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1725 ## @param shardsvr.arbiter.livenessProbe.enabled Enable livenessProbe
1726 ## @param shardsvr.arbiter.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1727 ## @param shardsvr.arbiter.livenessProbe.periodSeconds Period seconds for livenessProbe
1728 ## @param shardsvr.arbiter.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1729 ## @param shardsvr.arbiter.livenessProbe.failureThreshold Failure threshold for livenessProbe
1730 ## @param shardsvr.arbiter.livenessProbe.successThreshold Success threshold for livenessProbe
1734 initialDelaySeconds: 60
1739 ## Configure extra options for readiness probe
1740 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1741 ## @param shardsvr.arbiter.readinessProbe.enabled Enable readinessProbe
1742 ## @param shardsvr.arbiter.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1743 ## @param shardsvr.arbiter.readinessProbe.periodSeconds Period seconds for readinessProbe
1744 ## @param shardsvr.arbiter.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1745 ## @param shardsvr.arbiter.readinessProbe.failureThreshold Failure threshold for readinessProbe
1746 ## @param shardsvr.arbiter.readinessProbe.successThreshold Success threshold for readinessProbe
1750 initialDelaySeconds: 10
1755 ## Configure extra options for startup probe
1756 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1757 ## @param shardsvr.arbiter.startupProbe.enabled Enable startupProbe
1758 ## @param shardsvr.arbiter.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1759 ## @param shardsvr.arbiter.startupProbe.periodSeconds Period seconds for startupProbe
1760 ## @param shardsvr.arbiter.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1761 ## @param shardsvr.arbiter.startupProbe.failureThreshold Failure threshold for startupProbe
1762 ## @param shardsvr.arbiter.startupProbe.successThreshold Success threshold for startupProbe
1766 initialDelaySeconds: 0
1769 failureThreshold: 30
1771 ## @param shardsvr.arbiter.customLivenessProbe Custom livenessProbe that overrides the default one
1773 customLivenessProbe: {}
1774 ## @param shardsvr.arbiter.customReadinessProbe Custom readinessProbe that overrides the default one
1776 customReadinessProbe: {}
1777 ## @param shardsvr.arbiter.customStartupProbe Custom startupProbe that overrides the default one
1779 customStartupProbe: {}
1780## @section Metrics parameters
1784 ## @param metrics.enabled Start a side-car prometheus exporter
1787 ## @param metrics.image.registry [default: REGISTRY_NAME] MongoDB® exporter image registry
1788 ## @param metrics.image.repository [default: REPOSITORY_NAME/mongodb-exporter] MongoDB® exporter image name
1789 ## @skip metrics.image.tag MongoDB® exporter image tag
1790 ## @param metrics.image.digest MongoDB® exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1791 ## @param metrics.image.pullPolicy MongoDB® exporter image pull policy
1792 ## @param metrics.image.pullSecrets MongoDB® exporter image pull secrets
1796 repository: chainguard-private/prometheus-mongodb-exporter-iamguarded
1800 ## Optionally specify an array of imagePullSecrets.
1801 ## Secrets must be manually created in the namespace.
1802 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1805 ## - myRegistryKeySecretName
1808 ## @param metrics.useTLS Whether to connect to MongoDB® with TLS
1811 ## @param metrics.extraArgs String with extra arguments to the metrics exporter
1812 ## ref: https://github.com/percona/mongodb_exporter/blob/main/main.go
1815 ## @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).
1817 resourcesPreset: "nano"
1818 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1827 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1830 ## Configure Container Security Context
1831 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1832 ## @param metrics.containerSecurityContext.enabled Enabled containers' Security Context
1833 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1834 ## @param metrics.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1835 ## @param metrics.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1836 ## @param metrics.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1837 ## @param metrics.containerSecurityContext.privileged Set container's Security Context privileged
1838 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1839 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1840 ## @param metrics.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1841 ## @param metrics.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1843 containerSecurityContext:
1850 readOnlyRootFilesystem: true
1851 allowPrivilegeEscalation: false
1855 type: "RuntimeDefault"
1856 ## Metrics exporter liveness probe
1857 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
1858 ## @param metrics.livenessProbe.enabled Enable livenessProbe
1859 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1860 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1861 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1862 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1863 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1867 initialDelaySeconds: 15
1872 ## Metrics exporter liveness and readiness probes
1873 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
1874 ## @param metrics.readinessProbe.enabled Enable readinessProbe
1875 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1876 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1877 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1878 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1879 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1883 initialDelaySeconds: 5
1888 ## Configure extra options for startup probe
1889 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1890 ## @param metrics.startupProbe.enabled Enable startupProbe
1891 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1892 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1893 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1894 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1895 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1899 initialDelaySeconds: 0
1902 failureThreshold: 15
1904 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1906 customLivenessProbe: {}
1907 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1909 customReadinessProbe: {}
1910 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1912 customStartupProbe: {}
1913 ## @param metrics.containerPorts.metrics Port of the Prometheus metrics container
1917 ## @param metrics.podAnnotations [object] Metrics exporter pod Annotation
1920 prometheus.io/scrape: "true"
1921 prometheus.io/port: "{{ .Values.metrics.containerPort }}"
1922 ## Prometheus Service Monitor
1923 ## ref: https://github.com/coreos/prometheus-operator
1924 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1927 ## @param metrics.podMonitor.enabled Create PodMonitor Resource for scraping metrics using PrometheusOperator
1930 ## @param metrics.podMonitor.namespace Namespace where podmonitor resource should be created
1932 namespace: monitoring
1933 ## @param metrics.podMonitor.interval Specify the interval at which metrics should be scraped
1936 ## @param metrics.podMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
1938 ## scrapeTimeout: 30s
1941 ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitors will be discovered by Prometheus
1942 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
1944 additionalLabels: {}