# Copyright 2018 Intel Corporation, Inc
# Modifications © 2020 AT&T, 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.

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  persistence: {}
  aafEnabled: true

flavor: small

#################################################################
# AAF part
#################################################################
certInitializer:
  nameOverride: aaf-sms-cert-init
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  # aafDeployCredsExternalSecret: some secret
  fqdn: aaf-sms
  fqi: aaf-sms@aaf-sms.onap.org
  public_fqdn: aaf-sms.onap.org
  cadi_longitude: "0.0"
  cadi_latitude: "0.0"
  app_ns: org.osaaf.aaf
  mountPath: /opt/app/osaaf
  keystore: truststoreONAPall.jks
  keystore_pass: changeit
  root_ca_alias: onaptestca
  root_ca_name: aaf_root_ca.cer
  permission_user: 1000
  permission_group: 1000
  aaf_add_config: >
    cd {{ .Values.mountPath }}/local;
    keytool -exportcert -rfc -file {{ .Values.root_ca_name }} -keystore {{ .Values.keystore }}
    -alias {{ .Values.root_ca_alias }} -storepass {{ .Values.keystore_pass }};
    chown -R {{.Values.permission_user}}:{{.Values.permission_group}}
    {{ .Values.mountPath }};

#################################################################
# Application configuration defaults.
#################################################################
# application image
image: onap/aaf/sms:4.0.2
pullPolicy: Always

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

# application configuration
# Example:
config:
  smsdbaddress: "http://aaf-sms-db:8200"
  cafile: "/opt/app/osaaf/local/aaf_root_ca.cer"
  servercert: "/opt/app/osaaf/local/org.onap.aaf-sms.crt"
  serverkey: "/opt/app/osaaf/local/org.onap.aaf-sms.key"
  password: "c2VjcmV0bWFuYWdlbWVudHNlcnZpY2VzZWNyZXRwYXNzd29yZA=="

# subchart configuration
vault:
  nameOverride: smsdb

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 10
  periodSeconds: 30

service:
  type: ClusterIP
  name: aaf-sms
  portName: aaf-sms
  internalPort: 10443
  externalPort: 10443

#define value for aaf-sms-quorumclient subchart
aaf-sms-quorumclient:
  service:
    name: aaf-sms

persistence:
  enabled: true
  volumeReclaimPolicy: Retain
  accessMode: ReadWriteOnce
  size: 1Gi
  mountPath: /dockerdata-nfs
  mountSubPath: sms/auth

ingress:
  enabled: false

cps:
  enabled: true

secrets:
  - uid: aai-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.aaiUsername }}'
    password: '{{ .Values.oofCreds.aaiPassword }}'
    passwordPolicy: required
  - uid: conductor-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.conductorUsername }}'
    password: '{{ .Values.oofCreds.conductorPassword }}'
    passwordPolicy: required
  - uid: sdnc-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.sdncUsername }}'
    password: '{{ .Values.oofCreds.sdncPassword }}'
    passwordPolicy: required
  - uid: music-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.musicUsername }}'
    password: '{{ .Values.oofCreds.musicPassword }}'
    passwordPolicy: required
  - uid: aaf-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.aafUsername }}'
    password: '{{ .Values.oofCreds.aafPassword }}'
    passwordPolicy: required
  - uid: policy-plat-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.policyPlatUsername }}'
    password: '{{ .Values.oofCreds.policyPlatPassword }}'
    passwordPolicy: required
  - uid: policy-cli-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.policyCliUsername }}'
    password: '{{ .Values.oofCreds.policyCliPassword }}'
    passwordPolicy: required
  - uid: osdf-placement-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfPlacementUsername }}'
    password: '{{ .Values.oofCreds.osdfPlacementPassword }}'
    passwordPolicy: required
  - uid: osdf-placement-so-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfPlacementSOUsername }}'
    password: '{{ .Values.oofCreds.osdfPlacementSOPassword }}'
    passwordPolicy: required
  - uid: osdf-placement-vfc-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfPlacementVFCUsername }}'
    password: '{{ .Values.oofCreds.osdfPlacementVFCPassword }}'
    passwordPolicy: required
  - uid: osdf-cm-scheduler-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfCMSchedulerUsername }}'
    password: '{{ .Values.oofCreds.osdfCMSchedulerPassword }}'
    passwordPolicy: required
  - uid: config-db-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.configDbUsername }}'
    password: '{{ .Values.oofCreds.configDbPassword }}'
    passwordPolicy: required
  - uid: osdf-pci-opt-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfPCIOptUsername }}'
    password: '{{ .Values.oofCreds.osdfPCIOptPassword }}'
    passwordPolicy: required
  - uid: osdf-opt-engine-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.osdfOptEngineUsername }}'
    password: '{{ .Values.oofCreds.osdfOptEnginePassword }}'
    passwordPolicy: required
  - uid: so-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.soUsername }}'
    password: '{{ .Values.oofCreds.soPassword }}'
    passwordPolicy: required
  - uid: sdc-creds
    type: basicAuth
    login: '{{ .Values.oofCreds.sdcUsername }}'
    password: '{{ .Values.oofCreds.sdcPassword }}'
    passwordPolicy: required
  - uid: cps-creds
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.oofCreds.cpsUserExternalSecret) . }}'
    login: '{{ .Values.oofCreds.cpsUsername }}'
    password: '{{ .Values.oofCreds.cpsPassword }}'
    passwordPolicy: required
oofCreds:
  aaiUsername: oof@oof.onap.org
  aaiPassword: demo123456!

  conductorUsername: admin1
  conductorPassword: plan.15

  sdncUsername: admin
  sdncPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

  musicUsername: conductor
  musicPassword: c0nduct0r

  aafUsername: aaf_admin@people.osaaf.org
  aafPassword: demo123456!

  policyPlatUsername: healthcheck
  policyPlatPassword: zb!XztG34

  policyCliUsername: healthcheck
  policyCliPassword: zb!XztG34

  osdfPlacementUsername: test
  osdfPlacementPassword: testpwd

  osdfPlacementSOUsername: so_test
  osdfPlacementSOPassword: so_testpwd

  osdfPlacementVFCUsername: vfc_test
  osdfPlacementVFCPassword: vfc_testpwd

  osdfCMSchedulerUsername: test1
  osdfCMSchedulerPassword: testpwd1

  configDbUsername: osdf
  configDbPassword: passwd

  osdfPCIOptUsername: pci_test
  osdfPCIOptPassword: pci_testpwd

  osdfOptEngineUsername: opt_test
  osdfOptEnginePassword: opt_testpwd

  soUsername: apihBpmn
  soPassword: password1$

  sdcUsername: aai
  sdcPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

  cpsUsername: ''
  cpsPassword: ''
  cpsUserExternalSecret: '{{ include "common.release" . }}-cps-core-app-user-creds'

# Configure resource requests and limits
resources:
  small:
    limits:
      cpu: 100m
      memory: 400Mi
    requests:
      cpu: 25m
      memory: 10Mi
  large:
    limits:
      cpu: 400m
      memory: 1Gi
    requests:
      cpu: 25m
      memory: 100Mi
  unlimited: {}

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

