# 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: music-certs
    name: keystore.jks
    type: generic
    filePaths:
      - resources/keys/org.onap.music.jks
  - uid: music-keystore-pw
    name: keystore-pw
    type: password
    password: '{{ .Values.keystorePassword }}'
    passwordPolicy: required
  - 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

keystorePassword: "ysF9CVS+xvuXr0vf&fRa5lew"

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