# Copyright (c) 2021 J. F. Lucas.  All rights reserved.
# Copyright (c) 2021 AT&T. All rights reserved.
# Modifications Copyright (C) 2021 Nordix Foundation.
#
# 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:
  centralizedLoggingEnabled: true
  hvVesKafkaUser: dcae-hv-ves-kafka-user
  vesOpenApiKafkaUser: ves-open-api-kafka-user

#################################################################
# Filebeat Configuration Defaults.
#
#################################################################
filebeatConfig:
  logstashServiceName: log-ls
  logstashPort: 5044

# Control deployment of DCAE microservices at ONAP installation time
dcae-ves-openapi-manager:
  enabled: true
  config:
    jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.vesOpenApiKafkaUser }}'
dcae-datafile-collector:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-datalake-admin-ui:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-datalake-des:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-datalake-feeder:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-heartbeat:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-hv-ves-collector:
  enabled: true
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
  config:
    jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.hvVesKafkaUser }}'
dcae-kpi-ms:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-ms-healthcheck:
  enabled: true
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-pm-mapper:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-pmsh:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-prh:
  enabled: true
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-restconf-collector:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-slice-analysis-ms:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-snmptrap-collector:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-son-handler:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-tcagen2:
  enabled: true
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-ves-collector:
  enabled: true
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
dcae-ves-mapper:
  enabled: false
  logConfigMapNamePrefix: '{{ include "common.release" . }}-dcaegen2-services'
