# Copyright (c) 2017 Amdocs, Bell Canada
# Modifications Copyright (c) 2018 AT&T
# Modifications Copyright (c) 2020 Nokia, Orange
#
# 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.

# Default values for aai.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global: # global defaults
  nodePortPrefix: 302
  repository: nexus3.onap.org:10001
  dockerhubRepository: docker.io
  busyboxImage: busybox

  readinessImage: onap/oom/readiness:3.0.1

  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0

  restartPolicy: Always

  installSidecarSecurity: false
  aafEnabled: true

  fproxy:
    name: forward-proxy
    activeSpringProfiles: noHostVerification,cadi
    image: onap/fproxy:2.1.13
    port: 10680

  rproxy:
    name: reverse-proxy
    activeSpringProfiles: noHostVerification,cadi
    image: onap/rproxy:2.1.13
    port: 10692

  tproxyConfig:
    name: init-tproxy-config
    image: onap/tproxy-config:2.1.13

  # AAF server details. Only needed if the AAF DNS does not resolve from the pod
  aaf:
    serverIp: 10.12.6.214
    serverHostname: aaf.osaaf.org
    serverPort: 30247

  cassandra:
    #This will instantiate AAI cassandra cluster, default:shared cassandra.
    localCluster: false

    #Service Name of the cassandra cluster to connect to.
    #Override it to aai-cassandra if localCluster is enabled.
    serviceName: cassandra

    #This should be same as shared cassandra instance or if localCluster is enabled
    #then it should be same as aai-cassandra replicaCount
    replicas: 3

    #Cassanara login details
    username: cassandra
    password: cassandra

  aai:
    serviceName: aai
  babel:
    serviceName: aai-babel
  aaiElasticsearch:
    serviceName: aai-elasticsearch
  resources:
    serviceName: aai-resources
  sparkyBe:
    serviceName: aai-sparky-be
  dataRouter:
    serviceName: aai-data-router
  gizmo:
    serviceName: aai-gizmo
  modelloader:
    serviceName: aai-modelloader
  searchData:
    serviceName: aai-search-data
  traversal:
    serviceName: aai-traversal
  graphadmin:
    serviceName: aai-graphadmin
  spike:
    serviceName: aai-spike

  initContainers:
    enabled: true
  # Specifies a list of jobs to be run
  jobs:
    # When enabled, it will create the schema based on oxm and edge rules
    createSchema:
      enabled: true
    # When enabled, it will create the widget models via REST API to haproxy
    updateQueryData:
      enabled: true
    #migration using helm hooks
    migration:
      enabled: false
      remoteCassandra:
        enabled: false
        storage:
          backend: cassandra
          hostname: 10.10.10.10
          connectionTimeout: 100000
          cacheSize: 1000000
          keyConsistent: true

          #If backend is cql or cassandra it should be keyspace name
          #else backend is hbase it should be hbase table name
          name: aaigraph

       ## CQL driver specific properties for janusgraph
       #  cql:
       #    #Name of the Cassandra Cluster
       #    cluster: someclustername
       #    readConsistency: QUORUM
       #    writeConsistency: QUORUM
       #    replicationFactor: 3
       #    localConsistencyForSysOps: true

       ## Cassandra driver specific properties for janusgraph
          cassandra:
            #Name of the Cassandra Cluster
            clusterName: aai-cluster
            localDataCenter: Pod lab
            readConsistency: LOCAL_QUORUM
            writeConsistency: LOCAL_QUORUM
            replicationFactor: 3

        #storage:
        #  backend: cassandra
        #  hostname: somehost1,somehost2,somehost3
        #  connectionTimeout: 100000
        #  cacheSize: 1000000
        #  clusterName: someClusterName
        #  localDataCenter: someDataCenter
        #  keyConsistent: true
        #  #If backend is cql or cassandra it should be keyspace name
        #  #else backend is hbase it should be hbase table name
        #  name: your_hbase_table_or_keyspace_name

        ## CQL driver specific properties for janusgraph
        #  cql:
        #    #Name of the Cassandra Cluster
        #    cluster: someclustername
        #    readConsistency: QUORUM
        #    writeConsistency: QUORUM
        #    replicationFactor: 3
        #    localConsistencyForSysOps: true

        ## Cassandra driver specific properties for janusgraph
        #  cassandra:
        #    #Name of the Cassandra Cluster
        #    cluster: someclustername
        #    readConsistency: LOCAL_QUORUM
        #    writeConsistency: LOCAL_QUORUM
        #    replicationFactor: 3


  # Common configuration for resources traversal and graphadmin
  config:
    # User information for the admin user in container
    userId: 1000
    groupId: 1000

    # Specifies that the cluster connected to a dynamic
    # cluster being spinned up by kubernetes deployment
    cluster:
      cassandra:
        dynamic: true

    # If cluster.cassandra.dynamic is set to false
    # Then the following configuration should be uncommented
    # This is if you are planning to connect to a existing
    # Cassandra cluster instead of doing the deployment
    #storage:
    #  backend: cassandra
    #  hostname: somehost1,somehost2,somehost3
    #  connectionTimeout: 100000
    #  cacheSize: 1000000
    #  clusterName: someClusterName
    #  localDataCenter: someDataCenter
    #  keyConsistent: true
    #  # If backend is cql or cassandra it should be keyspace name
    #  # else backend is hbase it should be hbase table name
    #  name: your_hbase_table_or_keyspace_name

    #  # CQL driver specific properties for janusgraph
    #  cql:
    #    # Name of the Cassandra Cluster
    #    cluster: someclustername
    #    readConsistency: QUORUM
    #    writeConsistency: QUORUM
    #    replicationFactor: 3
    #    localConsistencyForSysOps: true

    #  # Cassandra driver specific properties for janusgraph
    #  cassandra:
    #    # Name of the Cassandra Cluster
    #    cluster: someclustername
    #    readConsistency: LOCAL_QUORUM
    #    writeConsistency: LOCAL_QUORUM
    #    replicationFactor: 3

    # Specifies if the basic authorization is enabled
    basic:
      auth:
        enabled: true
        username: AAI
        passwd: AAI

    # Active spring profiles for the resources microservice
    profiles:
      active: production,dmaap,aaf-auth

    # Notification event specific properties
    notification:
      eventType: AAI-EVENT
      domain: dev

    # Schema specific properties that include supported versions of api
    schema:
      # Specifies if the connection should be one way ssl, two way ssl or no auth
      service:
        client: one-way-ssl
      # Specifies which translator to use if it has schema-service, then it will make a rest request to schema service
      translator:
        list: schema-service
      source:
        # Specifies which folder to take a look at
        name: onap
      uri:
        # Base URI Path of the application
        base:
          path: /aai
      version:
        # Current version of the REST API
        api:
          default: v21
        # Specifies which version the depth parameter is configurable
        depth: v11
        # List of all the supported versions of the API
        list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21
        # Specifies from which version related link should appear
        related:
          link: v11
        # Specifies from which version the app root change happened
        app:
          root: v11
        # Specifies from which version the xml namespace changed
        namespace:
          change: v12
        # Specifies from which version the edge label appeared in API
        edge:
          label: v12

    # Keystore configuration password and filename
    keystore:
      filename: aai_keystore
      passwd: OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0

    # Truststore configuration password and filename
    truststore:
      filename: aai_keystore
      passwd: OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0

    # Specifies a list of files to be included in auth volume
    auth:
      files:
        - aai_keystore

    # Specifies which clients should always default to realtime graph connection
    realtime:
      clients: SDNC,MSO,SO,robot-ete

    # Logback debug enabled
    logback:
      console:
        # If enabled, container will print all logback to standard output
        # This will make debugging much easier but it should only be done
        # when debugging the issue and changed back as it can affect performance
        # since when this is enabled, it prints a lot of information to console
        enabled: false

