# Copyright © 2018 AT&T USA
# Copyright © 2020 Huawei
# Copyright © 2021 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:
  aafAgentImage: onap/aaf/aaf_agent:2.1.20
  msbEnabled: true
  security:
    aaf:
      enabled: false
  app:
    msoKey: 07a7159d3bf51a0e53be7a8f89699be7

#################################################################
# AAF part
#################################################################
certInitializer:
  aafDeployFqi: deployer@people.osaaf.org
  aafDeployPass: demo123456!
  # aafDeployCredsExternalSecret: some secret
  fqdn: so
  fqi: so@so.onap.org
  public_fqdn: so.onap.org
  cadi_longitude: '0.0'
  cadi_latitude: '0.0'
  app_ns: org.osaaf.aaf
  credsPath: /opt/app/osaaf/local
  qi_namespace: org.onap.so
  aaf_add_config: |
    echo "cadi_truststore_password=$cadi_truststore_password" > {{ .Values.credsPath }}/mycreds.prop
    echo "cadi_keystore_password_p12=$cadi_keystore_password_p12" >> {{ .Values.credsPath }}/mycreds.prop
    echo "TRUSTSTORE_PASSWORD={{ .Values.truststorePassword }}" >> {{ .Values.credsPath }}/mycreds.prop

aafConfig:
  permission_user: 1000
  permission_group: 999

#################################################################
# Application configuration defaults.
#################################################################

livenessProbe:
  path: /manage/health
  scheme: HTTP
  initialDelaySeconds: 600
  periodSeconds: 60
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 3

cadi:
  logLevel: DEBUG
  latitude: 38.4329
  longitude: -90.43248
  aafEnv: IST
  aafApiVersion: 2.1
  aafRootNs: org.onap.so
  aafLocateUrl: https://aaf-locate.onap:8095
  aafUrl: https://aaf-locate.onap:8095/locate/org.osaaf.aaf.service:2.1
  aafId: so@so.onap.org
  aafPassword: enc:EME-arXn2lx8PO0f2kEtyK7VVGtAGWavXorFoxRmPO9
  apiEnforcement: org.onap.so.apihPerm
  noAuthn: /manage/health
