# Copyright © 2018-2020  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
#
# 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
  nodePortPrefixExt: 304
  truststore: truststoreONAPall.jks


#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: cassa-secret
    type: basicAuth
    login: '{{ .Values.properties.cassandraUser }}'
    password: '{{ .Values.properties.cassandraPassword }}'
    passwordPolicy: required


#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/music/music_sb:3.2.40
pullPolicy: Always

job:
  host: cassandra
  port: 9042


# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 30
  periodSeconds: 6
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: false
  port: 8443


# Java options that need to be passed to jave on CLI
#javaOpts: -Xms256m -Xmx2048m
javaOpts:
# Options that need to be passed to CLI for Sprngboot, pw is a secret passed in through ENV
springOpts: --spring.config.location=file:/opt/app/music/etc/music-sb.properties
# Resource Limit flavor -By Default using small
flavor: large
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 1000m
      memory: 1G
    requests:
      cpu: 300m
      memory: 512Mi
  large:
    limits:
      cpu: 1500m
      memory: 3Gi
    requests:
      cpu: 1000m
      memory: 2Gi
  unlimited: {}

readiness:
  initialDelaySeconds: 350
  periodSeconds: 120
  port: 8443

service:
  useNodePortExt: true
  type: NodePort
  name: music
  ports:
    - name: https-api
      port: 8443
      nodePort: '07'

# Turn on Debugging true/false
debug: false
ingress:
  enabled: false

properties:
  lockUsing: "cassandra"
  # Comma dilimited list of hosts
  cassandraHost: "music-cassandra"
  cassandraUser: "nelson24"
  cassandraPassword: "nelson24"
  cassandraConnecttimeoutms: 12000
  cassandraPort: 9042
  # Connection Timeout for Cassandra in ms
  # Read Timeout for Cassandra in ms
  cassandraReadtimeoutms: 12000
  keyspaceActive: true
  # Enable CADI
  cadi: false
  # Special headers that may be passed and if they are required.
  # With the ability to add a Prefix if required.
  transIdRequired: false
  transIdPrefix: X-ATT-
  conversationRequired: false
  conversationPrefix: X-CSI-
  clientIdRequired: false
  clientIdPrefix:
  messageIdRequired: false
  messageIdPrefix:

  # sleep time for lock cleanup daemon, negative values turn off daemon
##### Lock settings
  retryCount: 3
  lockLeasePeriod: 6000
  # sleep time for lock cleanup daemon, negative values turn off daemon
  lockDaemonSleeptimeMs: 30000
  #comma separated list of keyspace names
  keyspaceForLockCleanup:


logback:
  errorLogLevel: info
  securityLogLevel: info
  applicationLogLevel: info
  metricsLogLevel: info
  auditLogLevel: info
  # Values must be uppercase: INFO, WARN, CRITICAL,DEBUG etc..
  rootLogLevel: INFO

#sub-charts configuration
certInitializer:
  nameOverride: music-cert-initializer
  fqdn: "music.onap"
  app_ns: "org.osaaf.aaf"
  fqi: "music@music.onap.org"
  fqi_namespace: org.onap.music
  public_fqdn: "music.onap.org"
  aafDeployFqi: "deployer@people.osaaf.org"
  aafDeployPass: demo123456!
  cadi_latitude: "0.0"
  cadi_longitude: "0.0"
  credsPath: /opt/app/osaaf/local
  appMountPath: /opt/app/aafcertman
  aaf_add_config: >
    echo "$cadi_keystore_password_jks" > {{ .Values.credsPath }}/.pass;
