# 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
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.0
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  loggingDirectory: /opt/app/datartr/logs

#################################################################
# Application configuration defaults.
#################################################################
# application image
repository: nexus3.onap.org:10001
image: onap/dmaap/datarouter-prov:2.1.0
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: false

ingress:
  enabled: false

# 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: {}

config:
  # dr provisioning server configuration
  dmaapDrProv:
    servicetype: NodePort
    name: dmaap-dr-prov
    externalPort: 8080
    externalPort2: 8443
    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