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