# Copyright (C) 2021 Bell Canada
#
# 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.
#################################################################
secrets:
  - uid: core-app-user-creds
    name: &core-creds-secret '{{ include "common.release" . }}-cps-core-app-user-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.coreUserExternalSecret) . }}'
    login: '{{ .Values.config.coreUserName }}'
    password: '{{ .Values.config.coreUserPassword }}'
    passwordPolicy: generate
  - uid: dmi-plugin-user-creds
    name: &dmi-plugin-creds-secret '{{ include "common.release" . }}-cps-dmi-plugin-user-creds'
    type: basicAuth
    externalSecret: '{{ tpl (default "" .Values.config.dmiPluginUserExternalSecret) . }}'
    login: '{{ .Values.config.dmiPluginUserName }}'
    password: '{{ .Values.config.dmiPluginUserPassword }}'
    passwordPolicy: generate

passwordStrengthOverride: basic
global:
  ingress:
    virtualhost:
      baseurl: "simpledemo.onap.org"

config:
  coreUserName: cpsuser
  dmiPluginUserName: dmiuser

# Enable all CPS components by default
cps-core:
  enabled: true
  config:
    appUserExternalSecret: *core-creds-secret
    dmiPluginUserExternalSecret: *dmi-plugin-creds-secret

cps-temporal:
  enabled: true

ncmp-dmi-plugin:
  enabled: true
  config:
    appUserExternalSecret: *dmi-plugin-creds-secret
    cpsCore:
      credsExternalSecret: *core-creds-secret
