# 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
  sdc_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: |
    echo "cadi_keystore_password_p12=$cadi_keystore_password_p12" > {{ .Values.credsPath }}/mycreds.prop
    echo "cadi_truststore_password=$cadi_truststore_password" >> {{ .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
  sdcEndpoint:
    https: sdc-be:8443
    http: sdc-be:8080
  sdcExternalUser: workflow
  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

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

readiness:
  initialDelaySeconds: 1
  periodSeconds: 10
  successThreshold: 1
  failureThreshold: 3

startup:
  initialDelaySeconds: 10
  periodSeconds: 10
  successThreshold: 1
  failureThreshold: 60

service:
  type: NodePort
  portName: http
  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: {}

#Pods Service Account
serviceAccount:
  nameOverride: sdc-wfd-be
  roles:
    - read

wait_for_job_container:
  containers:
    - '{{ include "common.name" . }}-job'
