# 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
    cs_truststore_password: XS5dW3hndHplXWhCaHoqd3ldfW0jbGYq
    truststore_password: eitLRWo7dCssS05eaWltU2lTODllI3Aw
    keystore_password: PyhrUCFZdXIhWyohWTUhRV5mKFpLYzMx
    wf_external_user_password: S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==
  ubuntuInitRepository: oomk8s
  ubuntuInitImage: ubuntu-init:1.0.0
  busyboxRepository: registry.hub.docker.com
  busyboxImage: library/busybox:latest
  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
  security:
    disableHttp: true
  envsubstImage: dibi/envsubst
config:
  logstashServiceName: log-ls
  logstashPort: 5044
  environment:
    workflowUrl: 10.0.2.15
    vnfRepoPort: 8702

#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
