## @section Global parameters
## 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

## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
## @param global.storageClass Global StorageClass for Persistent Volume(s)
##
global:
  imageRegistry: ""
  ## E.g.
  ## imagePullSecrets:
  ##   - myRegistryKeySecretName
  ##
  imagePullSecrets: []
  storageClass: ""

## @section Common parameters

## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
##
kubeVersion: ""
## @param nameOverride String to partially override adminFrontend.fullname template (will maintain the release name)
##
nameOverride: ""
## @param fullnameOverride String to fully override adminFrontend.fullname template
##
fullnameOverride: ""
## @param commonLabels Labels to be added to all deployed resources
##
commonLabels: {}
## @param commonAnnotations Annotations to be added to all deployed resources
##
commonAnnotations: {}


## @section Service parameters

## Kubernetes service configuration. For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP
##
service:
  ## @param service.type Kubernetes Service type
  ##
  type: LoadBalancer
  ## @param service.port Service HTTP port
  ##
  port: 80
  ## @param service.nodePort Node Ports to expose
  ##
  nodePort: ""
  ## @param service.loadBalancerIP Use loadBalancerIP to request a specific static IP
  ##
  loadBalancerIP: ""
  ## @param service.externalTrafficPolicy Enable client source IP preservation
  ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  ##
  externalTrafficPolicy: Cluster
  ## @param service.annotations Service annotations
  ##
  annotations: {}
  ## @param service.loadBalancerSourceRanges Limits which cidr blocks can connect to service's load balancer
  ## Only valid if service.type: LoadBalancer
  ##
  loadBalancerSourceRanges: []
  ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
  ##
  extraPorts: []
  ## @param service.nodePorts.http Kubernetes http node port
  ## Example:
  ##  nodePorts:
  ##   http: <to set explicitly, choose port between 30000-32767>
  ##
  nodePorts:
    http: ""

## @section Discourse parameters

## Bitnami Discourse image version
## ref: https://hub.docker.com/r/bitnami/adminFrontend/tags/
## @param image.registry Discourse image registry
## @param image.repository Discourse image repository
## @param image.tag Discourse image tag
## @param image.pullPolicy Discourse image pull policy
## @param image.pullSecrets Discourse image pull secrets
## @param image.debug Specify if debug logs should be enabled
##
image:
  registry: open.greenhost.net:4567
  repository: openappstack/admin-frontend/admin-frontend
  tag: 0.1.0
  ## 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/
  ## e.g:
  ## pullSecrets:
  ##   - myRegistryKeySecretName
  ##
  pullSecrets: []
  ## Set to true if you would like to see extra information on logs
  ##
  debug: false
