DirectorySecurity AdvisoriesPricing
Sign in
Directory
cassandra logoHELM

cassandra

Helm chart
iamguarded
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# This file has been modified by Chainguard, Inc.
2
#
3
# Copyright Chainguard, Inc. All Rights Reserved.
4
# Chainguard, Inc. modifications are subject to the license
5
# available at: https://www.chainguard.dev/legal/software-license-agreement
6
#
7
# Copyright Broadcom, Inc. All Rights Reserved.
8
# SPDX-License-Identifier: APACHE-2.0
9
10
## @section Global parameters
11
## Global Docker image parameters
12
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
14
##
15
16
## @param global.imageRegistry Global Docker image registry
17
## @param global.useImageTags Pull every image by tag and ignore all image digests, including digests set in values. Use this when your registry mirror does not have the chart's default image digests.
18
## @param global.imagePullSecrets Global Docker registry secret names as an array
19
## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
20
##
21
global:
22
imageRegistry: ""
23
useImageTags: false
24
## E.g.
25
## imagePullSecrets:
26
## - myRegistryKeySecretName
27
##
28
imagePullSecrets: []
29
defaultStorageClass: ""
30
## Security parameters
31
##
32
security:
33
## @param global.security.allowInsecureImages Allows skipping image verification
34
allowInsecureImages: false
35
## Compatibility adaptations for Kubernetes platforms
36
##
37
compatibility:
38
## Compatibility adaptations for Openshift
39
##
40
openshift:
41
## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
42
##
43
adaptSecurityContext: auto
44
org: ""
45
## @section Common parameters
46
##
47
48
## @param nameOverride String to partially override common.names.fullname
49
##
50
nameOverride: ""
51
## @param fullnameOverride String to fully override common.names.fullname
52
##
53
fullnameOverride: ""
54
## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
55
##
56
kubeVersion: ""
57
## @param commonLabels Labels to add to all deployed objects (sub-charts are not considered)
58
##
59
commonLabels: {}
60
## @param commonAnnotations Annotations to add to all deployed objects
61
##
62
commonAnnotations: {}
63
## @param clusterDomain Kubernetes cluster domain name
64
##
65
clusterDomain: cluster.local
66
## @param extraDeploy Array of extra objects to deploy with the release
67
##
68
extraDeploy: []
69
## @param usePasswordFiles Mount credentials as files instead of using environment variables
70
##
71
usePasswordFiles: true
72
## Enable diagnostic mode in the deployment
73
##
74
diagnosticMode:
75
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
76
##
77
enabled: false
78
## @param diagnosticMode.command Command to override all containers in the deployment
79
##
80
command:
81
- sleep
82
## @param diagnosticMode.args Args to override all containers in the deployment
83
##
84
args:
85
- infinity
86
## @section Cassandra parameters
87
##
88
89
## Iamguarded Cassandra image
90
## @param image.registry [default: REGISTRY_NAME] Cassandra image registry
91
## @param image.repository [default: REPOSITORY_NAME/cassandra] Cassandra image repository
92
## @skip image.tag Cassandra image tag (immutable tags are recommended)
93
## @param image.digest Cassandra image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
94
## @param image.pullPolicy image pull policy
95
## @param image.pullSecrets Cassandra image pull secrets
96
## @param image.debug Enable image debug mode
97
##
98
image:
99
registry: cgr.dev
100
repository: chainguard-private/cassandra-iamguarded
101
tag: 5.0.9
102
digest: ""
103
## Specify a imagePullPolicy
104
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
105
##
106
pullPolicy: IfNotPresent
107
## Optionally specify an array of imagePullSecrets.
108
## Secrets must be manually created in the namespace.
109
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
110
## e.g:
111
## pullSecrets:
112
## - myRegistryKeySecretName
113
##
114
pullSecrets: []
115
## Enable debug mode
116
##
117
debug: false
118
## Secret with keystore, keystore password, truststore, truststore password
119
## DEPRECATED. Use tls.existingSecret instead
120
# tlsEncryptionSecretName:
121
122
## Database credentials
123
## @param dbUser.user Cassandra admin user
124
## @param dbUser.forcePassword Force the user to provide a non
125
## @param dbUser.password Password for `dbUser.user`. Randomly generated if empty
126
## @param dbUser.existingSecret Use an existing secret object for `dbUser.user` password (will ignore `dbUser.password`)
127
##
128
dbUser:
129
user: cassandra
130
forcePassword: false
131
password: ""
132
## Use an existing secrets which already stores your password data.
133
## for backwards compatibility, existingSecret can be a simple string,
134
## referencing the secret by name.
135
## existingSecret:
136
## ## Name of the existing secret
137
## ##
138
## name: mySecret
139
## ## Key mapping where <key> is the value which the deployment is expecting and
140
## ## <value> is the name of the key in the existing secret.
141
## ##
142
## keyMapping:
143
## cassandra-password: myCassandraPasswordKey
144
##
145
existingSecret: ""
146
## @param initDB Object with cql scripts. Useful for creating a keyspace and pre-populating data
147
##
148
initDB: {}
149
## @param initDBConfigMap ConfigMap with cql scripts. Useful for creating a keyspace and pre-populating data
150
##
151
initDBConfigMap: ""
152
## @param initDBSecret Secret with cql script (with sensitive data). Useful for creating a keyspace and pre-populating data
153
##
154
initDBSecret: ""
155
## @param existingConfiguration ConfigMap with custom cassandra configuration files. This overrides any other Cassandra configuration set in the chart
156
##
157
existingConfiguration: ""
158
## Cluster parameters
159
## @param cluster.name Cassandra cluster name
160
## @param cluster.seedCount Number of seed nodes
161
## @param cluster.numTokens Number of tokens for each node
162
## @param cluster.datacenter Datacenter name
163
## @param cluster.rack Rack name
164
## @param cluster.endpointSnitch Endpoint Snitch
165
## @param cluster.clientEncryption Client Encryption
166
## @param cluster.extraSeeds For an external/second cassandra ring.
167
## @param cluster.enableUDF Enable User defined functions
168
##
169
170
dynamicSeedDiscovery:
171
## @param dynamicSeedDiscovery.enabled Enable dynamic-seed-discovery init container
172
##
173
enabled: false
174
## @param dynamicSeedDiscovery.image.registry [default: REGISTRY_NAME] Init container dynamic-seed-discovery image registry
175
## @param dynamicSeedDiscovery.image.repository [default: REPOSITORY_NAME/alpine] Init container dynamic-seed-discovery image repository
176
## @skip dynamicSeedDiscovery.image.tag Init container dynamic-seed-discovery image tag (immutable tags are recommended)
177
## @param dynamicSeedDiscovery.image.digest Init container dynamic-seed-discovery image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
178
## @param dynamicSeedDiscovery.image.pullPolicy Init container dynamic-seed-discovery pull policy
179
## @param dynamicSeedDiscovery.image.pullSecrets Specify docker-registry secret names as an array
180
##
181
image:
182
registry: cgr.dev
183
repository: chainguard-private/os-shell-cassandra-iamguarded
184
tag: 1.0.0
185
digest: ""
186
pullPolicy: IfNotPresent
187
## Optionally specify an array of imagePullSecrets.
188
## Secrets must be manually created in the namespace.
189
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
190
## e.g:
191
## pullSecrets:
192
## - myRegistryKeySecretName
193
##
194
pullSecrets: []
195
cluster:
196
name: cassandra
197
seedCount: 1
198
numTokens: 256
199
datacenter: dc1
200
rack: rack1
201
endpointSnitch: SimpleSnitch
202
clientEncryption: false
203
## eg:
204
## extraSeeds:
205
## - hostname/IP
206
## - hostname/IP
207
##
208
extraSeeds: []
209
enableUDF: false
210
## JVM Settings
211
## @param jvm.extraOpts Set the value for Java Virtual Machine extra options
212
## @param jvm.maxHeapSize Set Java Virtual Machine maximum heap size (MAX_HEAP_SIZE). Calculated automatically if `nil`
213
## @param jvm.newHeapSize Set Java Virtual Machine new heap size (HEAP_NEWSIZE). Calculated automatically if `nil`
214
##
215
jvm:
216
extraOpts: ""
217
## Memory settings: These are calculated automatically unless specified otherwise
218
## To run on environments with little resources (<= 8GB), tune your heap settings:
219
## - calculate 1/2 ram and cap to 1024MB
220
## - calculate 1/4 ram and cap to 8192MB
221
## - pick the max
222
##
223
maxHeapSize: ""
224
## newHeapSize:
225
## A good guideline is 100 MB per CPU core.
226
## - min(100 * num_cores, 1/4 * heap size)
227
## ref: https://docs.datastax.com/en/archived/cassandra/2.0/cassandra/operations/ops_tune_jvm_c.html
228
##
229
newHeapSize: ""
230
## @param command Command for running the container (set to default if not set). Use array form
231
##
232
command: []
233
## @param args Args for running the container (set to default if not set). Use array form
234
##
235
args: []
236
## @param extraEnvVars Extra environment variables to be set on cassandra container
237
## For example:
238
## - name: FOO
239
## value: BAR
240
##
241
extraEnvVars: []
242
## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
243
##
244
extraEnvVarsCM: ""
245
## @param extraEnvVarsSecret Name of existing Secret containing extra env vars
246
##
247
extraEnvVarsSecret: ""
248
## @section Statefulset parameters
249
##
250
251
## @param replicaCount Number of Cassandra replicas
252
##
253
replicaCount: 1
254
## @param updateStrategy.type updateStrategy for Cassandra statefulset
255
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
256
##
257
updateStrategy:
258
type: RollingUpdate
259
## @param automountServiceAccountToken Mount Service Account token in pod
260
##
261
automountServiceAccountToken: false
262
## @param hostAliases Add deployment host aliases
263
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
264
##
265
hostAliases: []
266
## @param podManagementPolicy StatefulSet pod management policy
267
##
268
podManagementPolicy: OrderedReady
269
## @param priorityClassName Cassandra pods' priority.
270
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
271
##
272
priorityClassName: ""
273
## @param podAnnotations Additional pod annotations
274
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
275
##
276
podAnnotations: {}
277
## @param podLabels Additional pod labels
278
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
279
##
280
podLabels: {}
281
## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
282
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
283
##
284
podAffinityPreset: ""
285
## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
286
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
287
##
288
podAntiAffinityPreset: soft
289
## Node affinity preset
290
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
291
##
292
nodeAffinityPreset:
293
## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
294
##
295
type: ""
296
## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set
297
##
298
key: ""
299
## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set
300
## E.g.
301
## values:
302
## - e2e-az1
303
## - e2e-az2
304
##
305
values: []
306
## @param affinity Affinity for pod assignment
307
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
308
## NOTE: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
309
##
310
affinity: {}
311
## @param nodeSelector Node labels for pod assignment
312
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
313
##
314
nodeSelector: {}
315
## @param tolerations Tolerations for pod assignment
316
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
317
##
318
tolerations: []
319
## @param topologySpreadConstraints Topology Spread Constraints for pod assignment
320
## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
321
## The value is evaluated as a template
322
##
323
topologySpreadConstraints: []
324
## Pod security context
325
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
326
## @param podSecurityContext.enabled Enabled Cassandra pods' Security Context
327
## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
328
## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
329
## @param podSecurityContext.supplementalGroups Set filesystem extra groups
330
## @param podSecurityContext.fsGroup Set Cassandra pod's Security Context fsGroup
331
##
332
podSecurityContext:
333
enabled: true
334
fsGroupChangePolicy: Always
335
sysctls: []
336
supplementalGroups: []
337
fsGroup: 1001
338
## Configure Container Security Context (only main container)
339
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
340
## @param containerSecurityContext.enabled Enabled Cassandra containers' Security Context
341
## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
342
## @param containerSecurityContext.runAsUser Set Cassandra containers' Security Context runAsUser
343
## @param containerSecurityContext.runAsGroup Set Cassandra containers' Security Context runAsGroup
344
## @param containerSecurityContext.allowPrivilegeEscalation Set Cassandra containers' Security Context allowPrivilegeEscalation
345
## @param containerSecurityContext.capabilities.drop Set Cassandra containers' Security Context capabilities to be dropped
346
## @param containerSecurityContext.readOnlyRootFilesystem Set Cassandra containers' Security Context readOnlyRootFilesystem
347
## @param containerSecurityContext.runAsNonRoot Set Cassandra containers' Security Context runAsNonRoot
348
## @param containerSecurityContext.privileged Set container's Security Context privileged
349
## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
350
##
351
containerSecurityContext:
352
enabled: true
353
seLinuxOptions: {}
354
runAsUser: 1001
355
runAsGroup: 1001
356
runAsNonRoot: true
357
privileged: false
358
allowPrivilegeEscalation: false
359
capabilities:
360
drop: ["ALL"]
361
seccompProfile:
362
type: "RuntimeDefault"
363
readOnlyRootFilesystem: true
364
## Cassandra pods' resource requests and limits
365
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
366
## Minimum memory for development is 4GB and 2 CPU cores
367
## Minimum memory for production is 8GB and 4 CPU cores
368
## ref: http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architecturePlanningHardware_c.html
369
##
370
## We usually recommend not to specify default resources and to leave this as a conscious
371
## choice for the user. This also increases chances charts run on environments with little
372
## resources, such as Minikube. If you do want to specify resources, uncomment the following
373
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
374
## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
375
##
376
resourcesPreset: "large"
377
## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
378
## Example:
379
## resources:
380
## requests:
381
## cpu: 2
382
## memory: 512Mi
383
## limits:
384
## cpu: 3
385
## memory: 1024Mi
386
##
387
resources: {}
388
## Configure extra options for Cassandra containers' liveness and readiness probes
389
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
390
## @param livenessProbe.enabled Enable livenessProbe
391
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
392
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
393
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
394
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
395
## @param livenessProbe.successThreshold Success threshold for livenessProbe
396
##
397
livenessProbe:
398
enabled: true
399
initialDelaySeconds: 60
400
periodSeconds: 30
401
timeoutSeconds: 30
402
successThreshold: 1
403
failureThreshold: 5
404
## @param readinessProbe.enabled Enable readinessProbe
405
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
406
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
407
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
408
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
409
## @param readinessProbe.successThreshold Success threshold for readinessProbe
410
##
411
readinessProbe:
412
enabled: true
413
initialDelaySeconds: 60
414
periodSeconds: 10
415
timeoutSeconds: 30
416
successThreshold: 1
417
failureThreshold: 5
418
## Configure extra options for startup probe
419
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
420
## @param startupProbe.enabled Enable startupProbe
421
## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
422
## @param startupProbe.periodSeconds Period seconds for startupProbe
423
## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
424
## @param startupProbe.failureThreshold Failure threshold for startupProbe
425
## @param startupProbe.successThreshold Success threshold for startupProbe
426
##
427
startupProbe:
428
enabled: false
429
initialDelaySeconds: 0
430
periodSeconds: 10
431
timeoutSeconds: 5
432
successThreshold: 1
433
failureThreshold: 60
434
## @param customLivenessProbe Custom livenessProbe that overrides the default one
435
##
436
customLivenessProbe: {}
437
## @param customReadinessProbe Custom readinessProbe that overrides the default one
438
##
439
customReadinessProbe: {}
440
## @param customStartupProbe [object] Override default startup probe
441
##
442
customStartupProbe: {}
443
## @param lifecycleHooks [object] Override default etcd container hooks
444
##
445
lifecycleHooks: {}
446
## @param schedulerName Alternative scheduler
447
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
448
##
449
schedulerName: ""
450
## @param terminationGracePeriodSeconds In seconds, time the given to the Cassandra pod needs to terminate gracefully
451
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
452
##
453
terminationGracePeriodSeconds: ""
454
## @param extraVolumes Optionally specify extra list of additional volumes for cassandra container
455
##
456
extraVolumes: []
457
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for cassandra container
458
##
459
extraVolumeMounts: []
460
## @param initContainers Add additional init containers to the cassandra pods
461
##
462
initContainers: []
463
## @param sidecars Add additional sidecar containers to the cassandra pods
464
##
465
sidecars: []
466
## Cassandra Pod Disruption Budget configuration
467
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
468
##
469
pdb:
470
## @param pdb.create Enable/disable a Pod Disruption Budget creation
471
##
472
create: true
473
## @param pdb.minAvailable Mininimum number of pods that must still be available after the eviction
474
##
475
minAvailable: ""
476
## @param pdb.maxUnavailable Max number of pods that can be unavailable after the eviction
477
##
478
maxUnavailable: ""
479
## @param hostNetwork Enable HOST Network
480
## If hostNetwork true -> dnsPolicy is set to ClusterFirstWithHostNet
481
##
482
hostNetwork: false
483
## Cassandra container ports to open
484
## If hostNetwork true: the hostPort is set identical to the containerPort
485
## @param containerPorts.intra Intra Port on the Host and Container
486
## @param containerPorts.tls TLS Port on the Host and Container
487
## @param containerPorts.jmx JMX Port on the Host and Container
488
## @param containerPorts.cql CQL Port on the Host and Container
489
##
490
containerPorts:
491
intra: 7000
492
tls: 7001
493
jmx: 7199
494
cql: 9042
495
## Cassandra ports to be exposed as hostPort
496
## If hostNetwork is false, only the ports specified here will be exposed (or not if set to an empty string)
497
## @param hostPorts.intra Intra Port on the Host
498
## @param hostPorts.tls TLS Port on the Host
499
## @param hostPorts.jmx JMX Port on the Host
500
## @param hostPorts.cql CQL Port on the Host
501
##
502
hostPorts:
503
intra: ""
504
tls: ""
505
jmx: ""
506
cql: ""
507
## @section RBAC parameters
508
##
509
510
## Cassandra pods ServiceAccount
511
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
512
##
513
serviceAccount:
514
## @param serviceAccount.create Enable the creation of a ServiceAccount for Cassandra pods
515
##
516
create: true
517
## @param serviceAccount.name The name of the ServiceAccount to use.
518
## If not set and create is true, a name is generated using the cassandra.fullname template
519
##
520
name: ""
521
## @param serviceAccount.annotations Annotations for Cassandra Service Account
522
##
523
annotations: {}
524
## @param serviceAccount.automountServiceAccountToken Automount API credentials for a service account.
525
##
526
automountServiceAccountToken: false
527
## @section Traffic Exposure Parameters
528
##
529
530
## Cassandra service parameters
531
##
532
service:
533
## @param service.type Cassandra service type
534
##
535
type: ClusterIP
536
## @param service.ports.cql Cassandra service CQL Port
537
## @param service.ports.metrics Cassandra service metrics port
538
##
539
ports:
540
cql: 9042
541
metrics: 8080
542
## Node ports to expose
543
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
544
## @param service.nodePorts.cql Node port for CQL
545
## @param service.nodePorts.metrics Node port for metrics
546
##
547
nodePorts:
548
cql: ""
549
metrics: ""
550
## @param service.extraPorts Extra ports to expose in the service (normally used with the `sidecar` value)
551
##
552
extraPorts: []
553
## @param service.loadBalancerIP LoadBalancerIP if service type is `LoadBalancer`
554
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
555
##
556
loadBalancerIP: ""
557
## @param service.loadBalancerSourceRanges Service Load Balancer sources
558
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
559
## e.g:
560
## loadBalancerSourceRanges:
561
## - 10.10.10.0/24
562
##
563
loadBalancerSourceRanges: []
564
## @param service.clusterIP Service Cluster IP
565
## e.g.:
566
## clusterIP: None
567
##
568
clusterIP: ""
569
## @param service.externalTrafficPolicy Service external traffic policy
570
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
571
##
572
externalTrafficPolicy: Cluster
573
## @param service.annotations Provide any additional annotations which may be required.
574
## This can be used to set the LoadBalancer service type to internal only.
575
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
576
##
577
annotations: {}
578
## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
579
## If "ClientIP", consecutive client requests will be directed to the same Pod
580
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
581
##
582
sessionAffinity: None
583
## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
584
## sessionAffinityConfig:
585
## clientIP:
586
## timeoutSeconds: 300
587
##
588
sessionAffinityConfig: {}
589
## Headless service properties
590
##
591
headless:
592
## @param service.headless.annotations Annotations for the headless service.
593
##
594
annotations: {}
595
## Network Policies
596
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
597
##
598
networkPolicy:
599
## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
600
##
601
enabled: true
602
## @param networkPolicy.allowExternal Don't require server label for connections
603
## The Policy model to apply. When set to false, only pods with the correct
604
## server label will have network access to the ports server is listening
605
## on. When true, server will accept connections from any source
606
## (with the correct destination port).
607
##
608
allowExternal: true
609
## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
610
##
611
allowExternalEgress: true
612
## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
613
## e.g:
614
## extraIngress:
615
## - ports:
616
## - port: 1234
617
## from:
618
## - podSelector:
619
## - matchLabels:
620
## - role: frontend
621
## - podSelector:
622
## - matchExpressions:
623
## - key: role
624
## operator: In
625
## values:
626
## - frontend
627
extraIngress: []
628
## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
629
## e.g:
630
## extraEgress:
631
## - ports:
632
## - port: 1234
633
## to:
634
## - podSelector:
635
## - matchLabels:
636
## - role: frontend
637
## - podSelector:
638
## - matchExpressions:
639
## - key: role
640
## operator: In
641
## values:
642
## - frontend
643
##
644
extraEgress: []
645
## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
646
## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
647
##
648
ingressNSMatchLabels: {}
649
ingressNSPodMatchLabels: {}
650
## @section Persistence parameters
651
##
652
653
## Enable persistence using Persistent Volume Claims
654
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
655
##
656
persistence:
657
## @param persistence.enabled Enable Cassandra data persistence using PVC, use a Persistent Volume Claim, If false, use emptyDir
658
##
659
enabled: true
660
## @param persistence.existingClaim Name of an existing PVC to use
661
##
662
existingClaim: ""
663
## @param persistence.storageClass PVC Storage Class for Cassandra data volume
664
## If defined, storageClassName: <storageClass>
665
## If set to "-", storageClassName: "", which disables dynamic provisioning
666
## If undefined (the default) or set to null, no storageClassName spec is
667
## set, choosing the default provisioner. (gp2 on AWS, standard on
668
## GKE, AWS & OpenStack)
669
##
670
storageClass: ""
671
## @param persistence.commitStorageClass PVC Storage Class for Cassandra Commit Log volume
672
## Storage class to use with CASSANDRA_COMMITLOG_DIR to reduce the concurrence for writing data and commit logs
673
## If set to "-", commitStorageClass: "", which disables dynamic provisioning
674
## If undefined (the default) or set to null, no storageClassName spec is
675
## set, choosing the default provisioner. (gp2 on AWS, standard on
676
## GKE, AWS & OpenStack)
677
##
678
commitStorageClass: ""
679
## @param persistence.annotations Persistent Volume Claim annotations
680
##
681
annotations: {}
682
## @param persistence.accessModes Persistent Volume Access Mode
683
##
684
accessModes:
685
- ReadWriteOnce
686
## @param persistence.size PVC Storage Request for Cassandra data volume
687
##
688
size: 8Gi
689
## @param persistence.commitLogsize PVC Storage Request for Cassandra commit log volume. Unset by default
690
##
691
commitLogsize: 2Gi
692
## @param persistence.mountPath The path the data volume will be mounted at
693
##
694
mountPath: /iamguarded/cassandra
695
## @param persistence.commitLogMountPath The path the commit log volume will be mounted at. Unset by default. Set it to '/iamguarded/cassandra/commitlog' to enable a separate commit log volume
696
##
697
# commitLogMountPath: /iamguarded/cassandra/commitlog
698
commitLogMountPath: ""
699
## @section Volume Permissions parameters
700
##
701
702
## Init containers parameters:
703
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
704
##
705
volumePermissions:
706
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
707
##
708
enabled: false
709
## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume image registry
710
## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume image repository
711
## @skip volumePermissions.image.tag Init container volume image tag (immutable tags are recommended)
712
## @param volumePermissions.image.digest Init container volume image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
713
## @param volumePermissions.image.pullPolicy Init container volume pull policy
714
## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array
715
##
716
image:
717
registry: cgr.dev
718
repository: chainguard-private/os-shell-iamguarded
719
tag: 1.0.0
720
digest: ""
721
pullPolicy: IfNotPresent
722
## Optionally specify an array of imagePullSecrets.
723
## Secrets must be manually created in the namespace.
724
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
725
## e.g:
726
## pullSecrets:
727
## - myRegistryKeySecretName
728
##
729
pullSecrets: []
730
## Init container' resource requests and limits
731
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
732
## We usually recommend not to specify default resources and to leave this as a conscious
733
## choice for the user. This also increases chances charts run on environments with little
734
## resources, such as Minikube. If you do want to specify resources, uncomment the following
735
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
736
## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
737
##
738
resourcesPreset: "nano"
739
## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
740
## Example:
741
## resources:
742
## requests:
743
## cpu: 2
744
## memory: 512Mi
745
## limits:
746
## cpu: 3
747
## memory: 1024Mi
748
##
749
resources: {}
750
## Init container Security Context
751
## Note: the chown of the data folder is done to securityContext.runAsUser
752
## and not the below volumePermissions.securityContext.runAsUser
753
## @param volumePermissions.securityContext.seLinuxOptions [object,nullable] Set SELinux options in container
754
## @param volumePermissions.securityContext.runAsUser User ID for the init container
755
##
756
## When runAsUser is set to special value "auto", init container will try to chwon the
757
## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
758
## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
759
## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
760
## pod securityContext.enabled=false and shmVolume.chmod.enabled=false
761
##
762
securityContext:
763
seLinuxOptions: {}
764
runAsUser: 0
765
## @section Metrics parameters
766
##
767
768
## Cassandra Prometheus exporter configuration
769
##
770
metrics:
771
## @param metrics.enabled Start a side-car prometheus exporter
772
##
773
enabled: false
774
## Iamguarded Cassandra Exporter image
775
## @param metrics.image.registry [default: REGISTRY_NAME] Cassandra exporter image registry
776
## @param metrics.image.repository [default: REPOSITORY_NAME/cassandra-exporter] Cassandra exporter image name
777
## @skip metrics.image.tag Cassandra exporter image tag
778
## @param metrics.image.digest Cassandra exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
779
## @param metrics.image.pullPolicy image pull policy
780
## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
781
##
782
image:
783
registry: cgr.dev
784
repository: chainguard-private/jmx-exporter-iamguarded
785
tag: 1.7.0
786
digest: ""
787
pullPolicy: IfNotPresent
788
## Optionally specify an array of imagePullSecrets.
789
## Secrets must be manually created in the namespace.
790
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
791
## e.g:
792
## pullSecrets:
793
## - myRegistryKeySecretName
794
##
795
pullSecrets: []
796
## Cassandra Prometheus exporter resource requests and limits
797
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
798
## We usually recommend not to specify default resources and to leave this as a conscious
799
## choice for the user. This also increases chances charts run on environments with little
800
## resources, such as Minikube. If you do want to specify resources, uncomment the following
801
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
802
## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
803
##
804
resourcesPreset: "nano"
805
## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
806
## Example:
807
## resources:
808
## requests:
809
## cpu: 2
810
## memory: 512Mi
811
## limits:
812
## cpu: 3
813
## memory: 1024Mi
814
##
815
resources: {}
816
## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
817
## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
818
## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
819
## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
820
## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
821
##
822
readinessProbe:
823
initialDelaySeconds: 20
824
periodSeconds: 10
825
timeoutSeconds: 45
826
failureThreshold: 3
827
successThreshold: 1
828
## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for cassandra-exporter container
829
##
830
extraVolumeMounts: []
831
## @param metrics.podAnnotations [object] Metrics exporter pod Annotation and Labels
832
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
833
##
834
podAnnotations:
835
prometheus.io/scrape: "true"
836
prometheus.io/port: "8080"
837
## Prometheus Operator ServiceMonitor configuration
838
##
839
serviceMonitor:
840
## @param metrics.serviceMonitor.enabled If `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
841
##
842
enabled: false
843
## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
844
##
845
namespace: monitoring
846
## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
847
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
848
## e.g:
849
## interval: 10s
850
##
851
interval: ""
852
## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
853
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
854
## e.g:
855
## scrapeTimeout: 10s
856
##
857
scrapeTimeout: ""
858
## @param metrics.serviceMonitor.selector Prometheus instance selector labels
859
## e.g:
860
## selector:
861
## prometheus: my-prometheus
862
##
863
selector: {}
864
## @param metrics.serviceMonitor.metricRelabelings Specify Metric Relabelings to add to the scrape endpoint
865
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
866
##
867
metricRelabelings: []
868
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
869
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
870
##
871
relabelings: []
872
## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
873
##
874
honorLabels: false
875
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
876
##
877
jobLabel: ""
878
## @param metrics.serviceMonitor.labels Used to pass Labels that are required by the installed Prometheus Operator
879
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
880
##
881
labels: {}
882
## Metrics container ports to open
883
## If hostNetwork true: the hostPort is set identical to the containerPort
884
## @param metrics.containerPorts.http HTTP Port on the Host and Container
885
## @param metrics.containerPorts.jmx JMX Port on the Host and Container
886
##
887
containerPorts:
888
http: 8080
889
jmx: 5555
890
## Metrics ports to be exposed as hostPort
891
## If hostNetwork is false, only the ports specified here will be exposed (or not if set to an empty string)
892
## @param metrics.hostPorts.http HTTP Port on the Host
893
## @param metrics.hostPorts.jmx JMX Port on the Host
894
##
895
hostPorts:
896
http: ""
897
jmx: ""
898
## @param metrics.configuration [string] Configure Cassandra-exporter with a custom config.yml file
899
## ref: https://github.com/criteo/cassandra_exporter/blob/master/config.yml
900
##
901
configuration: |
902
host: localhost:{{ .Values.containerPorts.jmx }}
903
ssl: False
904
user:
905
password:
906
listenPort: {{ .Values.metrics.containerPorts.http }}
907
blacklist:
908
# To profile the duration of jmx call you can start the program with the following options
909
# > java -Dorg.slf4j.simpleLogger.defaultLogLevel=trace -jar cassandra_exporter.jar config.yml --oneshot
910
#
911
# To get intuition of what is done by cassandra when something is called you can look in cassandra
912
# https://github.com/apache/cassandra/tree/trunk/src/java/org/apache/cassandra/metrics
913
# Please avoid to scrape frequently those calls that are iterating over all sstables
914
915
# Unaccessible metrics (not enough privilege)
916
- java:lang:memorypool:.*usagethreshold.*
917
918
# Leaf attributes not interesting for us but that are presents in many path
919
- .*:999thpercentile
920
- .*:95thpercentile
921
- .*:fifteenminuterate
922
- .*:fiveminuterate
923
- .*:durationunit
924
- .*:rateunit
925
- .*:stddev
926
- .*:meanrate
927
- .*:mean
928
- .*:min
929
930
# Path present in many metrics but uninterresting
931
- .*:viewlockacquiretime:.*
932
- .*:viewreadtime:.*
933
- .*:cas[a-z]+latency:.*
934
- .*:colupdatetimedeltahistogram:.*
935
936
# Mostly for RPC, do not scrap them
937
- org:apache:cassandra:db:.*
938
939
# columnfamily is an alias for Table metrics
940
# https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/src/java/org/apache/cassandra/metrics/TableMetrics.java#L162
941
- org:apache:cassandra:metrics:columnfamily:.*
942
943
# Should we export metrics for system keyspaces/tables ?
944
- org:apache:cassandra:metrics:[^:]+:system[^:]*:.*
945
946
# Don't scrap us
947
- com:criteo:nosql:cassandra:exporter:.*
948
949
maxScrapFrequencyInSec:
950
50:
951
- .*
952
953
# Refresh those metrics only every hour as it is costly for cassandra to retrieve them
954
3600:
955
- .*:snapshotssize:.*
956
- .*:estimated.*
957
- .*:totaldiskspaceused:.*
958
## @section TLS/SSL parameters
959
##
960
961
## TLS/SSL parameters
962
## @param tls.internodeEncryption Set internode encryption
963
## @param tls.clientEncryption Set client-server encryption
964
## @param tls.autoGenerated Generate automatically self-signed TLS certificates. Currently only supports PEM certificates
965
## @param tls.existingSecret Existing secret that contains Cassandra Keystore and truststore
966
## @param tls.passwordsSecret Secret containing the Keystore and Truststore passwords if needed
967
## @param tls.keystorePassword Password for the keystore, if needed.
968
## @param tls.truststorePassword Password for the truststore, if needed.
969
## @param tls.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if tls.resources is set (tls.resources is recommended for production).
970
## @param tls.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
971
## @param tls.certificatesSecret Secret with the TLS certificates.
972
## @param tls.tlsEncryptionSecretName Secret with the encryption of the TLS certificates
973
##
974
tls:
975
internodeEncryption: none
976
clientEncryption: false
977
autoGenerated: false
978
existingSecret: ""
979
passwordsSecret: ""
980
keystorePassword: ""
981
truststorePassword: ""
982
certificatesSecret: ""
983
tlsEncryptionSecretName: ""
984
resourcesPreset: "nano"
985
## We usually recommend not to specify default resources and to leave this as a conscious
986
## choice for the user. This also increases chances charts run on environments with little
987
## resources, such as Minikube. If you do want to specify resources, uncomment the following
988
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
989
## Example:
990
## resources:
991
## requests:
992
## cpu: 2
993
## memory: 512Mi
994
## limits:
995
## cpu: 3
996
## memory: 1024Mi
997
resources: {}
998

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.