# 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.2
flavor: small
#################################################################
# Application configuration defaults.
#################################################################
# application image
aaf_init:
  # You might want this in your own app.  For AAF, we store in global
  # replicas: 1
  fqdn: "aaf-hello"
  image: onap/aaf/aaf_agent:2.1.15
  app_ns: "org.osaaf.aaf"
  fqi: "aaf@aaf.osaaf.org"
  fqdn: "aaf-hello"
  public_fqdn: "aaf.osaaf.org"
  deploy_fqi: "deployer@people.osaaf.org"
  cadi_latitude: "38.0"
  cadi_longitude: "-72.0"

service:
  image: onap/aaf/aaf_hello:2.1.15
  port: "8130"
  public_port: "31119"

persistence:
  enabled: true
    #existingClaim:
    # You will want "Reatan" in non-Hello Example.
  volumeReclaimPolicy: Delete
  accessMode: ReadWriteMany
  size: 40M
  mountPath: /dockerdata-nfs
  mountSubPath: aaf/hello

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

readiness:
  initialDelaySeconds: 5
  periodSeconds: 10

ingress:
  enabled: false
  service:
    - baseaddr: "aafhello"
      name: "aaf-hello"
      port: 8130
  config:
    ssl: "none"

# Configure resource requests and limits
resources:
 small:
   limits:
     cpu: 200m
     memory: 500Mi
   requests:
     cpu: 10m
     memory: 200Mi
 large:
   limits:
     cpu: 400m
     memory: 1Gi
   requests:
     cpu: 20m
     memory: 500Mi
 unlimited: {}