## @param imagePullSecrets Specify docker-registry secret names as an array
##
imagePullSecrets: []
## Admin frontend configuration parameters
## ref: https://open.greenhost.net/openappstack/admin-frontend
##
adminFrontend:
  ## @param adminFrontend.reactAppApiUrl URL to the admin-backend API
  reactAppApiUrl: "http://oas-api.initdevelopment.com/api/v1"
  ## @param adminFrontend.extendEslint Whether to read .eslint.json rules
  extendEslint: false
  ## @param adminFrontend.host Discourse host to create application URLs (include the port if =/= 80)
  ##
  host: ""
  ## @param adminFrontend.siteName Discourse site name
  ##
  siteName: 'My Site!'
  ## @param adminFrontend.username Admin user of the application
  ##
  username: user
  ## @param adminFrontend.password password. WARNING: Minimum length of 10 characters
  ## Defaults to a random 10-character alphanumeric string if not set
  ##
  password: ""
  ## @param adminFrontend.existingSecret Name of an existing secret containing the password (ignores previous password)
  ## The secret should contain the following key:
  ## adminFrontend-password
  ##
  existingSecret: ""
  ## @param adminFrontend.email Admin user email of the application
  ##
  email: user@example.com
  ## @param adminFrontend.command Custom command to override image cmd
  ##
  command: []
  ## @param adminFrontend.args Custom args for the custom command
  ##
  args: []
  ## @param adminFrontend.containerSecurityContext Container security context specification
  ## Example:
  ## capabilities:
  ##   drop:
  ##   - ALL
  ## readOnlyRootFilesystem: true
  ## runAsNonRoot: true
  ## runAsUser: 1000
  ##
  containerSecurityContext: {}
  ## Discourse container's resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ## We usually recommend not to specify default resources and to leave this as a conscious
  ## choice for the user. This also increases chances charts run on environments with little
  ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  ## @param adminFrontend.resources.limits The resources limits for the container
  ## @param adminFrontend.resources.requests The requested resources for the container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}
  ## Discourse extra options for liveness probe
  ## WARNING: Discourse installation process may take up some time and
  ## setting inappropriate values here may lead to pods failure.
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param adminFrontend.livenessProbe.enabled Enable/disable livenessProbe
  ## @param adminFrontend.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
  ## @param adminFrontend.livenessProbe.periodSeconds How often to perform the probe
  ## @param adminFrontend.livenessProbe.timeoutSeconds When the probe times out
  ## @param adminFrontend.livenessProbe.failureThreshold Minimum consecutive failures for the probe
  ## @param adminFrontend.livenessProbe.successThreshold Minimum consecutive successes for the probe
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 500
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  ## Discourse extra options for readiness probe
  ## WARNING: Discourse installation process may take up some time and
  ## setting inappropriate values here may lead to pods failure.
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param adminFrontend.readinessProbe.enabled Enable/disable readinessProbe
  ## @param adminFrontend.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
  ## @param adminFrontend.readinessProbe.periodSeconds How often to perform the probe
  ## @param adminFrontend.readinessProbe.timeoutSeconds When the probe times out
  ## @param adminFrontend.readinessProbe.failureThreshold Minimum consecutive failures for the probe
  ## @param adminFrontend.readinessProbe.successThreshold Minimum consecutive successes for the probe
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  ## @param adminFrontend.customLivenessProbe Custom liveness probe to execute (when the main one is disabled)
  ##
  customLivenessProbe: {}
  ## @param adminFrontend.customReadinessProbe Custom readiness probe to execute (when the main one is disabled)
  ##
  customReadinessProbe: {}
  ## Discourse SMTP settings
  ## @param adminFrontend.smtp.enabled Enable/disable SMTP
  ## @param adminFrontend.smtp.host SMTP host name
  ## @param adminFrontend.smtp.port SMTP port number
  ## @param adminFrontend.smtp.user SMTP account user name
  ## @param adminFrontend.smtp.password SMTP account password
  ## @param adminFrontend.smtp.protocol SMTP protocol (Allowed values: tls, ssl)
  ## @param adminFrontend.smtp.auth SMTP authentication method
  ## @param adminFrontend.smtp.existingSecret Name of an existing Kubernetes secret. The secret must have the following key configured: `smtp-password`
  ##
  smtp:
    enabled: false
    host: ""
    port: ""
    user: ""
    password: ""
    protocol: ""
    auth: ""
    existingSecret: ""
  ## @param adminFrontend.extraEnvVars An array to add extra env vars
  ## For example:
  ## extraEnvVars:
  ##   adminFrontend:
  ##   - name: DISCOURSE_ELASTICSEARCH_URL
  ##     value: test
  ##
  extraEnvVars: []
  ## @param adminFrontend.extraEnvVarsCM Array to add extra configmaps
  ##
  extraEnvVarsCM: []
  ## @param adminFrontend.extraEnvVarsSecret Array to add extra environment variables from a secret
  ##
  extraEnvVarsSecret: ""
  ## @param adminFrontend.extraVolumeMounts Additional volume mounts (used along with `extraVolumes`)
  ## Example: Mount CA file
  ## extraVolumeMounts
  ##   - name: ca-cert
  ##     subPath: ca_cert
  ##     mountPath: /path/to/ca_cert
  ##
  extraVolumeMounts: []
  ## @param adminFrontend.skipInstall Do not run the Discourse installation wizard
  ## Use only in case you are importing an existing database.
  ##
  skipInstall: false
