# Copyright © 2017 Amdocs, Bell Canada
# Modifications © 2020 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.

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  # Readiness image
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2
  # Ubuntu Init image
  ubuntuInitRepository: registry.hub.docker.com
  ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
  # Logging image
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  # BusyBox image
  busyboxRepository: registry.hub.docker.com
  busyboxImage: library/busybox:1.31
  persistence:
    enabled: true
  # Standard OOM
  pullPolicy: "Always"
  repository: "nexus3.onap.org:10001"

  # Use Local
  #pullPolicy: IfNotPresent
  #repository: "nexus3.onap.org:10003"

  aaf:
    readiness: false
    image: onap/aaf/aaf_core:2.1.20
    aaf_env: "DEV"
    public_fqdn: "aaf.osaaf.org"
    aaf_release: "El Alto"
  # DUBLIN ONLY - for M4 compatibility with Casablanca
  #  aaf_locator_name: "public.%NS.%N"
  #  aaf_locator_name_oom: "%NS.%N"
  # EL ALTO and Beyond
    aaf_locator_name: "%NS.%N"
    aaf_locator_name_oom: "%CNS.%NS.%N"
    cadi_latitude: "38.0"
    cadi_longitude: "-72.0"
    cadi_x509_issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US"

    config:
      image: onap/aaf/aaf_config:2.1.20

    service:
      fqdn: "aaf-service"
      internal_port: 8100
      public_port: 31110
    locate:
      fqdn: "aaf-locate"
      internal_port: 8095
      public_port: 31111
    oauth:
      fqdn: "aaf-oauth"
      internal_port: 8140
      public_port: 31112
#     Note: as hello is a sample app, find values in charts/aaf-hello/values.yaml


#################################################################
# Application configuration defaults.
#################################################################

flavor: small
# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 150
  periodSeconds: 10

ingress:
  enabled: false
  service:
    - baseaddr: "aaf.api"
      name: "aaf-service"
      port: 8100
  config:
    ssl: "none"

persistence: {}

resources: {}
