# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2021 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
  consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0
  #Service Names of the postgres db to connect to.
  #Override it to dbc-pg if localCluster is enabled.
  postgres:
    localCluster: false
    service:
      name: pgset
      name2: &postgres tcp-pgset-primary
      name3: tcp-pgset-replica
    container:
      name: postgres
secrets:
- uid: pg-root-pass
  name: &pgRootPassSecretName '{{ include "common.release" . }}-holmes-pg-root-pass'
  type: password
  externalSecret: '{{ ternary "" (tpl (default "" .Values.postgres.config.pgRootPasswordExternalSecret) .) (hasSuffix "holmes-pg-root-pass" .Values.postgres.config.pgRootPasswordExternalSecret) }}'
  password: '{{ .Values.postgres.config.pgRootPassword }}'
- uid: pg-user-creds
  name: &pgUserCredsSecretName '{{ include "common.release" . }}-holmes-pg-user-creds'
  type: basicAuth
  externalSecret: '{{ ternary "" (tpl (default "" .Values.postgres.config.pgUserExternalSecret) .) (hasSuffix "holmes-pg-user-creds" .Values.postgres.config.pgUserExternalSecret) }}'
  login: '{{ .Values.postgres.config.pgUserName }}'
  password: '{{ .Values.postgres.config.pgUserPassword }}'
  passwordPolicy: generate


#################################################################
# Application configuration defaults.
#################################################################
pullPolicy: IfNotPresent

config:
  logstashServiceName: log-ls
  logstashPort: 5044

# application configuration override for postgres
postgres:
  nameOverride: holmes-pg
  service:
    name: holmes-postgres
    name2: &dbHost holmes-postgres-primary
    name3: holmes-postgres-replica
  container:
    name:
      primary: holmes-postgres-primary
      replica: holmes-postgres-replica
  config:
    pgUserName: holmes
    pgDatabase: &dbName holmes
    pgUserExternalSecret: *pgUserCredsSecretName
    pgRootPasswordExternalSecret: *pgRootPassSecretName
    pgPort: &dbPort "5432"
  persistence:
    mountSubPath: holmes/data
    mountInitPath: holmes

postgres-init:
  nameOverride: holmes-postgres-init
  config:
    pgUserName: holmes
    pgDatabase: *dbName
    pgDataPath: data
    pgUserExternalSecret: *pgUserCredsSecretName
    # pgPrimaryPassword: password
    # pgUserPassword: password
    # pgRootPassword: password

holmes-engine-mgmt:
  config:
    pgConfig:
      dbName: *dbName
      # dbHost: *dbHost
      dbHost: *postgres
      dbPort: *dbPort
      dbUserCredsExternalSecret: *pgUserCredsSecretName

holmes-rule-mgmt:
  config:
    pgConfig:
      dbName: *dbName
      # dbHost: *dbHost
      dbHost: *postgres
      dbPort: *dbPort
      dbUserCredsExternalSecret: *pgUserCredsSecretName

# Resource Limit flavor -By Default using small
flavor: small