## @param replicaCount Number of Discourse & Sidekiq replicas
## (Note that you will need ReadWriteMany PVCs for this to work properly)
##
replicaCount: 1
## @param extraVolumes Array of extra volumes to be added deployment. Requires setting `extraVolumeMounts`
## Example: Add secret volume
## extraVolumes:
##  - name: ca-cert
##    secret:
##      secretName: ca-cert
##      items:
##        - key: ca-cert
##          path: ca_cert
##
extraVolumes: []
## @param sidecars Attach additional sidecar containers to the pod
## Example:
## sidecars:
##   - name: your-image-name
##     image: your-image
##     imagePullPolicy: Always
##     ports:
##       - name: portname
##         containerPort: 1234
##
sidecars: []
## @param initContainers Additional init containers to add to the pods
##
## e.g.
## initContainers:
##   - name: your-image-name
##     image: your-image
##     imagePullPolicy: Always
##     ports:
##       - name: portname
##       containerPort: 1234
##
initContainers: []
## @param serviceAccount.create Whether the service account should be created
## @param serviceAccount.annotations Annotations to add to the service account
## @param serviceAccount.name Name to be used for the service account
##
serviceAccount:
  create: false
  annotations: {}
  ## If not set and create is true, a name is generated using the fullname template
  ##
  name: ""
## @param podSecurityContext Pod security context specification
## Example:
##  fsGroup: 2000
##
##
podSecurityContext: {}
## @param hostAliases Add deployment host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
##
hostAliases: []
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
  ## @param persistence.enabled Whether to enable persistence based on Persistent Volume Claims
  ##
  enabled: false
  ## @param persistence.storageClass adminFrontend & sidekiq 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: ""
  ## @param persistence.existingClaim Use a existing PVC which must be created manually before bound
  ##
  existingClaim: ""
  ## @param persistence.accessMode PVC Access Mode (RWO, ROX, RWX)
  ##
  accessMode: ReadWriteOnce
  ## @param persistence.size Size of the PVC to request
  ##
  size: 10Gi
  ## @param persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
  ## selector:
  ##   matchLabels:
  ##     app: my-app
  selector: {}
## @param updateStrategy.type Update strategy type. Only really applicable for deployments with RWO PVs attached
## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
## terminate the single previous pod, so that the new, incoming pod can attach to the PV
## Example:
## updateStrategy:
##  type: RollingUpdate
##  rollingUpdate:
##    maxSurge: 25%
##    maxUnavailable: 25%
updateStrategy:
  type: RollingUpdate
## @param podAnnotations Additional pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## @param podLabels Additional pod labels
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
podLabels: {}
## @param podAffinityPreset Pod affinity preset. Allowed values: soft, hard
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAffinityPreset: ""
## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAntiAffinityPreset: soft
## Node affinity preset
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## @param nodeAffinityPreset.key Node label key to match Ignored if `affinity` is set.
## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
##
nodeAffinityPreset:
  type: ""
  ## E.g.
  ## key: "kubernetes.io/e2e-az-name"
  ##
  key: ""
  ## E.g.
  ## values:
  ##   - e2e-az1
  ##   - e2e-az2
  ##
  values: []
## @param affinity Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## Note: podAffinityPreset, podAntiAffinityPreset, and  nodeAffinityPreset will be ignored when it's set
##
affinity: {}
## @param nodeSelector Node labels for pod assignment.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## @param tolerations Tolerations for pod assignment.
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []

## @section Sidekiq parameters

