# Copyright (c) 2018 Amdocs, Bell Canada, AT&T
# Modifications Copyright (c) 2020 Nokia
#
# 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 traversal.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global: # global defaults
  nodePortPrefix: 302
  readinessImage: onap/oom/readiness:3.0.1


# application image
repository: nexus3.onap.org:10001
image: onap/aai-traversal:1.7.2
pullPolicy: Always
restartPolicy: Always
flavor: small
flavorOverride: small
# application configuration
config:

  # Specifies timeout information such as application specific and limits
  timeout:
    # If set to true application will timeout for queries taking longer than limit
    enabled: true
    # Specifies which apps (X-FromAppId) header should get overridden and (-1) no timeout
    appspecific: JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1
    # Specifies how long should it wait before timing out the REST request
    limit: 180000

  # Disables the updateQueryData script to run as part of traversal
  disableUpdateQuery: true

  # Override of the DSL Timeout Limit
  dslOverride: 'ZV4V7E3N77SKIB6MR9MHQ6M4P6Q99Z7M76RBODA'

  dsl:
    # Dsl timeout configuration
    timeout:
      # Whether or not the dsl is enabled
      enabled: true
      # Default time limit of the DSL query
      limit: 150000
      # App Specific Timeout Limit for each of the X-FromAppId
      appspecific:
        - JUNITTESTAPP1,1
        - JUNITTESTAPP2,-1
        - AAI-TOOLS,-1
        - DCAE-CCS,1200000
        - DCAES,1200000
        - VPESAT,-1
        - AAI-CACHER,-1
        - VidAaiController,300000
        - AAI-UI,180000

persistence:
  mountPath: /dockerdata-nfs
  mountSubPath: aai/aai-traversal

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10

service:
  type: ClusterIP
  portName: aai-traversal-8446
  internalPort: 8446
  portName2: aai-traversal-5005
  internalPort2: 5005

ingress:
  enabled: false

# Configure resource requests and limits
# ref: http://kubernetes.io/docs/user-guide/compute-resources/
resources:
  small:
    limits:
      cpu: 2
      memory: 4Gi
    requests:
      cpu: 1
      memory: 3Gi
  large:
    limits:
      cpu: 4
      memory: 8Gi
    requests:
      cpu: 2
      memory: 4Gi
  unlimited: {}
