# Copyright © 2018 AT&T
# Copyright (C) 2020 Wipro Limited.
#
# 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.

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: cmso-db-root-password
    name: &rootPassword '{{ include "common.release" . }}-cmso-db-root-password'
    type: password
    password: ''
    policy: generate
  - uid: cmso-service-db-secret
    name: &serviceDbCreds '{{ include "common.release" . }}-cmso-service-db-secret'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.db.service.userCredentialsExternalSecret) . }}'
    login: '{{ .Values.config.db.service.userName }}'
    password: '{{ .Values.config.db.service.userPassword }}'
    passwordPolicy: generate
  - uid: cmso-db-secret
    name: &optimizerDbCreds '{{ include "common.release" . }}-cmso-optimizer-db-secret'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.db.optimizer.userCredentialsExternalSecret) . }}'
    login: '{{ .Values.config.db.optimizer.userName }}'
    password: '{{ .Values.config.db.optimizer.userPassword }}'
    passwordPolicy: generate

mariadb-galera:
  replicaCount: 1
  nameOverride: &dbName cmso-db
  nfsprovisionerPrefix: cmso
  sdnctlPrefix: cmso
  persistence:
    mountSubPath: cmso/data
    enabled: true
  disableNfsProvisioner: true
  rootUser:
    externalSecret: *rootPassword
  serviceAccount:
    nameOverride: *dbName

global:
  commonConfigPrefix: "oof-cmso"
  truststoreFile: "truststoreONAPall.jks"
  keystoreFile: "org.onap.oof.jks"
  truststorePassword:
  authentication: aaf-auth

mariadb-init:
  mariadbGalera:
    containerName: *dbName
    serviceName: *dbName
    servicePort: 3306
    userRootSecret: *rootPassword
  config:
    userCredentialsExternalSecret: *serviceDbCreds
    mysqlDatabase: cmso
    mysqlAdditionalDatabases:
      optimizer:
        externalSecret: *optimizerDbCreds
  nameOverride: cmso-db-config

flavor: small

config:
  log:
    logstashServiceName: log-ls
    logstashPort: 5044
  db:
    service:
      # userCredentialsExternalsecret: some secret
      userName: cmso-admin
      # userPassword: password
    optimizer:
      userName: cmso-optimizer

#sub-charts configuration
certInitializer: &certInitConfig
  fqdn: "oof.onap"
  app_ns: "org.osaaf.aaf"
  fqi: "oof@oof.onap.org"
  fqi_namespace: org.onap.oof
  public_fqdn: "oof.onap.org"
  aafDeployFqi: "deployer@people.osaaf.org"
  aafDeployPass: demo123456!
  cadi_latitude: "0.0"
  cadi_longitude: "0.0"
  credsPath: /opt/app/osaaf/local
  appMountPath: /share/etc/osaaf
  aaf_add_config: >
    cd {{ .Values.credsPath }};
    /opt/app/aaf_config/bin/agent.sh local showpass {{.Values.fqi}} {{ .Values.fqdn }} | grep cadi_keystore_password_jks= | cut -d= -f 2 > {{ .Values.credsPath }}/.pass 2>&1;
    find ./ -type f -exec sed -i -e 's/\/opt\/app\/osaaf\/local/\/share\/etc\/osaaf\/local/g' {} \;

oof-cmso-service:
  enabled: true
  certInitializer:
    << : *certInitConfig
    nameOverride: oof-cmso-service-cert-initializer
  config:
    db:
      userCredentialsExternalSecret: *serviceDbCreds
      host: *dbName
      container: *dbName
      mysqlDatabase: cmso

oof-cmso-optimizer:
  enabled: true
  certInitializer:
    << : *certInitConfig
    nameOverride: oof-cmso-optimizer-cert-initializer
  config:
    enabled: true
    db:
      userCredentialsExternalSecret: *optimizerDbCreds
      host: *dbName
      container: *dbName
      mysqlDatabase: optimizer

oof-cmso-topology:
  enabled: true
  certInitializer:
    << : *certInitConfig
    nameOverride: oof-cmso-topology-cert-initializer

oof-cmso-ticketmgt:
  enabled: true
  certInitializer:
    << : *certInitConfig
    nameOverride: oof-cmso-ticketmgt-cert-initializer
