# Default values for mongo-express.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

## @section Global parameters

global:
  ## @param global.imageRegistry Global Docker image registry
  imageRegistry: ""

  ## @param global.imagePullSecrets Global Docker registry secret names as an array
  imagePullSecrets: []

## @section Common parameters

## @param kubeVersion Override Kubernetes version
kubeVersion: ""

## @param nameOverride Partially override `mongo-express.fullname` template with a string (will prepend the release name)
nameOverride: ""

## @param fullnameOverride Fully override `mongo-express.fullname` template with a string
fullnameOverride: ""

## @param commonAnnotations Annotations to add to all deployed objects
commonAnnotations: {}

## @param commonLabels Labels to add to all deployed objects
commonLabels: {}

## @param extraDeploy Array of extra objects to deploy with the release
extraDeploy: []

## @section Parameters

## @param replicaCount Number of replicas
replicaCount: 1

image:
  ## @param image.registry Image registry
  registry: docker.io

  ## @param image.repository Image repository
  repository: mongo-express

  ## @param image.tag Image tag
  tag: 1.0.2

  ## @param image.digest Image digest
  digest: ""

  ## @param image.pullPolicy Image pull policy
  pullPolicy: IfNotPresent

pdb:
  ## @param pdb.create Specifies whether a pod disruption budget should be created
  create: false

  ## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
  minAvailable: 1

  ## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
  maxUnavailable:
  # maxUnavailable: 1

serviceAccount:
  ## @param serviceAccount.create Specifies whether a service account should be created
  create: true

  ## @param serviceAccount.annotations Service account annotations
  annotations: {}

  ## @param serviceAccount.name The name of the service account to use (Generated using the `mongo-express.fullname` template if not set)
  name:

## @param deploymentAnnotations Additional deployment annotations
deploymentAnnotations: {}

## @param podAnnotations Additional pod annotations
podAnnotations: {}

## @param podLabels Additional pod labels
podLabels: {}

## @param podSecurityContext Pod security context
podSecurityContext: {}
  # fsGroup: 2000

## @param priorityClassName Priority class name
priorityClassName:
# priorityClassName : high-priority

## @param runtimeClassName Runtime class name
runtimeClassName: ""

## @param topologySpreadConstraints Topology Spread Constraints for pod assignment
topologySpreadConstraints: []

## @param securityContext Container security context
securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

containerPorts:
  ## @param containerPorts.http Container port for HTTP
  http: 8081

livenessProbe:
  ## @param livenessProbe.enabled Enable liveness probe
  enabled: true

  ## @param livenessProbe.initialDelaySeconds Delay before the liveness probe is initiated
  initialDelaySeconds: 0

  ## @param livenessProbe.periodSeconds How often to perform the liveness probe
  periodSeconds: 10

  ## @param livenessProbe.timeoutSeconds When the liveness probe times out
  timeoutSeconds: 1

  ## @param livenessProbe.failureThreshold Minimum consecutive failures for the liveness probe to be considered failed after having succeeded
  failureThreshold: 3

  ## @param livenessProbe.successThreshold Minimum consecutive successes for the liveness probe to be considered successful after having failed
  successThreshold: 1

readinessProbe:
  ## @param readinessProbe.enabled Enable readiness probe
  enabled: true

  ## @param readinessProbe.initialDelaySeconds Delay before the readiness probe is initiated
  initialDelaySeconds: 0

  ## @param readinessProbe.periodSeconds How often to perform the readiness probe
  periodSeconds: 10

  ## @param readinessProbe.timeoutSeconds When the readiness probe times out
  timeoutSeconds: 1

  ## @param readinessProbe.failureThreshold Minimum consecutive failures for the readiness probe to be considered failed after having succeeded
  failureThreshold: 3

  ## @param readinessProbe.successThreshold Minimum consecutive successes for the readiness probe to be considered successful after having failed
  successThreshold: 1

startupProbe:
  ## @param startupProbe.enabled Enable startup probe
  enabled: false

  ## @param startupProbe.initialDelaySeconds Delay before the startup probe is initiated
  initialDelaySeconds: 0

  ## @param startupProbe.periodSeconds How often to perform the startup probe
  periodSeconds: 10

  ## @param startupProbe.timeoutSeconds When the startup probe times out
  timeoutSeconds: 1

  ## @param startupProbe.failureThreshold Minimum consecutive failures for the startup probe to be considered failed after having succeeded
  failureThreshold: 3

  ## @param startupProbe.successThreshold Minimum consecutive successes for the startup probe to be considered successful after having failed
  successThreshold: 1

