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

#################################################################
# Global configuration defaults.
#################################################################

global:
  nodePortPrefix: 302
  # Readiness image
  readinessImage: onap/oom/readiness:3.0.1
  # 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"

  cmpv2Enabled: true
  addTestingComponents: false
  aaf:
    readiness: false
    image: onap/aaf/aaf_core:2.1.23
    aaf_env: "DEV"
    public_fqdn: "aaf.osaaf.org"
    aaf_release: "Frankfurt"
  # 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.23

    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: {}