sidekiq:
  ## @param sidekiq.containerSecurityContext Container security context specification
  ## capabilities:
  ##   drop:
  ##   - ALL
  ## readOnlyRootFilesystem: true
  ## runAsNonRoot: true
  ## runAsUser: 1000
  ##
  containerSecurityContext: {}
  ## @param sidekiq.command Custom command to override image cmd (evaluated as a template)
  ##
  command: ['/opt/bitnami/scripts/adminFrontend/entrypoint.sh']
  ## @param sidekiq.args Custom args for the custom command (evaluated as a template)
  ##
  args: ['/opt/bitnami/scripts/adminFrontend-sidekiq/run.sh']
  ## @param sidekiq.resources Sidekiq container resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ## We usually recommend not to specify default resources and to leave this as a conscious
  ## choice for the user. This also increases chances charts run on environments with little
  ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  ##
  resources: {}
  ## Sidekiq extra options for liveness probe
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param sidekiq.livenessProbe.enabled Enable/disable livenessProbe
  ## @param sidekiq.livenessProbe.initialDelaySeconds Delay before liveness probe is initiated
  ## @param sidekiq.livenessProbe.periodSeconds How often to perform the probe
  ## @param sidekiq.livenessProbe.timeoutSeconds When the probe times out
  ## @param sidekiq.livenessProbe.failureThreshold Minimum consecutive failures for the probe
  ## @param sidekiq.livenessProbe.successThreshold Minimum consecutive successes for the probe
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 500
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  ## Sidekiq extra options for readiness probe
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param sidekiq.readinessProbe.enabled Enable/disable readinessProbe
  ## @param sidekiq.readinessProbe.initialDelaySeconds Delay before readiness probe is initiated
  ## @param sidekiq.readinessProbe.periodSeconds How often to perform the probe
  ## @param sidekiq.readinessProbe.timeoutSeconds When the probe times out
  ## @param sidekiq.readinessProbe.failureThreshold Minimum consecutive failures for the probe
  ## @param sidekiq.readinessProbe.successThreshold Minimum consecutive successes for the probe
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  ## @param sidekiq.customLivenessProbe Custom liveness probe to execute (when the main one is disabled)
  ##
  customLivenessProbe: {}
  ## @param sidekiq.customReadinessProbe Custom readiness probe to execute (when the main one is disabled)
  ##
  customReadinessProbe: {}
  ## @param sidekiq.extraEnvVars An array to add extra env vars
  ## For example:
  ## extraEnvVars:
  ##   - name: DISCOURSE_ELASTICSEARCH_URL
  ##     value: test
  ##
  extraEnvVars: []
  ## @param sidekiq.extraEnvVarsCM Array to add extra configmaps
  ##
  extraEnvVarsCM: []
  ## @param sidekiq.extraEnvVarsSecret Name of the secret that holds extra env vars
  ##
  extraEnvVarsSecret: ""
  ## @param sidekiq.extraVolumeMounts Additional volume mounts
  ## Example: Mount CA file
  ## extraVolumeMounts
  ##   - name: ca-cert
  ##     subPath: ca_cert
  ##     mountPath: /path/to/ca_cert
  ##
  extraVolumeMounts: []

## @section Volume Permissions parameters

## Init containers parameters:
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup
## values from the securityContext section.
##
volumePermissions:
  ## @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)
  ##
  enabled: false
  ## Init containers' resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ## We usually recommend not to specify default resources and to leave this as a conscious
  ## choice for the user. This also increases chances charts run on environments with little
  ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  ## @param volumePermissions.resources.limits The resources limits for the init container
  ## @param volumePermissions.resources.requests The requested resources for the init container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}

## @section Ingress parameters

## Ingress parameters
##
ingress:
  ## @param ingress.enabled Enable ingress controller resource
  ##
  enabled: false
  ## @param ingress.certManager Add annotations for cert-manager
  ##
  certManager: false
  ## @param ingress.hostname Default host for the ingress resource
  ##
  hostname: adminFrontend.local
  ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
  ##
  apiVersion: ""
  ## @param ingress.path Ingress path
  ##
  path: /
  ## @param ingress.pathType Ingress path type
  ##
  pathType: ImplementationSpecific
  ## @param ingress.annotations Ingress annotations done as key:value pairs
  ## For a full list of possible ingress annotations, please see
  ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
  ##
  ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
  ##
  annotations: {}
  ## @param ingress.tls Enable TLS configuration for the hostname defined at ingress.hostname parameter
  ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
  ## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
  ##
  tls: false
  ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
  ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
  ## extraHosts:
  ## - name: adminFrontend.local
  ##   path: /
  extraHosts: []
  ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
  ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
  ## extraTls:
  ## - hosts:
  ##     - adminFrontend.local
  ##   secretName: adminFrontend.local-tls
  extraTls: []
  ## @param ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
  ## key and certificate should start with -----BEGIN CERTIFICATE----- or
  ## -----BEGIN RSA PRIVATE KEY-----
  ##
  ## name should line up with a tlsSecret set further up
  ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
  ##
  ## It is also possible to create and manage the certificates outside of this helm chart
  ## Please see README.md for more information
  ## Example:
  ## - name: adminFrontend.local-tls
  ##   key:
  ##   certificate:
  secrets: []
