# Copyright © 2019 Amdocs, 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.

###################################################################
# This override file enables helm charts for all ONAP applications.
###################################################################
#ingress virtualhost based configuration
global:
  ingress:
    enabled: true
    # enable all component's Ingress interfaces
    enable_all: true
    # All http requests via ingress will be redirected

    # Provider: ingress, istio, gw-api
    provider: istio
    # Ingress class (only for provider "ingress"): e.g. nginx, traefik
    ingressClass:
    # Ingress Selector (only for provider "istio") to match with the
    # ingress pod label "istio=ingress"
    ingressSelector: ingress
    # optional: common used Gateway (for Istio, GW-API) and listener names
    commonGateway:
      name: ""
      httpListener: ""
      httpsListener: ""

    virtualhost:
      # Default Ingress base URL
      # can be overwritten in component by setting ingress.baseurlOverride
      baseurl: "simpledemo.onap.org"
      # prefix for baseaddr
      # can be overwritten in component by setting ingress.preaddrOverride
      preaddr: ""
      # postfix for baseaddr
      # can be overwritten in component by setting ingress.postaddrOverride
      postaddr: ""
    config:
      ssl: "redirect"
    # you can set an own Secret containing a certificate
    #  tls:
    #    secret: 'my-ingress-cert'
    # optional: Namespace of the Istio IngressGateway
    namespace: istio-ingress
  centralizedLoggingEnabled: &centralizedLogging false
  # Disabling CMPv2
  cmpv2Enabled: false

cassandra:
  enabled: true
mariadb-galera:
  enabled: true
postgres:
  enabled: true
authentication:
  enabled: true
aai:
  enabled: true
cds:
  enabled: true
cps:
  enabled: true
dcaegen2-services:
  enabled: true
  dcae-datalake-admin-ui:
    enabled: true
  dcae-datalake-des:
    enabled: true
  dcae-datalake-feeder:
    enabled: true
  dcae-hv-ves-collector:
    enabled: true
  dcae-ms-healthcheck:
    enabled: true
  dcae-prh:
    enabled: true
  dcae-ves-collector:
    enabled: true
    applicationConfig:
      auth.method: "noAuth"
  dcae-ves-openapi-manager:
    enabled: true
multicloud:
  enabled: true
platform:
  enabled: true
  cmpv2-cert-service:
    enabled: false
policy:
  enabled: true
portal-ng:
  enabled: true
robot:
  enabled: true
sdc:
  enabled: true
sdnc:
  enabled: true
  network-name-gen:
    enabled: true
  dgbuilder:
    enabled: true
  ueb-listener:
    enabled: true
  sdnc-ansible-server:
    enabled: true
  sdnc-web:
    enabled: true
so:
  enabled: true
strimzi:
  enabled: true
  strimzi-kafka-bridge:
    enabled: true
uui:
  enabled: true
a1policymanagement:
  enabled: true
