[COMMON] Adding Common Template for cassa-operator
[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: false
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 podManagementPolicy: OrderedReady
155 updateStrategy:
156   type: RollingUpdate
157
158 persistence:
159   enabled: true
160
161   ## A manually managed Persistent Volume and Claim
162   ## Requires persistence.enabled: true
163   ## If defined, PVC must be created manually before volume will be bound
164   # existingClaim:
165   volumeReclaimPolicy: Retain
166
167   ## database data Persistent Volume Storage Class
168   ## If defined, storageClassName: <storageClass>
169   ## If set to "-", storageClassName: "", which disables dynamic provisioning
170   ## If undefined (the default) or set to null, no storageClassName spec is
171   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
172   ##   GKE, AWS & OpenStack)
173   ##
174   ## storageClass: "-"
175   ## Not set as it depends of the backup enabledment or not.
176   accessMode: ReadWriteOnce
177   size: 10Gi
178   mountPath: /dockerdata-nfs
179   mountSubPath: cassandra
180   storageType: local
181   backup:
182       mountPath: /dockerdata-nfs/backup
183
184 configOverrides: {}
185
186 # resources: {}
187   # We usually recommend not to specify default resources and to leave this as a conscious
188   # choice for the user. This also increases chances charts run on environments with little
189   # resources, such as Minikube. If you do want to specify resources, uncomment the following
190   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
191   #
192   # Example:
193   # Configure resource requests and limits
194   # ref: http://kubernetes.io/docs/user-guide/compute-resources/
195   # Minimum memory for development is 2 CPU cores and 4GB memory
196   # Minimum memory for production is 4 CPU cores and 8GB memory
197 resources:
198   limits:
199     cpu: 2
200     memory: 8Gi
201   requests:
202     cpu: 0.2
203     memory: 2.5Gi
204 backup:
205   enabled: false
206   cron: "00 00 * * *"
207   retentionPeriod: 3
208   dbSize: 1
209   keyspacesToSkip:
210   - name: system_traces
211   - name: system_auth
212   - name: system_distributed
213
214 #Pods Service Account
215 serviceAccount:
216   nameOverride: cassandra
217   roles:
218     - nothing
219
220 # Cassandra Metrics
221 metrics:
222   enabled: false
223   image: bitnami/cassandra-exporter:2.3.4-debian-10-r641
224   pullPolicy: IfNotPresent
225   ports:
226   - name: tcp-metrics
227     port: 8080
228   podAnnotations:
229     prometheus.io/scrape: 'true'
230     prometheus.io/port: '8080'
231   livenessProbe:
232     enabled: true
233     httpGet:
234       path: /metrics
235       port: 8080
236     initialDelaySeconds: 30
237     periodSeconds: 10
238     timeoutSeconds: 5
239     successThreshold: 1
240     failureThreshold: 3
241   readinessProbe:
242     httpGet:
243       path: /metrics
244       port: 8080
245     enabled: true
246     initialDelaySeconds: 5
247     periodSeconds: 10
248     timeoutSeconds: 5
249     successThreshold: 1
250     failureThreshold: 3
251   serviceMonitor:
252     enabled: false
253     targetPort: 8080
254     path: /metrics
255     basicAuth:
256       enabled: false
257     ## Namespace in which Prometheus is running
258     ##
259     # namespace: monitoring
260
261     ## Interval at which metrics should be scraped.
262     #interval: 30s
263
264     ## Timeout after which the scrape is ended
265     # scrapeTimeout: 10s
266
267     ## ServiceMonitor selector labels
268     selector:
269       app.kubernetes.io/name: '{{ include "common.name" . }}'
270       helm.sh/chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
271       app.kubernetes.io/instance: '{{ include "common.release" . }}'
272       app.kubernetes.io/managed-by: '{{ .Release.Service }}'
273
274     ## RelabelConfigs to apply to samples before scraping
275     relabelings: []
276
277     ## MetricRelabelConfigs to apply to samples before ingestion
278     metricRelabelings: []