# 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
  # global Kafka config passed to sdc-be chart
  kafka:
    # If true, the following Strimzi KafkaTopics will be created
    useKafka: true
    topics:
      sdcDistNotifTopic: &notif-topic-name SDC-DISTR-NOTIF-TOPIC
      sdcDistStatusTopic: &status-topic-name SDC-DISTR-STATUS-TOPIC

# Environment file
env:
  name: &env AUTO

kafkaTopic:
  - name: *notif-topic-name
    suffix: *env
  - name: *status-topic-name
    suffix: *env

sdc-be:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
sdc-fe:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
sdc-onboarding-be:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'
sdc-wfd-fe:
  logConfigMapNamePrefix: '{{ include "common.release" . }}-sdc'

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
