# Copyright © 2017 Amdocs, Bell Canada
# Modifications © 2020 AT&T, Orange
#
# 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:
  nodePortPrefix: 302
  persistence:
    enabled: true
  # Standard OOM
  pullPolicy: "Always"

  aaf:
    image: onap/aaf/aaf_core:2.1.23
    config:
      image: onap/aaf/aaf_config:2.1.23

flavor: small

#################################################################
# Application configuration defaults.
#################################################################
# application image
pullPolicy: Always

replicaCount: 1

binary: fs

sequence_order:
  - service
  - locate

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 5
  periodSeconds: 10
  port: api

service:
  name: aaf-fs
  type: ClusterIP
  ports:
    - name: api
      port: 8096
      protocol: http

ingress:
  enabled: false
  service:
    - baseaddr: "aaffs"
      name: "aaf-fs"
      port: 8096
  config:
    ssl: "none"

# Configure resource requests and limits
resources:
  small:
    limits:
      cpu: 200m
      memory: 110Mi
    requests:
      cpu: 1m
      memory: 80Mi
  large:
    limits:
      cpu: 500m
      memory: 700Mi
    requests:
      cpu: 100m
      memory: 400Mi
  unlimited: {}
