[CASSANDRA] Change values to makre Cassandra instances more stable
[oom.git] / kubernetes / common / cassandra / values.yaml
1 # Copyright © 2022 Amdocs, Bell Canada, AT&T, Bitnami
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #       http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # Default values for cassandra.
16 # This is a YAML-formatted file.
17 # Declare variables to be passed into your templates.
18 global: # global defaults
19   nodePortPrefix: 302
20   persistence:
21     mountPath: /dockerdata-nfs
22     backup:
23       mountPath: /dockerdata-nfs/backup
24
25 # application image
26 image: cassandra:3.11.4
27 pullPolicy: Always
28
29 # flag to enable debugging - application support required
30 debugEnabled: false
31
32 # application configuration
33 config:
34   cluster_domain: cluster.local
35   heap:
36     max: 4096M
37     min: 200M
38   jvmOpts: -Dcassandra.consistent.rangemovement=false
39   clusterName: cassandra
40   dataCenter: Pod
41   rackName: Rack
42   autoBootstrap: true
43   # If hostNetwork is true then provide the comma separated list of seeds.
44   #seeds:seed1,seed2
45
46 # default number of instances
47 replicaCount: 3
48
49 hostNetwork: false
50
51 nodeSelector: {}
52
53 affinity: {}
54
55 # probe configuration parameters
56 liveness:
57   initialDelaySeconds: 1
58   periodSeconds: 10
59   timeoutSeconds: 10
60   successThreshold: 1
61   failureThreshold: 3
62   # necessary to disable liveness probe when setting breakpoints
63   # in debugger so K8s doesn't restart unresponsive container
64   enabled: true
65
66 readiness:
67   initialDelaySeconds: 1
68   periodSeconds: 10
69   timeoutSeconds: 10
70   successThreshold: 1
71   failureThreshold: 3
72
73 startup:
74   initialDelaySeconds: 10
75   periodSeconds: 10
76   timeoutSeconds: 10
77   successThreshold: 1
78   failureThreshold: 90
79
80 service:
81   name: cassandra
82   headless:
83     suffix: ""
84     annotations:
85       service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
86     publishNotReadyAddresses: true
87   headlessPorts:
88   - name: tcp-intra
89     port: 7000
90   - name: tls
91     port: 7001
92   - name: tcp-jmx
93     port: 7199
94   - name: tcp-cql
95     port: 9042
96     ## thrift protocol is  deprecated . Should be removed. Being left until all project removes it.
97   - name: tcp-thrift
98     port: 9160
99   - name: tcp-agent
100     port: 61621
101
102 podAnnotations:
103   #  sidecar.istio.io/inject: "false"
104   traffic.sidecar.istio.io/excludeInboundPorts: "7000,7001"
105   traffic.sidecar.istio.io/includeInboundPorts: '*'
106   traffic.sidecar.istio.io/excludeOutboundPorts: "7000,7001"
107 podManagementPolicy: OrderedReady
108 updateStrategy:
109   type: RollingUpdate
110
111 ingress:
112   enabled: false
113
114 persistence:
115   enabled: true
116
117   ## A manually managed Persistent Volume and Claim
118   ## Requires persistence.enabled: true
119   ## If defined, PVC must be created manually before volume will be bound
120   # existingClaim:
121   volumeReclaimPolicy: Retain
122
123   ## database data Persistent Volume Storage Class
124   ## If defined, storageClassName: <storageClass>
125   ## If set to "-", storageClassName: "", which disables dynamic provisioning
126   ## If undefined (the default) or set to null, no storageClassName spec is
127   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
128   ##   GKE, AWS & OpenStack)
129   ##
130   ## storageClass: "-"
131   ## Not set as it depends of the backup enabledment or not.
132   accessMode: ReadWriteOnce
133   size: 10Gi
134   mountPath: /dockerdata-nfs
135   mountSubPath: cassandra
136   storageType: local
137   backup:
138       mountPath: /dockerdata-nfs/backup
139
140 configOverrides: {}
141
142 # resources: {}
143   # We usually recommend not to specify default resources and to leave this as a conscious
144   # choice for the user. This also increases chances charts run on environments with little
145   # resources, such as Minikube. If you do want to specify resources, uncomment the following
146   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
147   #
148   # Example:
149   # Configure resource requests and limits
150   # ref: http://kubernetes.io/docs/user-guide/compute-resources/
151   # Minimum memory for development is 2 CPU cores and 4GB memory
152   # Minimum memory for production is 4 CPU cores and 8GB memory
153 resources:
154   limits:
155     cpu: 2
156     memory: 8Gi
157   requests:
158     cpu: 0.2
159     memory: 2.5Gi
160 backup:
161   enabled: false
162   cron: "00 00 * * *"
163   retentionPeriod: 3
164   dbSize: 1
165   keyspacesToSkip:
166   - name: system_traces
167   - name: system_auth
168   - name: system_distributed
169
170 #Pods Service Account
171 serviceAccount:
172   nameOverride: cassandra
173   roles:
174     - nothing
175
176 # Cassandra Metrics
177 metrics:
178   enabled: false
179   image: bitnami/cassandra-exporter:2.3.4-debian-10-r641
180   pullPolicy: IfNotPresent
181   ports:
182   - name: tcp-metrics
183     port: 8080
184   podAnnotations:
185     prometheus.io/scrape: 'true'
186     prometheus.io/port: '8080'
187   livenessProbe:
188     enabled: true
189     httpGet:
190       path: /metrics
191       port: 8080
192     initialDelaySeconds: 30
193     periodSeconds: 10
194     timeoutSeconds: 5
195     successThreshold: 1
196     failureThreshold: 3
197   readinessProbe:
198     httpGet:
199       path: /metrics
200       port: 8080
201     enabled: true
202     initialDelaySeconds: 5
203     periodSeconds: 10
204     timeoutSeconds: 5
205     successThreshold: 1
206     failureThreshold: 3
207   serviceMonitor:
208     enabled: false
209     targetPort: 8080
210     path: /metrics
211     basicAuth:
212       enabled: false
213     ## Namespace in which Prometheus is running
214     ##
215     # namespace: monitoring
216
217     ## Interval at which metrics should be scraped.
218     #interval: 30s
219
220     ## Timeout after which the scrape is ended
221     # scrapeTimeout: 10s
222
223     ## ServiceMonitor selector labels
224     selector:
225       app.kubernetes.io/name: '{{ include "common.name" . }}'
226       helm.sh/chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
227       app.kubernetes.io/instance: '{{ include "common.release" . }}'
228       app.kubernetes.io/managed-by: '{{ .Release.Service }}'
229
230     ## RelabelConfigs to apply to samples before scraping
231     relabelings: []
232
233     ## MetricRelabelConfigs to apply to samples before ingestion
234     metricRelabelings: []