#============LICENSE_START========================================================
#=================================================================================
# Copyright (c) 2018-2021 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2018 Amdocs, Bell Canada
# Copyright (c) 2021 J. F. Lucas.  All rights reserved.
# Copyright (c) 2022 Nokia.  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.
# ============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.1.1

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

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

# DCAE component images to be deployed via Cloudify Manager
# Use to override default setting in blueprints
componentImages:
  tcagen2: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.3.1
  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.11.0
  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.8.0
  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.10.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"

#Pods Service Account
serviceAccount:
  nameOverride: dcae-bootstrap
  roles:
    - read
