## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
##
global: {}
#   imageRegistry: myRegistryName
#   imagePullSecrets:
#     - myRegistryKeySecretName
#   storageClass: myStorageClass

## Bitnami MongoDB Sharded image version
## ref: https://hub.docker.com/r/bitnami/mongodb-sharded/tags/
##
image:
  registry: docker.io
  repository: bitnami/mongodb-sharded
  tag: 4.4.1-debian-10-r12
  ## Specify a imagePullPolicy
  ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  ##
  pullPolicy: IfNotPresent
  ## Optionally specify an array of imagePullSecrets.
  ## Secrets must be manually created in the namespace.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  ##
  pullSecrets:

  ## Set to true if you would like to see extra information on logs
  ## It turns on Bitnami debugging in minideb-extras-base
  ## ref:  https://github.com/bitnami/minideb-extras-base
  ##
  debug: false

## String to partially override mongodb.fullname template (will maintain the release name)
##
nameOverride:

## String to fully override mongodb.fullname template
##
fullnameOverride:

## MongoDB credentials
##

## MongoDB root password
## If set to null it will be randomly generated
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
##
## mongodbRootPassword: password
##
mongodbRootPassword:

## Create a non-root MongoDB user
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
##
## mongodbUsername: user
##
mongodbUsername:

## non-root MongoDB user password
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
##
## mongodbPassword: password
##
mongodbPassword:

## Create database on first run
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
##
# mongodbDatabase: database
mongodbDatabase:

## Replica Set key (shared for shards and config servers)
## ref:
##
## replicaSetKey: testkey123
##
replicaSetKey:

## Name of a secret containing all the credentials above
## ref:
##
## existingSecret: name-of-existing-secret
##
existingSecret:

## Mount credentials as files instead of using environment variables
##
usePasswordFile: true

## Number of MongoDB Shards
## ref: https://docs.mongodb.com/manual/core/sharded-cluster-shards/
##
shards: 4

