# Copyright © 2018 Amdocs, Bell Canada
# Modifications Copyright © 2018-2019 AT&T
# Modifications Copyright © 2020 Samsung Electronics
# Modifications Copyright © 2021 Nokia
#
# 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
  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
  consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.1.1

#################################################################
# Secrets metaconfig
#################################################################
secrets:
- name: &cmPassSecretName '{{ include "common.release" . }}-dcaegen2-cm-pass'
  type: password
  externalSecret: '{{ tpl (default "" .Values.config.cloudifyManagerPasswordExternalSecret) . }}'
  password: '{{ .Values.config.cloudifyManagerPassword }}'

config: {}

# To work around DCAEGEN2-2450, set password strength to "basic"
# to ensure password contains only alphanumerics
passwordStrengthOverride: basic

# Enable all DCAE components by default
dcae-bootstrap:
  enabled: false
  config:
    cloudifyManagerPasswordExternalSecret: *cmPassSecretName
dcae-cloudify-manager:
  enabled: false
  config:
    cloudifyManagerPasswordExternalSecret: *cmPassSecretName
dcae-config-binding-service:
  enabled: true
dcae-dashboard:
  enabled: false
  config:
    cloudifyManagerPasswordExternalSecret: *cmPassSecretName
dcae-deployment-handler:
  enabled: false
  config:
    cloudifyManagerPasswordExternalSecret: *cmPassSecretName
dcae-healthcheck:
  enabled: true
dcae-inventory-api:
  enabled: false
dcae-policy-handler:
  enabled: false
  config:
    cloudifyManagerPasswordExternalSecret: *cmPassSecretName
dcae-servicechange-handler:
  enabled: false
dcae-ves-openapi-manager:
  enabled: true
