# Copyright © 2018 Amdocs, Bell Canada, AT&T
#
# 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.

# Default values for cassandra.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global: # global defaults
  nodePortPrefix: 302
  persistence:
    mountPath: /dockerdata-nfs
    backup:
      mountPath: /dockerdata-nfs/backup
  repository: nexus3.onap.org:10001
  readinessRepository: oomk8s
  readinessImage: readiness-check:2.0.2

# application image
repository: nexus3.onap.org:10001
image: library/cassandra:3.11.4
pullPolicy: Always

# flag to enable debugging - application support required
debugEnabled: false

# application configuration
config:
  cluster_domain: cluster.local
  heap:
    max: 2048M
    min: 100M
  jvmOpts: -Dcassandra.consistent.rangemovement=false
  clusterName: cassandra
  dataCenter: Pod
  rackName: Rack
  autoBootstrap: true
  # If hostNetwork is true then provide the comma separated list of seeds.
  #seeds:seed1,seed2

# default number of instances
replicaCount: 3

hostNetwork: false

nodeSelector: {}

affinity: {}

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

readiness:
  initialDelaySeconds: 120
  periodSeconds: 10
  timeoutSeconds: 3
  successThreshold: 1
  failureThreshold: 3

service:
  name: cassandra
  headless:
    suffix: ""
    annotations:
      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
    publishNotReadyAddresses: true
  headlessPorts:
  - name: tcp-intra
    port: 7000
  - name: tls
    port: 7001
  - name: tcp-jmx
    port: 7199
  - name: tcp-cql
    port: 9042
    ## thrift protocol is  deprecated . Should be removed. Being left until all project removes it.
  - name: tcp-thrift
    port: 9160
  - name: tcp-agent
    port: 61621

podAnnotations: {}
podManagementPolicy: OrderedReady
updateStrategy:
  type: RollingUpdate

ingress:
  enabled: false

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: "-"
  ## Not set as it depends of the backup enabledment or not.
  accessMode: ReadWriteOnce
  size: 2Gi
  mountPath: /dockerdata-nfs
  mountSubPath: cassandra
  storageType: local
  backup:
      mountPath: /dockerdata-nfs/backup

configOverrides: {}

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  #
  # Example:
  # Configure resource requests and limits
  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
  # Minimum memory for development is 2 CPU cores and 4GB memory
  # Minimum memory for production is 4 CPU cores and 8GB memory
#resources:
#  limits:
#    cpu: 2
#    memory: 4Gi
#  requests:
#    cpu: 2
#    memory: 4Gi
backup:
  enabled: false
  cron: "00 00 * * *"
  retentionPeriod: 3
  dbSize: 1
  keyspacesToSkip:
  - name: system_traces
  - name: system_auth
  - name: system_distributed