## Shard replica set properties
## ref: https://docs.mongodb.com/manual/replication/index.html
##
shardsvr:
  ## Properties for data nodes (primary and secondary)
  ##
  dataNode:
    ## Number of replicas. A value of replicas=1 is simply a primary node
    ##
    replicas: 2
    ## Configure resource requests and limits
    ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
    ##
    resources: {}
    ## MongoDB additional command line flags
    ##
    ## Can be used to specify command line flags, for example:
    ##
    ## mongodbExtraFlags:
    ##  - "--wiredTigerCacheSizeGB=2"
    ##
    mongodbExtraFlags: []
    ## Pod priority
    ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
    ##
    priorityClassName:
    ## Node selector
    ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
    ##
    nodeSelector: {}
    ## Affinity
    ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
    ##
    affinity: {}
    ## Tolerations
    ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
    ##
    tolerations: []
    ## podManagementPolicy for the statefulset, allows parallel startup of pods
    ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
    ##
    podManagementPolicy: OrderedReady
    ## updateStrategy for MongoDB Primary, Secondary and Arbitrer statefulsets
    ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
    ##
    updateStrategy:
      type: RollingUpdate
    ## Entries for the MongoDB config file. For documentation of all options, see:
    ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
    ##
    config:
    ## Name of a ConfigMap containing a MongoDB config file (cannot be used at the same time as config)
    ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
    ##
    configCM:
    ## An array to add extra env vars
    ## For example:
    ## extraEnvVars:
    ##  - name: KIBANA_ELASTICSEARCH_URL
    ##    value: test
    ##
    extraEnvVars:
    ## Name of a ConfigMap containing extra env vars
    ##
    extraEnvVarsCM:
    ## Name of a Secret containing extra env vars
    ##
    extraEnvVarsSecret:
    ## Add sidecars to the pod
    ## For example:
    ## sidecars:
    ##   - name: your-image-name
    ##     image: your-image
    ##     imagePullPolicy: Always
    ##     ports:
    ##       - name: portname
    ##         containerPort: 1234
    ##
    sidecars:
    ## Add init containers to the pod
    ## For example:
    ## initcontainers:
    ##   - name: your-image-name
    ##     image: your-image
    ##     imagePullPolicy: Always
    ##
    initContainers:
    ## Additional pod annotations
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
    ##
    podAnnotations:
    ## Additional pod labels
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
    ##
    podLabels:
    ## Array to add extra volumes
    ##
    extraVolumes:
    ## Array to add extra mounts (normally used with extraVolumes)
    ##
    extraVolumeMounts:
    ## Use an alternate scheduler, e.g. "stork".
    ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
    ##
    schedulerName:
    ## Pod disruption budget
    ##
    pdb:
      enabled: true
      ## Use 0 to disable
      ##
      minAvailable: 0
      ## Use 0 to disable
      ##
      maxUnavailable: 1
    ## K8s Service Account.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
    ##
    serviceAccount:
      ## Specifies whether a ServiceAccount should be created.
      ##
      create: true
      ## The name of the ServiceAccount to use.
      ## If not set and create is true, a name is generated using the XXX.fullname template
      ##
      name: mongo-shard-data

  ## Properties for arbiter nodes
  ## ref: https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
  ##
  arbiter:
    ## Number of arbiter nodes
    ##
    replicas: 1
    ## Configure resource requests and limits
    ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
    ##
    resources: {}
    ## MongoDB additional command line flags
    ##
    ## Can be used to specify command line flags, for example:
    ##
    ## mongodbExtraFlags:
    ##  - "--wiredTigerCacheSizeGB=2"
    ##
    mongodbExtraFlags: []
    ## Pod priority
    ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
    ##
    priorityClassName:
    ## Node selector
    ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
    ##
    nodeSelector: {}
    ## Affinity
    ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
    ##
    affinity: {}
    ## Tolerations
    ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
    ##
    tolerations: []
    ## podManagementPolicy for the statefulset, allows parallel startup of pods
    ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
    ##
    podManagementPolicy: OrderedReady
    ## updateStrategy for MongoDB Primary, Secondary and Arbitrer statefulsets
    ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
    ##
    updateStrategy:
      type: RollingUpdate
    ## Entries for the MongoDB config file. For documentation of all options, see:
    ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
    ##
    config:
    ## Name of a ConfigMap containing a MongoDB config file (cannot be used at the same time as config)
    ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
    ##
    configCM:
    ## An array to add extra env vars
    ## For example:
    ## extraEnvVars:
    ##  - name: KIBANA_ELASTICSEARCH_URL
    ##    value: test
    ##
    extraEnvVars:
    ## Name of a ConfigMap containing extra env vars
    ##
    extraEnvVarsCM:
    ## Name of a Secret containing extra env vars
    ##
    extraEnvVarsSecret:
    ## Add sidecars to the pod
    ## For example:
    ## sidecars:
    ##   - name: your-image-name
    ##     image: your-image
    ##     imagePullPolicy: Always
    ##     ports:
    ##       - name: portname
    ##         containerPort: 1234
    ##
    sidecars:
    ## Add init containers to the pod
    ## For example:
    ## initcontainers:
    ##   - name: your-image-name
    ##     image: your-image
    ##     imagePullPolicy: Always
    ##
    initContainers:
    ## Additional pod annotations
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
    ##
    podAnnotations:
    ## Additional pod labels
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
    ##
    podLabels:
    ## Array to add extra volumes
    ##
    extraVolumes:
    ## Array to add extra mounts (normally used with extraVolumes)
    ##
    extraVolumeMounts:
    ## Use an alternate scheduler, e.g. "stork".
    ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
    ##
    schedulerName:
    ## K8s Service Account.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
    ##
    serviceAccount:
      ## Specifies whether a ServiceAccount should be created.
      ##
      create: true
      ## The name of the ServiceAccount to use.
      ## If not set and create is true, a name is generated using the XXX.fullname template
      ##
      name: mongo-arbiter
  ## Enable persistence using Persistent Volume Claims
  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  ##
  persistence:
    enabled: true
    ## The path the volume will be mounted at, useful when using different
    ## MongoDB images.
    ##
    mountPath: /bitnami/mongodb

    ## The subdirectory of the volume to mount to, useful in dev environments
    ## and one PV for multiple services.
    ##
    subPath: ""

    ## mongodb data Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessModes:
      - ReadWriteOnce
    ## PersistentVolumeClaim size
    ##
    size: 8Gi
    ## Additional volume annotations
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
    ##
    annotations: {}

