# Copyright © 2017 Amdocs, Bell Canada
#
# 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:
  nodePortPrefix: 302
  loggingDirectory: /opt/app/datartr/logs
  persistence: {}

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: dmaap-dr-db-user-secret
    name: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.dmaapDrDb.userCredentialsExternalSecret) . }}'
    login: '{{ .Values.config.dmaapDrDb.userName }}'
    password: '{{ .Values.config.dmaapDrDb.userPassword }}'

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/dmaap/datarouter-prov:2.1.6
pullPolicy: Always

# flag to enable debugging - application support required
debugEnabled: false

# application configuration - see parent values chart

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 30
  periodSeconds: 10
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 30
  periodSeconds: 10

## Persist data to a persitent volume
persistence:
  enabled: true
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  mountPath: /dockerdata-nfs

  aafCredsMountSubPath: data-router/dr-prov/aaf-props
  aafCredsSize: 10M
  aafCredsPath: /opt/app/osaaf/local

ingress:
  enabled: false
  service:
    - baseaddr: "dmaapdrprov"
      name: "dmaap-dr-prov"
      port: 8443
  config:
    ssl: "redirect"

config:
  # dr provisioning server configuration
  dmaapDrProv:
    servicetype: NodePort
    internalPort: 8080
    internalPort2: 8443
    portName: dr-prov-port
    portName2: dr-prov-port2
    nodePort: 59
    nodePort2: 69
    # dr uses the EELF Logging framework https://github.com/att/EELF
    # and supports the following log levels: TRACE, DEBUG, INFO, WARN, ERROR, OFF
    logLevel: "INFO"

  # dr-prov db configuration
  dmaapDrDb:
    mariadbServiceName: dmaap-dr-db-svc
    mariadbServicePort: 3306
    mariadbContName: dmaap-dr-db
    userName: datarouter
#    userPassword: password
#    userCredentialsExternalSecret: some secret

# mariadb-galera configuration
mariadb:
  name: dmaap-dr-db
  nameOverride: dmaap-dr-db
  replicaCount: 2
  config:
    userCredentialsExternalSecret: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
    mysqlDatabase: datarouter
  service:
    name: dmaap-dr-db-svc
    portName: dmaap-dr-db-svc
  nfsprovisionerPrefix: dmaap-dr-db
  persistence:
    size: 1Gi
    mountSubPath: data-router/dr-db-data
  disableNfsProvisioner: true

#AAF local config
aafConfig:
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  fqdn: dmaap-dr-prov
  fqi: dmaap-dr-prov@dmaap-dr.onap.org
  publicFqdn: dmaap-dr.onap.org
  cadiLatitude: 0.0
  cadiLongitude: 0.0

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 2000m
      memory: 4Gi
    requests:
      cpu: 500m
      memory: 1Gi
  large:
    limits:
      cpu: 4000m
      memory: 8Gi
    requests:
      cpu: 1000m
      memory: 2Gi
  unlimited: {}
