#============LICENSE_START========================================================
#=================================================================================
# Copyright (c) 2018-2020 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2018 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.
# ============LICENSE_END=========================================================

#################################################################
# Global configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  nodePortPrefixExt: 304
  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
  consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0

secrets:
  - uid: pg-root-pass
    name: &pgRootPassSecretName '{{ include "common.release" . }}-dcae-bootstrap-pg-root-pass'
    type: password
    externalSecret: '{{ ternary "" (tpl (default "" .Values.postgres.config.pgRootPasswordExternalSecret) .) (hasSuffix "dcae-bootstrap-pg-root-pass" .Values.postgres.config.pgRootPasswordExternalSecret) }}'
    password: '{{ .Values.postgres.config.pgRootpassword }}'
    policy: generate
  - uid: 'cm-pass'
    type: password
    externalSecret: '{{ tpl (default "" .Values.config.cloudifyManagerPasswordExternalSecret) . }}'
    password: '{{ .Values.config.cloudifyManagerPassword }}'

config:
  logstashServiceName: log-ls
  logstashPort: 5044
  # Addresses of ONAP components
  address:
    consul:
      host: consul-server
      port: 8500
    consul_ui: consul-server-ui
    cm:
      host: dcae-cloudify-manager
      port: 443
      proto: https
    #Temporary assignment to avoid conflict
    #To be removed after bootstrap changes done to remove dashboard
    dashboard:
      port: 30473
      portSecure: 30474
    datafile_collector:
      port: 30223
      portSecure: 30262
    dmaap_dr_prov: dmaap-dr-prov
    message_router: message-router
    msb_discovery: msb-discovery
    msb_iag: msb-iag
    policy_pdp: pdp
    sdc: sdc-be
    snmptrap:
      port: 30470
    ves:
      port: 30235
      portSecure: 30417

# postgres values--overriding defaults in the postgres subchart
postgres:
  nameOverride: dcae-db
  service:
    name: dcae-postgres
    name2: dcae-pg-primary
    name3: dcae-pg-replica
  suffix: svc.cluster.local
  container:
    name:
      primary: dcae-pg-primary
      replica: dcae-pg-replica
  config:
    pgRootPasswordExternalSecret: *pgRootPassSecretName
  persistence:
    mountSubPath: dcae/data
    mountInitPath: dcae

mongo:
  nameOverride: dcae-mongo
  config:
    dbName: dcaecommondb
  service:
    name: dcae-mongohost
    internalPort: 27017
  nfsprovisionerPrefix: dcaemongo
  sdnctlPrefix: tcagen2
  persistence:
    mountSubPath: dcae/mongo/data
    enabled: true
  disableNfsProvisioner: true

# application image
image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:2.2.3
default_k8s_location: central

# DCAE component images to be deployed via Cloudify Manager
# Use to override default setting in blueprints
componentImages:
  holmes_rules: onap/holmes/rule-management:1.2.9
  holmes_engine: onap/holmes/engine-management:1.2.9
  tcagen2: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1
  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.7.9
  snmptrap: onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.5.4
  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.6.0
  datafile_collector: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.5.0

# Resource Limit flavor -By Default using small
flavor: small
# Segregation for Different environment (Small and Large)
resources:
  small:
    limits:
      cpu: 2
      memory: 2Gi
    requests:
      cpu: 1
      memory: 1Gi
  large:
    limits:
      cpu: 4
      memory: 4Gi
    requests:
      cpu: 2
      memory: 2Gi
  unlimited: {}
# Kubernetes namespace for components deployed via Cloudify manager
# If empty, use the common namespace
# dcae_ns: "onap"
