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

k8ssandraOperator:
  enabled: false
  cassandraVersion: 4.0.1
  persistence:
    storageClassName: default
    size: 10Gi
  config:
    clusterName: cassandra
    secretName: &secretName cassandra-default-user
    superuserName: &superusername cassandra
    superuserPassword: &superuserpassword cassandra
    casOptions:
      authorizer: AllowAllAuthorizer
    jvmOptions:
      heapSize: 512M
    hostNetwork: false
  datacenters:
    - name: dc1
      size: 3
  stargate:
    tag: v1.0.76
    size: 1
    jvmOptions:
      heapSize: 384Mi

#################################################################
# Secrets metaconfig
# used to store the default superuser for k8ssandra-operator
#################################################################
secrets:
  - uid: *secretName
    type: genericKV
    externalSecret: '{{ tpl (default "" .Values.k8ssandraOperator.config.userCredentialsExternalSecret) . }}'
    envs:
      - name: username
        value: *superusername
      - name: password
        value: *superuserpassword

ingress:
  enabled: false
  service:
    - baseaddr: "reaper-dc1"
      path: "/webui"
      name: "cassandra-dc1-reaper-service"
      port: 8080

# application image
image: cassandra:3.11.4
pullPolicy: Always

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

# application configuration
config:
  cluster_domain: cluster.local
  heap:
    max: 4096M
    min: 200M
  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: 1
  periodSeconds: 10
  timeoutSeconds: 10
  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: 1
  periodSeconds: 10
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 3

startup:
  initialDelaySeconds: 10
  periodSeconds: 10
  timeoutSeconds: 10
  successThreshold: 1
  failureThreshold: 90

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:
  #  sidecar.istio.io/inject: "false"
  traffic.sidecar.istio.io/excludeInboundPorts: "7000,7001"
  traffic.sidecar.istio.io/includeInboundPorts: '*'
  traffic.sidecar.istio.io/excludeOutboundPorts: "7000,7001"
podManagementPolicy: OrderedReady
updateStrategy:
  type: RollingUpdate

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: 10Gi
  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: 8Gi
  requests:
    cpu: 0.2
    memory: 2.5Gi
backup:
  enabled: false
  cron: "00 00 * * *"
  retentionPeriod: 3
  dbSize: 1
  keyspacesToSkip:
  - name: system_traces
  - name: system_auth
  - name: system_distributed

#Pods Service Account
serviceAccount:
  nameOverride: cassandra
  roles:
    - nothing

# Cassandra Metrics
metrics:
  enabled: false
  image: bitnami/cassandra-exporter:2.3.4-debian-10-r641
  pullPolicy: IfNotPresent
  ports:
  - name: tcp-metrics
    port: 8080
  podAnnotations:
    prometheus.io/scrape: 'true'
    prometheus.io/port: '8080'
  livenessProbe:
    enabled: true
    httpGet:
      path: /metrics
      port: 8080
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    successThreshold: 1
    failureThreshold: 3
  readinessProbe:
    httpGet:
      path: /metrics
      port: 8080
    enabled: true
    initialDelaySeconds: 5
    periodSeconds: 10
    timeoutSeconds: 5
    successThreshold: 1
    failureThreshold: 3
  serviceMonitor:
    enabled: false
    targetPort: 8080
    path: /metrics
    basicAuth:
      enabled: false
    ## Namespace in which Prometheus is running
    ##
    # namespace: monitoring

    ## Interval at which metrics should be scraped.
    #interval: 30s

    ## Timeout after which the scrape is ended
    # scrapeTimeout: 10s

    ## ServiceMonitor selector labels
    selector:
      app.kubernetes.io/name: '{{ include "common.name" . }}'
      helm.sh/chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
      app.kubernetes.io/instance: '{{ include "common.release" . }}'
      app.kubernetes.io/managed-by: '{{ .Release.Service }}'

    ## RelabelConfigs to apply to samples before scraping
    relabelings: []

    ## MetricRelabelConfigs to apply to samples before ingestion
    metricRelabelings: []
