[CASSANDRA] Make stargate and reaper deployment optional
[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   cassandra:
25     # flag to enable the DB creation via k8ssandra-operator
26     useOperator: true
27     # if useOperator set to "true", set "enableServiceAccount to "false"
28     # as the SA is created by the Operator
29     enableServiceAccount: false
30
31 k8ssandraOperator:
32   cassandraVersion: 4.0.10
33   persistence:
34     #storageClassName: default
35     size: 10Gi
36   config:
37     clusterName: cassandra
38     secretName: &secretName cassandra-default-user
39     superuserName: &superusername cassandra
40     superuserPassword: &superuserpassword cassandra
41     casOptions:
42       authorizer: AllowAllAuthorizer
43     jvmOptions:
44       heap_initial_size: 512M
45       heap_max_size: 4096M
46     hostNetwork: false
47   datacenters:
48     - name: dc1
49       size: 3
50   reaper:
51     enabled: true
52   stargate:
53     enabled: true
54     tag: v1.0.76
55     size: 1
56     jvmOptions:
57       heapSize: 384Mi
58
59 #################################################################
60 # Secrets metaconfig
61 # used to store the default superuser for k8ssandra-operator
62 #################################################################
63 secrets:
64   - uid: *secretName
65     type: genericKV
66     externalSecret: '{{ tpl (default "" .Values.k8ssandraOperator.config.userCredentialsExternalSecret) . }}'
67     envs:
68       - name: username
69         value: *superusername
70       - name: password
71         value: *superuserpassword
72
73 ingress:
74   enabled: false
75   service:
76     - baseaddr: "reaper-dc1"
77       path: "/webui"
78       name: "cassandra-dc1-reaper-service"
79       port: 8080
80
81 # application image
82 image: cassandra:3.11.4
83 pullPolicy: Always
84
85 # flag to enable debugging - application support required
86 debugEnabled: false
87
88 # application configuration
89 config:
90   cluster_domain: cluster.local
91   heap:
92     max: 4096M
93     min: 200M
94   jvmOpts: -Dcassandra.consistent.rangemovement=false
95   clusterName: cassandra
96   dataCenter: Pod
97   rackName: Rack
98   autoBootstrap: true
99   # If hostNetwork is true then provide the comma separated list of seeds.
100   #seeds:seed1,seed2
101
102 # default number of instances
103 replicaCount: 3
104
105 hostNetwork: false
106
107 nodeSelector: {}
108
109 affinity: {}
110
111 # probe configuration parameters
112 liveness:
113   initialDelaySeconds: 1
114   periodSeconds: 10
115   timeoutSeconds: 10
116   successThreshold: 1
117   failureThreshold: 3
118   # necessary to disable liveness probe when setting breakpoints
119   # in debugger so K8s doesn't restart unresponsive container
120   enabled: true
121
122 readiness:
123   initialDelaySeconds: 1
124   periodSeconds: 10
125   timeoutSeconds: 10
126   successThreshold: 1
127   failureThreshold: 3
128
129 startup:
130   initialDelaySeconds: 10
131   periodSeconds: 10
132   timeoutSeconds: 10
133   successThreshold: 1
134   failureThreshold: 90
135
136 service:
137   name: cassandra
138   headless:
139     suffix: ""
140     annotations:
141       service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
142     publishNotReadyAddresses: true
143   headlessPorts:
144   - name: tcp-intra
145     port: 7000
146   - name: tls
147     port: 7001
148   - name: tcp-jmx
149     port: 7199
150   - name: tcp-cql
151     port: 9042
152     ## thrift protocol is  deprecated . Should be removed. Being left until all project removes it.
153   - name: tcp-thrift
154     port: 9160
155   - name: tcp-agent
156     port: 61621
157
158 podAnnotations:
159   #  sidecar.istio.io/inject: "false"
160   traffic.sidecar.istio.io/excludeInboundPorts: "7000,7001"
161   traffic.sidecar.istio.io/includeInboundPorts: '*'
162   traffic.sidecar.istio.io/excludeOutboundPorts: "7000,7001"
163   prometheus.io/scrape: 'true'
164   prometheus.io/port: '8080'
165
166 podManagementPolicy: OrderedReady
167 updateStrategy:
168   type: RollingUpdate
169
170 persistence:
171   enabled: true
172
173   ## A manually managed Persistent Volume and Claim
174   ## Requires persistence.enabled: true
175   ## If defined, PVC must be created manually before volume will be bound
176   # existingClaim:
177   volumeReclaimPolicy: Retain
178
179   ## database data Persistent Volume Storage Class
180   ## If defined, storageClassName: <storageClass>
181   ## If set to "-", storageClassName: "", which disables dynamic provisioning
182   ## If undefined (the default) or set to null, no storageClassName spec is
183   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
184   ##   GKE, AWS & OpenStack)
185   ##
186   ## storageClass: "-"
187   ## Not set as it depends of the backup enabledment or not.
188   accessMode: ReadWriteOnce
189   size: 10Gi
190   mountPath: /dockerdata-nfs
191   mountSubPath: cassandra
192   storageType: local
193   backup:
194       mountPath: /dockerdata-nfs/backup
195
196 configOverrides: {}
197
198 # resources: {}
199   # We usually recommend not to specify default resources and to leave this as a conscious
200   # choice for the user. This also increases chances charts run on environments with little
201   # resources, such as Minikube. If you do want to specify resources, uncomment the following
202   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
203   #
204   # Example:
205   # Configure resource requests and limits
206   # ref: http://kubernetes.io/docs/user-guide/compute-resources/
207   # Minimum memory for development is 2 CPU cores and 4GB memory
208   # Minimum memory for production is 4 CPU cores and 8GB memory
209 resources:
210   limits:
211     cpu: 2
212     memory: 8Gi
213   requests:
214     cpu: 0.2
215     memory: 2.5Gi
216 backup:
217   enabled: false
218   cron: "00 00 * * *"
219   retentionPeriod: 3
220   dbSize: 1
221   keyspacesToSkip:
222   - name: system_traces
223   - name: system_auth
224   - name: system_distributed
225
226 #Pods Service Account
227 serviceAccount:
228   nameOverride: cassandra
229   roles:
230     - nothing
231
232 # Cassandra Metrics
233 metrics:
234   enabled: false
235   image: bitnami/cassandra-exporter:2.3.4-debian-10-r641
236   pullPolicy: IfNotPresent
237   ports:
238   - name: tcp-metrics
239     port: 8080
240   podAnnotations:
241     prometheus.io/scrape: 'true'
242     prometheus.io/port: '8080'
243   livenessProbe:
244     enabled: true
245     httpGet:
246       path: /metrics
247       port: 8080
248     initialDelaySeconds: 30
249     periodSeconds: 10
250     timeoutSeconds: 5
251     successThreshold: 1
252     failureThreshold: 3
253   readinessProbe:
254     httpGet:
255       path: /metrics
256       port: 8080
257     enabled: true
258     initialDelaySeconds: 5
259     periodSeconds: 10
260     timeoutSeconds: 5
261     successThreshold: 1
262     failureThreshold: 3
263   serviceMonitor:
264     enabled: false
265     targetPort: 8080
266     path: /metrics
267     basicAuth:
268       enabled: false
269     ## Namespace in which Prometheus is running
270     ##
271     # namespace: monitoring
272
273     ## Interval at which metrics should be scraped.
274     #interval: 30s
275
276     ## Timeout after which the scrape is ended
277     # scrapeTimeout: 10s
278
279     ## ServiceMonitor selector labels
280     selector:
281       app.kubernetes.io/name: '{{ include "common.name" . }}'
282       helm.sh/chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
283       app.kubernetes.io/instance: '{{ include "common.release" . }}'
284       app.kubernetes.io/managed-by: '{{ .Release.Service }}'
285
286     ## RelabelConfigs to apply to samples before scraping
287     relabelings: []
288
289     ## MetricRelabelConfigs to apply to samples before ingestion
290     metricRelabelings: []