# Copyright © 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#################################################################
# Global configuration defaults.
#################################################################
global:
  aafEnabled: true
  aafAgentImage: onap/aaf/aaf_agent:2.1.15
  nodePortPrefix: 302
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  busyboxRepository: registry.hub.docker.com
  busyboxImage: library/busybox:latest
  clusterName: cluster.local

persistence:
  mountPath: /dockerdata-nfs
  backup:
    mountPath: /dockerdata-nfs/backup
  storageClass:
repositoryOverride: docker.io

#################################################################
# Application configuration defaults.
#################################################################
## Init containers parameters:
sysctlImage:
  enabled: true

# application image
image:
  imageName: bitnami/elasticsearch
  tag: 6.8.6-debian-9-r23
  ## 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:
  #   - myRegistryKeySecretName
  ## Set to true if you would like to see extra information on logs
  ## ref:  https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging
  ##
  debug: false

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

## String to fully override common.fullname template
##
# fullnameOverride:
## updateStrategy for ElasticSearch coordinating deployment
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
##
updateStrategy:
  type: RollingUpdate
heapSize: 128m
## Provide annotations for the coordinating-only pods.
##
podAnnotations: {}
## Pod Security Context for coordinating-only pods.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
  enabled: true
  fsGroup: 1001
  runAsUser: 1001
## Affinity for pod assignment.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Elasticsearch coordinating-only container's resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
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.
  limits: {}
  #   cpu: 100m
  #   memory: 128Mi
  requests:
    cpu: 25m
    memory: 256Mi
## Elasticsearch coordinating-only container's liveness and readiness probes
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe:
  enabled: false
#  initialDelaySeconds: 90
#  periodSeconds: 10
#  timeoutSeconds: 5
#  successThreshold: 1
#  failureThreshold: 5
readinessProbe:
  enabled: false
#  initialDelaySeconds: 90
#  periodSeconds: 10
#  timeoutSeconds: 5
#  successThreshold: 1
#  failureThreshold: 5
## Service parameters for coordinating-only node(s)
##
serviceAccount:
  ## Specifies whether a ServiceAccount should be created for the coordinating node
  ##
  create: false
  ## The name of the ServiceAccount to use.
  ## If not set and create is true, a name is generated using the fullname template
  ##
  # name:

## Bitnami Minideb image version
## ref: https://hub.docker.com/r/bitnami/minideb/tags/
##
sysctlImage:
  enabled: true
  imageName: bitnami/minideb
  tag: stretch
  ## 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: 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

# nginx image
nginx:
  imageName: bitnami/nginx
  tag: 1.16-debian-9
  pullPolicy: IfNotPresent
  service:
    name: nginx
    ports:
    - name: elasticsearch
      port: 8080
## Custom server block to be added to NGINX configuration
## PHP-FPM example server block:
  serverBlock:
    https: |-
      server {
        listen 9200 ssl;
        #server_name ;
        # auth_basic "server auth";
        # auth_basic_user_file /etc/nginx/passwords;
        ssl_certificate /opt/app/osaaf/local/certs/cert.pem;
        ssl_certificate_key /opt/app/osaaf/local/certs/key.pem;
        location / {
          # deny node shutdown api
          if ($request_filename ~ "_shutdown") {
            return 403;
            break;
          }

          proxy_pass http://localhost:9000;
          proxy_http_version 1.1;
          proxy_set_header Connection "Keep-Alive";
          proxy_set_header Proxy-Connection "Keep-Alive";
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $http_host;
          proxy_redirect off;
        }

        location = / {
          proxy_pass http://localhost:9000;
          proxy_http_version 1.1;
          proxy_set_header Connection "Keep-Alive";
          proxy_set_header Proxy-Connection "Keep-Alive";
          proxy_redirect off;
          auth_basic "off";
        }
      }
    http: |-
      server {
        listen 9200 ;
        #server_name ;
        location / {
          # deny node shutdown api
          if ($request_filename ~ "_shutdown") {
            return 403;
            break;
          }

          proxy_pass http://localhost:9000;
          proxy_http_version 1.1;
          proxy_set_header Connection "Keep-Alive";
          proxy_set_header Proxy-Connection "Keep-Alive";
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $http_host;
          proxy_redirect off;
        }

        location = / {
          proxy_pass http://localhost:9000;
          proxy_http_version 1.1;
          proxy_set_header Connection "Keep-Alive";
          proxy_set_header Proxy-Connection "Keep-Alive";
          proxy_redirect off;
          auth_basic "off";
        }
      }
#################################################################
# coordinating service configuration defaults.
#################################################################

service:
  name: ""
  suffix: ""
  ## coordinating-only service type
  ##
  type: ClusterIP
  headlessPorts:
  - name: http-transport
    port: 9300
  headless:
    suffix: discovery
    annotations:
      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
    publishNotReadyAddresses: true
  ## Elasticsearch tREST API port
  ##
  ports:
  - name: elasticsearch
    port: 9200


  ## Specify the nodePort value for the LoadBalancer and NodePort service types.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  ##
  # nodePort:
  ## Provide any additional annotations which may be required. This can be used to
  ## set the LoadBalancer service type to internal only.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  ##
  annotations: {}
  ## Set the LoadBalancer service type to internal only.
  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  ##
  # loadBalancerIP:
  ## Provide functionality to use RBAC
  ##
#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: &aaf_secret_uid elasticsearch-aaf-deploy-creds
    type: basicAuth
    externalSecret: '{{ ternary (tpl (default "" .Values.aafConfig.aafDeployCredsExternalSecret) .) "aafIsDisabled" .Values.global.aafEnabled }}'
    login: '{{ .Values.aafConfig.aafDeployFqi }}'
    password: '{{ .Values.aafConfig.aafDeployPass }}'
    passwordPolicy: required
#################################################################
# aaf configuration defaults.
#################################################################
aafConfig:
  addconfig: true
  fqdn: "elastic"
  image: onap/aaf/aaf_agent:2.1.15
  app_ns: "org.osaaf.aaf"
  fqi_namespace: org.onap.elastic
  fqi: "elastic@elastic.onap.org"
  public_fqdn: "aaf.osaaf.org"
  deploy_fqi: "deployer@people.osaaf.org"
  aafDeployFqi: "deployer@people.osaaf.org"
  aafDeployPass: demo123456!
  #aafDeployCredsExternalSecret: some secret
  #cadi_latitude: "52.5"
  #cadi_longitude: "13.4"
  secret_uid: *aaf_secret_uid
#################################################################
# subcharts configuration defaults.
#################################################################


#data:
#  enabled: false

#curator:
#  enabled: false

## Change nameOverride to be consistent accross all elasticsearch (sub)-charts

master:
  replicaCount: 3
  # dedicatednode: "yes"
  # working as master node only, in this case increase replicaCount for elasticsearch-data
  # dedicatednode: "no"
  # handles master and data node functionality
  dedicatednode: "no"
data:
  enabled: false
curator:
  enabled: false