# Copyright © 2018 Amdocs, Bell Canada, AT&T
#
# 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.

# Default values for data-router.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global: # global defaults
  nodePortPrefix: 302
  loggingImage: beats/filebeat:5.5.0

# application image
repository: nexus3.onap.org:10001
image: onap/data-router:1.7.0
pullPolicy: Always
restartPolicy: Always
flavor: small
flavorOverride: small
dockerhubRepository: registry.hub.docker.com
ubuntuInitImage: oomk8s/ubuntu-init:2.0.0

# application configuration
config:
  keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
  keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
  schemaTranslatorList: config
  schemaVersionList: "v11,v12,v13,v14,v15,v16,v17,v18,v19"
  schemaApiDefault: "v19"


# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 120
  periodSeconds: 10

service:
  name: aai-data-router
  internalPort: 9502

ingress:
  enabled: false

persistence:
  enabled: true

  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:
  volumeReclaimPolicy: Retain

  ## database 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: "-"
  accessMode: ReadWriteMany
  size: 2Gi
  mountPath: /dockerdata-nfs
  mountSubPath: aai/data-router/logs

resources:
  small:
    limits:
      cpu: 2
      memory: 4Gi
    requests:
      cpu: 0.25
      memory: 750Mi
  large:
    limits:
      cpu: 4
      memory: 8Gi
    requests:
      cpu: 0.5
      memory: 1536Mi
  unlimited: {}

# Entity Event route configuration
event:
  port:
    dmaap: 3905
  protocol: https
  consumer:
    topic: AAI-EVENT