## Config Server replica set properties
## ref: https://docs.mongodb.com/manual/core/sharded-cluster-config-servers/
##
configsvr:
  ## Number of replicas. A value of replicas=1 is simply a primary node
  ##
  replicas: 3
  ## Configure resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources: {}
  ## MongoDB additional command line flags
  ##
  ## Can be used to specify command line flags, for example:
  ##
  ## mongodbExtraFlags:
  ##  - "--wiredTigerCacheSizeGB=2"
  ##
  mongodbExtraFlags: []
  ## Pod priority
  ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName:
  ## Node selector
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  ##
  nodeSelector: {}
  ## Affinity
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ##
  affinity: {}
  ## Tolerations
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## podManagementPolicy for the Statefulset, allows parallel startup of pods
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
  ##
  podManagementPolicy: OrderedReady
  ## updateStrategy for MongoDB Primary, Secondary and Arbitrer statefulsets
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  ##
  updateStrategy:
    type: RollingUpdate
  ## Entries for the MongoDB config file. For documentation of all options, see:
  ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
  ##
  config:
  ## Name of a ConfigMap containing a MongoDB config file (cannot be used at the same time as config)
  ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
  ##
  configCM:
  ## An array to add extra env vars
  ## For example:
  ## extraEnvVars:
  ##  - name: KIBANA_ELASTICSEARCH_URL
  ##    value: test
  ##
  extraEnvVars:
  ## Name of a ConfigMap containing extra env vars
  ##
  extraEnvVarsCM:
  ## Name of a Secret containing extra env vars
  ##
  extraEnvVarsSecret:
  ## Add sidecars to the pod
  ## For example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars:
  ## Add init containers to the pod
  ## For example:
  ## initcontainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##
  initContainers:
  ## Additional pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations:
  ## Additional pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels:
  ## Array to add extra volumes
  ##
  extraVolumes:
  ## Array to add extra mounts (normally used with extraVolumes)
  ##
  extraVolumeMounts:
  ## Use an alternate scheduler, e.g. "stork".
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName:
  ## Pod disruption budget
  ##
  pdb:
    enabled: true
    ## Use 0 to disable
    ##
    minAvailable: 0
    ## Use 0 to disable
    ##
    maxUnavailable: 1
  ## Enable persistence using Persistent Volume Claims
  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  ##
  persistence:
    enabled: true
    ## The path the volume will be mounted at, useful when using different
    ## MongoDB images.
    ##
    mountPath: /bitnami/mongodb

    ## The subdirectory of the volume to mount to, useful in dev environments
    ## and one PV for multiple services.
    ##
    subPath: ""

    ## mongodb data Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessModes:
      - ReadWriteOnce
    ## PersistentVolumeClaim size
    ##
    size: 8Gi
    ## Additional volume annotations
    ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
    ##
    annotations: {}
  ## K8s Service Account.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ##
  serviceAccount:
    ## Specifies whether a ServiceAccount should be created.
    ##
    create: true
    ## The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the XXX.fullname template
    ##
    name: mongo-configsvr

  ## Use a external config server instead of deploying one
  ##
  external:
    ## Host name of the config server primary node
    ##
    host:
    ## Root password of the config server primary node
    ##
    rootPassword:
    ## Name of the replica set
    ##
    replicasetName:
    ## Replica set key
    ##
    replicasetKey:

