# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018, 2020 AT&T
#
# 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:
  env:
    tomcatDir: "/usr/local/tomcat"
  # portal frontend port
  portalPort: "8989"
  portalFEPort: "30225"
  # application's front end hostname.  Must be resolvable on the client side environment
  portalHostName: "portal.api.simpledemo.onap.org"

  centralizedLoggingEnabled: true

#################################################################
# Secrets metaconfig
#################################################################
secrets:
  - uid: portal-cass
    name: &dbSecretName '{{ include "common.release" . }}-portal-cass-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.casandraCredsExternalSecret) . }}'
    login: '{{ .Values.config.cassandraUsername }}'
    password: '{{ .Values.config.cassandraPassword }}'
  - uid: portal-backend-db
    name: &backendDbSecretName '{{ include "common.release" . }}-portal-backend-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.mariadb.config.backendDbExternalSecret) . }}'
    login: '{{ .Values.mariadb.config.backendUserName }}'
    password: '{{ .Values.mariadb.config.backendPassword }}'
    passwordPolicy: required

config:
  logstashServiceName: log-ls
  logstashPort: 5044
  cassandraUsername: root
  cassandraPassword: Aa123456
# casandraCredsExternalSecret: some secret

portal-mariadb:
  nameOverride: portal-db
mariadb:
  service:
    name: portal-db
  config:
#   backendDbExternalSecret: some secret
    backendUserName: portal
    backendPassword: portal

widget:
  service:
    name: portal-widget
cassandra:
  service:
    name: portal-cassandra
  config:
    cassandraExternalSecret: *dbSecretName
portal-app:
  mariadb:
    config:
      backendDbExternalSecret: *backendDbSecretName
  cassandra:
    config:
      cassandraExternalSecret: *dbSecretName
  logConfigMapNamePrefix: '{{ include "common.release" . }}-portal'
portal-sdk:
  mariadb:
    config:
      backendDbExternalSecret: *backendDbSecretName
  cassandra:
    config:
      cassandraExternalSecret: *dbSecretName
  logConfigMapNamePrefix: '{{ include "common.release" . }}-portal'
messageRouter:
  service:
    name: message-router
ingress:
  enabled: false
