# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T, ZTE
# Modifications Copyright © 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:
  persistence: {}
  secrets:
    sdc_user: YXNkY191c2Vy
    sdc_password: QWExMjM0JV4h
    #Should be the password of shared cassandra instance/chart
    cs_password: Y2Fzc2FuZHJh
    cs_truststore_password: XS5dW3hndHplXWhCaHoqd3ldfW0jbGYq
    truststore_password: eitLRWo7dCssS05eaWltU2lTODllI3Aw
    keystore_password: PyhrUCFZdXIhWyohWTUhRV5mKFpLYzMx
    wf_external_user_password: S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==
  aafEnabled: true
  sdc_cassandra:
   #This flag allows SDC to instantiate its own cluster, serviceName
   #should be "sdc-cs" if this flag is enabled
   localCluster: false
   #The cassandra service name to connect to (default: shared cassandra service)
   serviceName: cassandra
   #Shared cassandra cluster replicaCount, should be changed if localCluster is enabled
   #to match with its own cluster replica
   #see "cassandra: replicaCount" in file sdc-cs/values.yaml)
   replicaCount: 3
   dbCache: true
   readConsistencyLevel: ONE
   writeConsistencyLevel: ALL
   clusterName: cassandra
   dataCenter: Pod
  centralizedLoggingEnabled: true
  # Kafka config
  kafka:
    useKafka: true
    sdcBeKafkaUser: sdc-be-kafka-user
    kafkaBootstrap: strimzi-kafka-bootstrap:9092
    topics:
      sdcDistNotifTopic: SDC-DISTR-NOTIF-TOPIC
      sdcDistStatusTopic: SDC-DISTR-STATUS-TOPIC

sdc-be:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
  config:
    jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.kafka.sdcBeKafkaUser }}'
sdc-fe:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
sdc-onboarding-be:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
sdc-wfd-fe:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'

# Environment file
env:
  name: AUTO

config:
  logstashServiceName: log-ls
  logstashPort: 5044
  environment:
    workflowUrl: 10.0.2.15
    vnfRepoPort: 8703

# dependency / sub-chart configuration
sdc-wfd:
  enabled: true
sdcHelmValidator:
  enabled: true
  helmVersion: 3.5.2
  deployable: true
  lintable: false
  strictLintable: false
  url: http://sdc-helm-validator:8080/validate