## Mongos properties
## ref: https://docs.mongodb.com/manual/reference/program/mongos/#bin.mongos
##
mongos:
  ## Number of replicas
  ##
  replicas: 3
  ## Configure resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources: {}
  ## MongoDB additional command line flags
  ##
  ## Can be used to specify command line flags, for example:
  ##
  ## mongodbExtraFlags:
  ##  - "--wiredTigerCacheSizeGB=2"
  ##
  mongodbExtraFlags: []
  ## Pod priority
  ## https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName:
  ## Node selector
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  ##
  nodeSelector: {}
  ## Affinity
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ##
  affinity: {}
  ## Tolerations
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## updateStrategy for MongoDB Primary, Secondary and Arbitrer statefulsets
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  ##
  updateStrategy:
    type: RollingUpdate
  ## Entries for the MongoDB config file. For documentation of all options, see:
  ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
  ##
  config:
  ## Name of a ConfigMap containing a MongoDB config file (cannot be used at the same time as config)
  ## ref: http://docs.mongodb.org/manual/reference/configuration-options/
  ##
  configCM:
  ## An array to add extra env vars
  ## For example:
  ## extraEnvVars:
  ##  - name: KIBANA_ELASTICSEARCH_URL
  ##    value: test
  ##
  extraEnvVars:
  ## Name of a ConfigMap containing extra env vars
  ##
  extraEnvVarsCM:
  ## Name of a Secret containing extra env vars
  ##
  extraEnvVarsSecret:
  ## Add sidecars to the pod
  ## For example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars:
  ## Add init containers to the pod
  ## For example:
  ## initcontainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##
  initContainers:
  ## Additional pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations:
  ## Additional pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels:
  ## Array to add extra volumes
  ##
  extraVolumes:
  ## Array to add extra mounts (normally used with extraVolumes)
  ##
  extraVolumeMounts:
  ## Use an alternate scheduler, e.g. "stork".
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName:
  ## Pod disruption budget
  ##
  pdb:
    enabled: true
    ## Use 0 to disable
    ##
    minAvailable: 0
    ## Use 0 to disable
    ##
    maxUnavailable: 1
  ## K8s Service Account.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ##
  serviceAccount:
    ## Specifies whether a ServiceAccount should be created for mongos.
    ##
    create: true
    ## The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the XXX.fullname template
    ##
    name: mongo-mongos

## Properties for all of the pods in the cluster (shards, config servers and mongos)
##
common:
  ## Use hostnames instead of IP addresses
  ##
  useHostnames: true
  ## Whether enable/disable IPv6 on MongoDB
  ## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-ipv6
  ##
  mongodbEnableIPv6: false
  ## Whether enable/disable DirectoryPerDB on MongoDB
  ## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-directoryperdb
  ##
  mongodbDirectoryPerDB: false
  ## System log verbosity level
  ## ref: https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-ipv6
  ##
  mongodbSystemLogVerbosity: 0
  ## MongoDB System Log configuration
  ## ref: https://github.com/bitnami/bitnami-docker-mongodb#configuring-system-log-verbosity-level
  ##
  mongodbDisableSystemLog: false
  ## Maximum peer node waiting timeout (in seconds)
  ##
  mongodbMaxWaitTimeout: 120
  ## Configmap with init scripts to execute
  ##
  initScriptsCM:
  ## Secret with init scripts to execute (for sensitive data)
  ##
  initScriptsSecret:
  ## An array to add extra env vars
  ## For example:
  ## extraEnvVars:
  ##  - name: KIBANA_ELASTICSEARCH_URL
  ##    value: test
  ##
  extraEnvVars:
  ## Name of a ConfigMap containing extra env vars
  ##
  extraEnvVarsCM:
  ## Name of a Secret containing extra env vars
  ##
  extraEnvVarsSecret:
  ## Add sidecars to the pod
  ## For example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars:
  ## Add init containers to the pod
  ## For example:
  ## initcontainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##
  initContainers:
  ## Additional pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations:
  ## Additional pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels:
  ## Array to add extra volumes
  ##
  extraVolumes:
  ## Array to add extra mounts (normally used with extraVolumes)
  ##
  extraVolumeMounts:
  ## K8s Service Account.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ##
  serviceAccount:
    ## Specifies whether a ServiceAccount should be created.
    ##
    create: false
    ## The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the XXX.fullname template
    ##
    # name:

