# 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: &containerName cmso-db
  service:
    type: ClusterIP
    name: &serviceName oof-cmso-dbhost
    portName: cmso-dbhost
  nfsprovisionerPrefix: cmso
  sdnctlPrefix: cmso
  persistence:
    mountSubPath: cmso/data
    enabled: true
  disableNfsProvisioner: true
  config:
    mariadbRootPasswordExternalSecret: *rootPassword
    #    userCredentialsExternalSecret: *dbCreds
    #    mysqlDatabase: cmso
  externalConfig: |
    [mysqld]
    lower_case_table_names = 1

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

mariadb-init:
  mariadbGalera:
    containerName: *containerName
    serviceName: *serviceName
    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: oof-cmso-dbhost
      container: cmso-db
      mysqlDatabase: cmso

oof-cmso-optimizer:
  enabled: true
  certInitializer:
    << : *certInitConfig
    nameOverride: oof-cmso-optimizer-cert-initializer
  config:
    enabled: true
    db:
      userCredentialsExternalSecret: *optimizerDbCreds
      host: oof-cmso-dbhost
      container: cmso-db
      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
