# 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

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/dmaap/datarouter-prov:2.1.3
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:
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  mountPath: /dockerdata-nfs

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

ingress:
  enabled: false

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-prov db configuration
  dmaapDrDb:
    mariadbServiceName: dmaap-dr-db-svc
    mariadbServicePort: 3306
    mariadbContName: dmaap-dr-db

# mariadb-galera configuration
mariadb:
  name: dmaap-dr-db
  nameOverride: dmaap-dr-db
  replicaCount: 2
  config:
    mariadbRootPassword: datarouter
    userName: datarouter
    userPassword: datarouter
    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: dmaap-dr@dmaap-dr.onap.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: {}