# 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: docker.io
  ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
  # Logging image
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  # BusyBox image
  busyboxRepository: docker.io
  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: {}
