# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T, ZTE
#
# 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: {}
  env:
    name: AUTO
  secrets:
    sdc_user: YXNkY191c2Vy
    sdc_password: QWExMjM0JV4h
    #Should be the password of shared cassandra instance/chart
    cs_password: Y2Fzc2FuZHJh
  ubuntuInitRepository: oomk8s
  ubuntuInitImage: ubuntu-init:1.0.0
  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
   replicaCount: 3
   clusterName: cassandra
   dataCenter: Pod

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

sdc-es:
  service:
    name: sdc-es

#Used only if localCluster is enabled. Instantiates SDC's own cassandra cluster
cassandra:
  nameOverride: sdc-cs
  replicaCount: 1
  service:
    name: sdc-cs
  persistence:
    mountSubPath: sdc/sdc-cs/CS
    enabled: true
