# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T, ZTE
#
# 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
  aafEnabled: true
  cassandra:
    #This flag allows SDC to instantiate its own cluster, serviceName
    #should be sdc-cs if this flag is enabled
    localCluster: false
    #The cassandra service name to connect to (default: shared cassandra service)
    serviceName: cassandra
    #Shared cassandra cluster replicaCount, should be changed if localCluster is enabled
    #to match with its own cluster replica
    replicaCount: 3
    clusterName: cassandra
    dataCenter: Pod

#################################################################
# AAF Part
#################################################################
certInitializer:
  nameOverride: sdc-wfd-be-cert-init
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  fqdn: sdc
  fqi: sdc@sdc.onap.org
  public_fqdn: sdc.onap.org
  cadi_longitude: "0.0"
  cadi_latitude: "0.0"
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  addconfig: true
  keystoreFile: "org.onap.sdc.p12"
  truststoreFile: "org.onap.sdc.trust.jks"
  permission_user: 352070
  permission_group: 35953
  aaf_add_config: >
    /opt/app/aaf_config/bin/agent.sh local showpass
    {{.Values.fqi}} {{ .Values.fqdn }} > {{ .Values.credsPath }}/mycreds.prop

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/sdc-workflow-backend:1.7.0
configInitImage: onap/sdc-workflow-init:1.7.0
pullPolicy: Always

initJob:
  enabled: true

config:
  javaOptions: "-Xmx1536m -Xms1536m"
  cassandraAuthenticationEnabled: true
  cassandraClientPort: 9042
  sdcProtocol: HTTPS
  sdcEndpoint: sdc-be:8443
  sdcExternalUser: workflow
  serverSSLEnabled: true
  serverSSLKeyStoreType: jks
  serverSSLTrustStoreType: jks
  cassandraSSLEnabled: false
  cassandraTrustStorePath: /home/sdc/etc/truststore

# environment file
env:
  name: AUTO

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 60
  periodSeconds: 10

service:
  type: NodePort
  portName: sdc-wfd-be
  internalPort: 8080
  externalPort: 8080
  internalPort2: 8443
  externalPort2: 8443
  nodePort: "57" # only one node port. set to http or https port depending on isHttpsEnabled property

ingress:
  enabled: false
  service:
    - baseaddr: "sdcwfdbe"
      name: "sdc-wfd-be"
      port: 8443
  config:
    ssl: "redirect"

# Resource Limit flavor -By Default using small
# Segregation for Different environment (Small and Large)
flavor: small
resources:
  small:
    limits:
      cpu: 500m
      memory: 2Gi
    requests:
      cpu: 40m
      memory: 1Gi
  large:
    limits:
      cpu: 1
      memory: 4Gi
    requests:
      cpu: 80m
      memory: 2Gi
  unlimited: {}