## Init containers parameters:
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
##
volumePermissions:
  enabled: false
  image:
    registry: docker.io
    repository: bitnami/minideb
    tag: buster
    pullPolicy: Always
    ## Optionally specify an array of imagePullSecrets.
    ## Secrets must be manually created in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ##
    # pullSecrets:
    #   - myRegistryKeySecretName
  resources: {}

## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
  enabled: true
  fsGroup: 1001
  runAsUser: 1001
  runAsNonRoot: true

## Kubernetes Cluster Domain
## ref: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#introduction
##
clusterDomain: cluster.local

## Kubernetes service type
## ref: https://kubernetes.io/docs/concepts/services-networking/service/
##
service:
  ## Specify an explicit service name
  ##
  name:
  ## Additional service annotations (evaluate as a template)
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  annotations: {}
  ## Service type
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
  ##
  type: ClusterIP
  ## External traffic policy
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
  ##
  externalTrafficPolicy: Cluster
  ## MongoDB Service port and Container Port
  ##
  port: 27017
  ## Set a fixed service ClusterIP addrress
  ## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#servicespec-v1-core
  ##
  clusterIP:
  ## Specify the nodePort value for the LoadBalancer and NodePort service types.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  ##
  nodePort:

  ## Specify the externalIP value ClusterIP service type.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
  ##
  externalIPs: []

  ## Specify the loadBalancerIP value for LoadBalancer service types.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
  ##
  loadBalancerIP:

  ## Specify the loadBalancerSourceRanges value for LoadBalancer service types.
  ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  ##
  loadBalancerSourceRanges: []
  ## Extra ports to expose (normally used with the `sidecar` value)
  ##
  extraPorts:
  ## Specify the sessionAffinity setting for the service. Can be "None" or "ClientIP".
  ## If "ClientIP", consecutive client requests will be directed to the same mongos Pod
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  ##
  sessionAffinity: None

## Configure extra options for liveness and readiness probes
## This applies to all the MongoDB in the sharded cluster
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
##
livenessProbe:
  enabled: true
  initialDelaySeconds: 60
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 6
  successThreshold: 1
readinessProbe:
  enabled: true
  initialDelaySeconds: 60
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 6
  successThreshold: 1

## Prometheus Exporter / Metrics
##
metrics:
  enabled: true

  image:
    registry: docker.io
    repository: bitnami/mongodb-exporter
    tag: 0.11.1-debian-10-r32
    pullPolicy: Always
    ## Optionally specify an array of imagePullSecrets.
    ## Secrets must be manually created in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ##
    # pullSecrets:
    #   - myRegistryKeySecretName

  ## String with extra arguments to the metrics exporter
  ## ref: https://github.com/dcu/mongodb_exporter/blob/master/mongodb_exporter.go
  ##
  extraArgs: ""

  ## Metrics exporter resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  # resources: {}

  ## Metrics exporter liveness and readiness probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
  ##
  livenessProbe:
    enabled: false
    initialDelaySeconds: 15
    periodSeconds: 5
    timeoutSeconds: 5
    failureThreshold: 3
    successThreshold: 1
  readinessProbe:
    enabled: false
    initialDelaySeconds: 5
    periodSeconds: 5
    timeoutSeconds: 1
    failureThreshold: 3
    successThreshold: 1

  ## Metrics exporter pod Annotation
  ##
  podAnnotations:
    prometheus.io/scrape: "true"
    prometheus.io/port: "9216"

  # Enable this if you're using https://github.com/coreos/prometheus-operator
  serviceMonitor:
    enabled: false
    namespace: monitoring
    # fallback to the prometheus default unless specified
    # interval: 10s
    ## Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#tldr)
    ## [Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-operator-1)
    ## [Kube Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#exporters)
    ##
    selector:
      prometheus: kube-prometheus
