# 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:latest
  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
    cass:
      replicas: 1
      image: onap/aaf/aaf_cass:2.1.20
      fqdn: "aaf-cass"
      cluster_name: "osaaf"
      heap_new_size: "512M"
      max_heap_size: "1024M"
      storage_port: 7000
      ssl_storage_port: 7001
      native_trans_port: 9042
      rpc_port: 9160
      dc: "dc1"
    service:
      replicas: 1
      fqdn: "aaf-service"
      internal_port: 8100
      public_port: 31110
    locate:
      replicas: 1
      fqdn: "aaf-locate"
      internal_port: 8095
      public_port: 31111
    oauth:
      replicas: 1
      fqdn: "aaf0oauth"
      internal_port: 8140
      public_port: 31112
    gui:
      replicas: 1
      fqdn: "aaf-gui"
      internal_port: 8200
      public_port: 31113
    cm:
      replicas: 1
      fqdn: "aaf-cm"
      internal_port: 8150
      public_port: 31114
    fs:
      replicas: 1
      fqdn: "aaf-fs"
      internal_port: 8096
      public_port: 31115
    hello:
      replicas: 0
#     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"

## Persist data to a persitent volume
persistence:
  enabled: true
  config:
    #existingClaim:
    volumeReclaimPolicy: Delete
    accessMode: ReadWriteMany
    size: 2Gi
    mountPath: /dockerdata-nfs
    mountSubPath: "config"
  logs:
    #existingClaim:
    volumeReclaimPolicy: Retain
    accessMode: ReadWriteMany
    size: 2Gi
    mountPath: "/mnt/data/aaf/logs"
  status:
    volumeReclaimPolicy: Delete
    accessMode: ReadWriteMany
    size: 2M
    mountPath: /dockerdata-nfs
    mountSubPath: "status"
  cass:
    #existingClaim:
    volumeReclaimPolicy: Retain
    accessMode: ReadWriteOnce
    size: 10Gi
    mountPath: /dockerdata-nfs
    mountSubPath: "cass"


resources: {}
