# Copyright © 2017 Amdocs, AT&T, Bell Canada
# Modifications Copyright © 2018  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 configuration defaults.
#################################################################
global:
  nodePortPrefix: 302
  readinessImage: onap/oom/readiness:6.0.2
  loggingRepository: docker.elastic.co
  loggingImage: beats/filebeat:5.5.0
  sdc_cassandra:
    #This flag allows SDC to instantiate its own cluster, serviceName
    #should be sdc-cs if this flag is enabled
    localCluster: false

    # in case of a local cassandra cluster
    # flag to enable the DB creation via k8ssandra-operator
    useOperator: true
    # if useOperator set to "true", set "enableServiceAccount to "false"
    # as the SA is created by the Operator
    enableServiceAccount: false

    #The cassandra service name to connect to (default: shared cassandra service)
    #in case of using k8ssandra-operator in the common cassandra installation
    #the service name is:
    serviceName: cassandra-dc1-service
    #in case of local k8ssandra-operator instance it is
    #serviceName: sdc-cs-dc1-service
    #in case the older cassandra installation is used:
    #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 name (use "dc1" in case of k8ssandra-operator, otherwise "Pod")
    dataCenter: dc1
    #cqlVersion for cassandra 3.11.* must be "3.4.4" and cassandra 4.0.* must be "3.4.5"
    #and cassandra 4.1.* must be "3.4.6"
    cqlVersion: "3.4.6"

#################################################################
# Application configuration defaults.
#################################################################

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

# application image
repository: nexus3.onap.org:10001
image: onap/sdc-cassandra:1.13.6
cassandraInitImage: onap/sdc-cassandra-init:1.13.6
pullPolicy: Always

config:
  release: latest
  maxHeapSize: "1536M"
  heapNewSize: "512M"

#environment file
env:
  name: AUTO

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 60
  periodSeconds: 10
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 120
  periodSeconds: 10

service:
  type: ClusterIP
  name: sdc-cs
  portName: sdc-cs
  externalPort: 9042
  internalPort: 9042


## Persist data to a persitent volume
persistence:
  enabled: true

  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:
  volumeReclaimPolicy: Retain

  ## database data Persistent Volume Storage Class
  ## If defined, storageClassName: <storageClass>
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
  ## If undefined (the default) or set to null, no storageClassName spec is
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
  ##   GKE, AWS & OpenStack)
  ##
  # storageClass: "-"
  accessMode: ReadWriteOnce
  size: 2Gi
  mountPath: /dockerdata-nfs
  mountSubPath: /sdc/sdc-cs/CS

ingress:
  enabled: false

#Pods Service Account
serviceAccount:
  nameOverride: sdc-cs
  roles:
    - read

wait_for_job_container:
  containers:
    - '{{ include "common.name" . }}-job'