# application image
dockerhubRepository: registry.hub.docker.com
image: aaionap/haproxy:1.4.2
pullPolicy: Always

flavor: small
flavorOverride: small

# flag to enable debugging - application support required
debugEnabled: false

# application configuration
config:
  logstashServiceName: log-ls
  logstashPort: 5044

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

#This section is used when localCluster is enabled. AAI will create its own cassandra cluster for its specific use.
#Below command will instantiate the aai cassandra instances:
#helm deploy demo local/onap --version=4.0.0 --namespace onap --set aai.enabled=true \
#                            --set aai.global.cassandra.localCluster=true \
#                            --set aai.global.cassandra.serviceName=aai-cassandra
cassandra:
  nameOverride: aai-cassandra
  replicaCount: 3
  service:
    name: aai-cassandra
  persistence:
    mountSubPath: aai/cassandra
    enabled: true

readiness:
  initialDelaySeconds: 10
  periodSeconds: 10

service:
  type: NodePort
  portName: aai-ssl
  externalPort: 8443
  internalPort: 8443
  nodePort: 33
  # POLICY hotfix - Note this must be temporary
  # See https://jira.onap.org/browse/POLICY-510
  aaiServiceClusterIp:

ingress:
  enabled: false
  service:
    - baseaddr: "aai.api"
      name: "aai"
      port: 8443
  config:
    ssl: "redirect"

resources:
  small:
    limits:
      cpu: 2
      memory: 4Gi
    requests:
      cpu: 1
      memory: 1Gi
  large:
    limits:
      cpu: 4
      memory: 8Gi
    requests:
      cpu: 2
      memory: 2Gi
  unlimited: {}

