# Copyright (c) 2020 AT&T Intellectual Property.  All rights reserved.
#
# 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
  tlsRepository: nexus3.onap.org:10001
  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
  busyboxRepository: docker.io
  busyboxImage: library/busybox:1.30

# Enable all DCAE MOD components by default
dcaemod-designtool:
  enabled: true
dcaemod-distributor-api:
  enabled: true
dcaemod-genprocessor:
  enabled: true
dcaemod-healthcheck:
  enabled: true
dcaemod-nifi-registry:
  enabled: true
dcaemod-onboarding-api:
  enabled: true
dcaemod-runtime-api:
  enabled: true