service:
  ## @param service.annotations Service annotations
  annotations: {}

  ## @param service.type Service type
  type: ClusterIP

  ## @param service.clusterIP Static cluster IP address or None for headless service when service type is ClusterIP
  clusterIP:
  # clusterIP: 10.43.0.100

  ## @param service.loadBalancerIP Static load balancer IP address when service type is LoadBalancer
  loadBalancerIP:
  # loadBalancerIP: 10.0.0.100

  ## @param service.loadBalancerSourceRanges Source IP address ranges when service type is LoadBalancer
  loadBalancerSourceRanges:
    # - 10.0.0.0/24

  ## @param service.externalTrafficPolicy External traffic routing policy when service type is LoadBalancer or NodePort
  externalTrafficPolicy: Cluster

  ports:
    ## @param service.ports.http Service port for HTTP
    http: 8081

  nodePorts:
    ## @param service.nodePorts.http Service node port for HTTP when service type is LoadBalancer or NodePort
    http:
    # http: 30000

ingress:
  ## @param ingress.enabled Enable ingress controller resource
  enabled: false

  ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress
  ingressClassName: ""

  ## @param ingress.pathType Ingress path type
  pathType: ImplementationSpecific

  ## @param ingress.annotations Ingress annotations
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"

  ## @param ingress.hosts[0].host Hostname to your Mongo Express installation
  ## @param ingress.hosts[0].paths Paths within the url structure
  hosts:
    - host: mongo-express.local
      paths:
        - /

  ## @param ingress.tls TLS configuration
  tls: []
    # - secretName: mongo-express-tls
    #   hosts:
    #     - mongo-express.local

## @param resources CPU/Memory resource requests/limits
resources: {}
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

## @param nodeSelector Node labels for pod assignment
nodeSelector: {}

## @param tolerations Tolerations for pod assignment
tolerations: []

## @param affinity Map of node/pod affinities
affinity: {}

## @param extraArgs Additional container arguments
extraArgs: {}
  # name: ""

## @param extraEnvVars Additional container environment variables
extraEnvVars: []
  # - name: MY-NAME
  #   value: "MY-VALUE"

## @param extraEnvVarsCM Name of existing ConfigMap containing additional container environment variables
extraEnvVarsCM:

## @param extraEnvVarsSecret Name of existing Secret containing additional container environment variables
extraEnvVarsSecret:

## @section Config parameters

## @param mongodbServer MongoDB host name or IP address
mongodbServer: mongodb

## @param mongodbPort MongoDB port
mongodbPort: 27017

## @param mongodbEnableAdmin Enable administrator access
mongodbEnableAdmin: false

## @param mongodbAdminUsername Administrator username
mongodbAdminUsername: root

## @param mongodbAdminPassword Administrator password
mongodbAdminPassword: ""

## @param mongodbAuthUsername Database username (only needed if `mongodbEnableAdmin` is `false`)
mongodbAuthUsername: ""

## @param mongodbAuthPassword Database password (only needed if `mongodbEnableAdmin` is `false`)
mongodbAuthPassword: ""

## @param mongodbAuthDatabase Database name (only needed if `mongodbEnableAdmin` is `false`)
mongodbAuthDatabase: ""

## @param siteBaseUrl Set the express baseUrl to ease mounting at a subdirectory
siteBaseUrl: /

## @param siteCookieSecret String used by cookie-parser middleware to sign cookies (Random 32 character long alphanumeric string if not set)
siteCookieSecret: ""

## @param siteSessionSecret String used to sign the session ID cookie by express-session middleware (Random 32 character long alphanumeric string if not set)
siteSessionSecret: ""

## @param basicAuthUsername Mongo Express web login name
basicAuthUsername: ""

## @param basicAuthPassword Mongo Express web login password
basicAuthPassword: ""

## @param existingSecret Name of existing Secret to use
existingSecret: ""

## @param existingSecretKeyMongodbAdminPassword Key in existing Secret that contains administrator password
existingSecretKeyMongodbAdminPassword: mongodb-admin-password

## @param existingSecretKeyMongodbAuthPassword Key in existing Secret that contains database password
existingSecretKeyMongodbAuthPassword: mongodb-auth-password

## @param existingSecretKeySiteCookieSecret Key in existing Secret that contains string used by cookie-parser middleware to sign cookies
existingSecretKeySiteCookieSecret: site-cookie-secret

## @param existingSecretKeySiteSessionSecret Key in existing Secret that contains string used to sign the session ID cookie by express-session middleware
existingSecretKeySiteSessionSecret: site-session-secret

## @param existingSecretKeyBasicAuthPassword Key in existing Secret that contains Mongo Express web login password
existingSecretKeyBasicAuthPassword: basic-auth-password

## @section MongoDB parameters

mongodb:
  ## @param mongodb.enabled Whether to use the MongoDB chart (for testing purposes only)
  enabled: false

## @section Tests parameters

tests:
  image:
    ## @param tests.image.registry Image registry
    registry: ghcr.io

    ## @param tests.image.repository Image repository
    repository: cowboysysop/pytest

    ## @param tests.image.tag Image tag
    tag: 1.0.41

    ## @param tests.image.digest Image digest
    digest: ""

    ## @param tests.image.pullPolicy Image pull policy
    pullPolicy: IfNotPresent