# 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


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

config:
  coreUserName: cpsuser

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

ncmp-dmi-plugin:
  enabled: true
  config:
    coreCredsExternalSecret: *core-creds-secret
