# 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
  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

    certServiceClient:
      secret:
        name: aaf-cert-service-client-tls-secret

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