DirectorySecurity AdvisoriesPricing
Sign in
Directory
kafka-31 logoHELM

kafka-31

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.

Chart tags
Default values
Chart metadata
Images

Tag:

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.imagePullSecrets Global Docker registry secret names as an array
18
## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
19
## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
20
##
21
global:
22
imageRegistry: ""
23
## E.g.
24
## imagePullSecrets:
25
## - myRegistryKeySecretName
26
##
27
imagePullSecrets: []
28
defaultStorageClass: ""
29
storageClass: ""
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 kubeVersion Override Kubernetes version
49
##
50
kubeVersion: ""
51
## @param apiVersions Override Kubernetes API versions reported by .Capabilities
52
##
53
apiVersions: []
54
## @param nameOverride String to partially override common.names.fullname
55
##
56
nameOverride: ""
57
## @param fullnameOverride String to fully override common.names.fullname
58
##
59
fullnameOverride: ""
60
## @param clusterDomain Default Kubernetes cluster domain
61
##
62
clusterDomain: cluster.local
63
## @param commonLabels Labels to add to all deployed objects
64
##
65
commonLabels: {}
66
## @param commonAnnotations Annotations to add to all deployed objects
67
##
68
commonAnnotations: {}
69
## @param extraDeploy Array of extra objects to deploy with the release
70
##
71
extraDeploy: []
72
## @param serviceBindings.enabled Create secret for service binding (Experimental)
73
## Ref: https://servicebinding.io/service-provider/
74
##
75
serviceBindings:
76
enabled: false
77
## Enable diagnostic mode in the statefulset
78
##
79
diagnosticMode:
80
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
81
##
82
enabled: false
83
## @param diagnosticMode.command Command to override all containers in the statefulset
84
##
85
command:
86
- sleep
87
## @param diagnosticMode.args Args to override all containers in the statefulset
88
##
89
args:
90
- infinity
91
## @section Kafka parameters
92
##
93
94
## Iamguarded Kafka image version
95
## @param image.registry [default: REGISTRY_NAME] Kafka image registry
96
## @param image.repository [default: REPOSITORY_NAME/kafka] Kafka image repository
97
## @skip image.tag Kafka image tag (immutable tags are recommended)
98
## @param image.digest Kafka image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
99
## @param image.pullPolicy Kafka image pull policy
100
## @param image.pullSecrets Specify docker-registry secret names as an array
101
## @param image.debug Specify if debug values should be set
102
##
103
image:
104
registry: chainreg.biz
105
repository: chainguard-private/kafka-iamguarded
106
tag: 3.9.2
107
digest: sha256:86daa57bec2938c36b3b8caf0d24fa78044657a8fe3b1bec87069bd1660a44db
108
## Specify a imagePullPolicy
109
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
110
##
111
pullPolicy: IfNotPresent
112
## Optionally specify an array of imagePullSecrets.
113
## Secrets must be manually created in the namespace.
114
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
115
## e.g:
116
## pullSecrets:
117
## - myRegistryKeySecretName
118
##
119
pullSecrets: []
120
## Set to true if you would like to see extra information on logs
121
##
122
debug: false
123
## @param extraInit Additional content for the kafka init script, rendered as a template.
124
##
125
extraInit: ""
126
## @param config Configuration file for Kafka, rendered as a template. Auto-generated based on chart values when not specified.
127
## @param existingConfigmap ConfigMap with Kafka Configuration
128
## NOTE: This will override the configuration based on values, please act carefully
129
## If both are set, the existingConfigMap will be used.
130
##
131
config: ""
132
existingConfigmap: ""
133
## @param extraConfig Additional configuration to be appended at the end of the generated Kafka configuration file.
134
##
135
extraConfig: ""
136
## @param extraConfigYaml Additional configuration in yaml format to be appended at the end of the generated Kafka configuration file.
137
##
138
## E.g.
139
## extraConfigYaml:
140
## default.replication.factor: 3
141
##
142
extraConfigYaml: {}
143
## @param secretConfig Additional configuration to be appended at the end of the generated Kafka configuration file.
144
## This value will be stored in a secret.
145
##
146
secretConfig: ""
147
## @param existingSecretConfig Secret with additonal configuration that will be appended to the end of the generated Kafka configuration file
148
## The key for the configuration should be: server-secret.properties
149
## NOTE: This will override secretConfig value
150
##
151
existingSecretConfig: ""
152
## @param log4j An optional log4j.properties file to overwrite the default of the Kafka brokers
153
## An optional log4j.properties file to overwrite the default of the Kafka brokers
154
## ref: https://github.com/apache/kafka/blob/trunk/config/log4j.properties
155
##
156
log4j: ""
157
## @param existingLog4jConfigMap The name of an existing ConfigMap containing a log4j.properties file
158
## The name of an existing ConfigMap containing a log4j.properties file
159
## NOTE: this will override `log4j`
160
##
161
existingLog4jConfigMap: ""
162
## @param heapOpts Kafka Java Heap configuration
163
##
164
heapOpts: -XX:InitialRAMPercentage=75 -XX:MaxRAMPercentage=75
165
## @param brokerRackAssignment Set Broker Assignment for multi tenant environment Allowed values: `aws-az`, `azure`
166
## ref: https://cwiki.apache.org/confluence/display/KAFKA/KIP-392%3A+Allow+consumers+to+fetch+from+closest+replica
167
##
168
brokerRackAssignment: ""
169
## @param brokerRackAssignmentApiVersion Set Broker Assignment API version when brokerRackAssignment set to : `azure`
170
brokerRackAssignmentApiVersion: "2023-11-15"
171
## @param interBrokerProtocolVersion Override the setting 'inter.broker.protocol.version' during the ZK migration.
172
## Ref. https://docs.confluent.io/platform/current/installation/migrate-zk-kraft.html
173
##
174
interBrokerProtocolVersion: ""
175
## Kafka listeners configuration
176
##
177
listeners:
178
## @param listeners.client.name Name for the Kafka client listener
179
## @param listeners.client.containerPort Port for the Kafka client listener
180
## @param listeners.client.protocol Security protocol for the Kafka client listener. Allowed values are 'PLAINTEXT', 'SASL_PLAINTEXT', 'SASL_SSL' and 'SSL'
181
## @param listeners.client.sslClientAuth Optional. If SASL_SSL is enabled, configure mTLS TLS authentication type. If SSL protocol is enabled, overrides tls.authType for this listener. Allowed values are 'none', 'requested' and 'required'
182
client:
183
containerPort: 9092
184
protocol: SASL_PLAINTEXT
185
name: CLIENT
186
sslClientAuth: ""
187
## @param listeners.controller.name Name for the Kafka controller listener
188
## @param listeners.controller.containerPort Port for the Kafka controller listener
189
## @param listeners.controller.protocol Security protocol for the Kafka controller listener. Allowed values are 'PLAINTEXT', 'SASL_PLAINTEXT', 'SASL_SSL' and 'SSL'
190
## @param listeners.controller.sslClientAuth Optional. If SASL_SSL is enabled, configure mTLS TLS authentication type. If SSL protocol is enabled, overrides tls.authType for this listener. Allowed values are 'none', 'requested' and 'required'
191
## Ref: https://cwiki.apache.org/confluence/display/KAFKA/KIP-684+-+Support+mutual+TLS+authentication+on+SASL_SSL+listeners
192
controller:
193
name: CONTROLLER
194
containerPort: 9093
195
protocol: SASL_PLAINTEXT
196
sslClientAuth: ""
197
## @param listeners.interbroker.name Name for the Kafka inter-broker listener
198
## @param listeners.interbroker.containerPort Port for the Kafka inter-broker listener
199
## @param listeners.interbroker.protocol Security protocol for the Kafka inter-broker listener. Allowed values are 'PLAINTEXT', 'SASL_PLAINTEXT', 'SASL_SSL' and 'SSL'
200
## @param listeners.interbroker.sslClientAuth Optional. If SASL_SSL is enabled, configure mTLS TLS authentication type. If SSL protocol is enabled, overrides tls.authType for this listener. Allowed values are 'none', 'requested' and 'required'
201
interbroker:
202
containerPort: 9094
203
protocol: SASL_PLAINTEXT
204
name: INTERNAL
205
sslClientAuth: ""
206
## @param listeners.external.containerPort Port for the Kafka external listener
207
## @param listeners.external.protocol Security protocol for the Kafka external listener. . Allowed values are 'PLAINTEXT', 'SASL_PLAINTEXT', 'SASL_SSL' and 'SSL'
208
## @param listeners.external.name Name for the Kafka external listener
209
## @param listeners.external.sslClientAuth Optional. If SASL_SSL is enabled, configure mTLS TLS authentication type. If SSL protocol is enabled, overrides tls.sslClientAuth for this listener. Allowed values are 'none', 'requested' and 'required'
210
external:
211
containerPort: 9095
212
protocol: SASL_PLAINTEXT
213
name: EXTERNAL
214
sslClientAuth: ""
215
## @param listeners.extraListeners Array of listener objects to be appended to already existing listeners
216
## E.g.
217
## extraListeners:
218
## - name: CUSTOM
219
## containerPort: 9097
220
## protocol: SASL_PLAINTEXT
221
## sslClientAuth: ""
222
##
223
extraListeners: []
224
## NOTE: If set, below values will override configuration set using the above values (extraListeners.*, controller.*, interbroker.*, client.* and external.*)
225
## @param listeners.overrideListeners Overrides the Kafka 'listeners' configuration setting.
226
## @param listeners.advertisedListeners Overrides the Kafka 'advertised.listener' configuration setting.
227
## @param listeners.securityProtocolMap Overrides the Kafka 'security.protocol.map' configuration setting.
228
overrideListeners: ""
229
advertisedListeners: ""
230
securityProtocolMap: ""
231
## @section Kafka SASL parameters
232
## Kafka SASL settings for authentication, required if SASL_PLAINTEXT or SASL_SSL listeners are configured
233
##
234
sasl:
235
## @param sasl.enabledMechanisms Comma-separated list of allowed SASL mechanisms when SASL listeners are configured. Allowed types: `PLAIN`, `SCRAM-SHA-256`, `SCRAM-SHA-512`, `OAUTHBEARER`
236
## NOTE: At the moment, Kafka Raft mode does not support SCRAM, that is why only PLAIN is configured.
237
##
238
enabledMechanisms: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512
239
## @param sasl.interBrokerMechanism SASL mechanism for inter broker communication.
240
##
241
interBrokerMechanism: PLAIN
242
## @param sasl.controllerMechanism SASL mechanism for controller communications.
243
##
244
controllerMechanism: PLAIN
245
## Settings for oauthbearer mechanism
246
## @param sasl.oauthbearer.tokenEndpointUrl The URL for the OAuth/OIDC identity provider
247
## @param sasl.oauthbearer.jwksEndpointUrl The OAuth/OIDC provider URL from which the provider's JWKS (JSON Web Key Set) can be retrieved
248
## @param sasl.oauthbearer.expectedAudience The comma-delimited setting for the broker to use to verify that the JWT was issued for one of the expected audiences
249
## @param sasl.oauthbearer.subClaimName The OAuth claim name for the subject.
250
##
251
oauthbearer:
252
tokenEndpointUrl: ""
253
jwksEndpointUrl: ""
254
expectedAudience: ""
255
subClaimName: "sub"
256
## Credentials for inter-broker communications.
257
## @param sasl.interbroker.user Username for inter-broker communications when SASL is enabled
258
## @param sasl.interbroker.password Password for inter-broker communications when SASL is enabled. If not set and SASL is enabled for the controller listener, a random password will be generated.
259
## @param sasl.interbroker.clientId Client ID for inter-broker communications when SASL is enabled with mechanism OAUTHBEARER
260
## @param sasl.interbroker.clientSecret Client Secret for inter-broker communications when SASL is enabled with mechanism OAUTHBEARER. If not set and SASL is enabled for the controller listener, a random secret will be generated.
261
##
262
interbroker:
263
user: inter_broker_user
264
password: ""
265
clientId: inter_broker_client
266
clientSecret: ""
267
## Credentials for controller communications.
268
## @param sasl.controller.user Username for controller communications when SASL is enabled
269
## @param sasl.controller.password Password for controller communications when SASL is enabled. If not set and SASL is enabled for the inter-broker listener, a random password will be generated.
270
## @param sasl.controller.clientId Client ID for controller communications when SASL is enabled with mechanism OAUTHBEARER
271
## @param sasl.controller.clientSecret Client Secret for controller communications when SASL is enabled with mechanism OAUTHBEARER. If not set and SASL is enabled for the inter-broker listener, a random secret will be generated.
272
##
273
controller:
274
user: controller_user
275
password: ""
276
clientId: controller_broker_client
277
clientSecret: ""
278
## Credentials for client communications.
279
## @param sasl.client.users Comma-separated list of usernames for client communications when SASL is enabled
280
## @param sasl.client.passwords Comma-separated list of passwords for client communications when SASL is enabled, must match the number of client.users
281
##
282
client:
283
users:
284
- user1
285
passwords: ""
286
## Credentials for Zookeeper communications.
287
## @param sasl.zookeeper.user Username for zookeeper communications when SASL is enabled.
288
## @param sasl.zookeeper.password Password for zookeeper communications when SASL is enabled.
289
##
290
zookeeper:
291
user: ""
292
password: ""
293
## @param sasl.existingSecret Name of the existing secret containing credentials for clientUsers, interBrokerUser, controllerUser and zookeeperUser
294
## Create this secret running the command below where SECRET_NAME is the name of the secret you want to create:
295
## kubectl create secret generic SECRET_NAME --from-literal=client-passwords=CLIENT_PASSWORD1,CLIENT_PASSWORD2 --from-literal=inter-broker-password=INTER_BROKER_PASSWORD --from-literal=inter-broker-client-secret=INTER_BROKER_CLIENT_SECRET --from-literal=controller-password=CONTROLLER_PASSWORD --from-literal=controller-client-secret=CONTROLLER_CLIENT_SECRET --from-literal=zookeeper-password=ZOOKEEPER_PASSWORD
296
## The client secrets are only required when using oauthbearer as sasl mechanism.
297
## Client, interbroker and controller passwords are only required if the sasl mechanism includes something other than oauthbearer.
298
##
299
existingSecret: ""
300
## @section Kafka TLS parameters
301
## Kafka TLS settings, required if SSL or SASL_SSL listeners are configured
302
##
303
tls:
304
## @param tls.type Format to use for TLS certificates. Allowed types: `JKS` and `PEM`
305
##
306
type: JKS
307
## @param tls.pemChainIncluded Flag to denote that the Certificate Authority (CA) certificates are bundled with the endpoint cert.
308
## Certificates must be in proper order, where the top certificate is the leaf and the bottom certificate is the top-most intermediate CA.
309
##
310
pemChainIncluded: false
311
## @param tls.existingSecret Name of the existing secret containing the TLS certificates for the Kafka nodes.
312
## When using 'jks' format for certificates, each secret should contain a truststore and a keystore.
313
## Create these secrets following the steps below:
314
## 1) Generate your truststore and keystore files. Helpful script: https://raw.githubusercontent.com/confluentinc/confluent-platform-security-tools/master/kafka-generate-ssl.sh
315
## 2) Rename your truststore to `kafka.truststore.jks`.
316
## 3) Rename your keystores to `kafka-<role>-X.keystore.jks` where X is the replica number of the .
317
## 4) Run the command below one time per broker to create its associated secret (SECRET_NAME_X is the name of the secret you want to create):
318
## kubectl create secret generic SECRET_NAME_0 --from-file=kafka.truststore.jks=./kafka.truststore.jks \
319
## --from-file=kafka-controller-0.keystore.jks=./kafka-controller-0.keystore.jks --from-file=kafka-broker-0.keystore.jks=./kafka-broker-0.keystore.jks ...
320
##
321
## NOTE: Alternatively, a single keystore can be provided for all nodes under the key 'kafka.keystore.jks', this keystore will be used by all nodes unless overridden by the 'kafka-<role>-X.keystore.jks' file
322
##
323
## When using 'pem' format for certificates, each secret should contain a public CA certificate, a public certificate and one private key.
324
## Create these secrets following the steps below:
325
## 1) Create a certificate key and signing request per Kafka broker, and sign the signing request with your CA
326
## 2) Rename your CA file to `kafka-ca.crt`.
327
## 3) Rename your certificates to `kafka-X.tls.crt` where X is the ID of each Kafka broker.
328
## 3) Rename your keys to `kafka-X.tls.key` where X is the ID of each Kafka broker.
329
## 4) Run the command below one time per broker to create its associated secret (SECRET_NAME_X is the name of the secret you want to create):
330
## kubectl create secret generic SECRET_NAME_0 --from-file=kafka-ca.crt=./kafka-ca.crt --from-file=kafka-controller-0.crt=./kafka-controller-0.crt --from-file=kafka-controller-0.key=./kafka-controller-0.key \
331
## --from-file=kafka-broker-0.crt=./kafka-broker-0.crt --from-file=kafka-broker-0.key=./kafka-broker-0.key ...
332
##
333
## NOTE: Alternatively, a single key and certificate can be provided for all nodes under the keys 'kafka.crt' and 'kafka.key'. These certificates will be used by all nodes unless overridden by the 'kafka-<role>-X.key' and 'kafka-<role>-X.crt' files
334
## NOTE: Alternatively, a single key and certificate can be provided for all nodes under the keys 'tls.crt' and 'tls.key'. These certificates will be used by all nodes unless overridden by the 'kafka-<role>-X.key' and 'kafka-<role>-X.crt' files
335
##
336
existingSecret: ""
337
## @param tls.autoGenerated Generate automatically self-signed TLS certificates for Kafka brokers. Currently only supported if `tls.type` is `PEM`
338
## Note: ignored when using 'jks' format or `tls.existingSecret` is not empty
339
##
340
autoGenerated: false
341
## @param tls.customAltNames Optionally specify extra list of additional subject alternative names (SANs) for the automatically generated TLS certificates.
342
##
343
customAltNames: []
344
## @param tls.passwordsSecret Name of the secret containing the password to access the JKS files or PEM key when they are password-protected. (`key`: `password`)
345
##
346
passwordsSecret: ""
347
## @param tls.passwordsSecretKeystoreKey The secret key from the tls.passwordsSecret containing the password for the Keystore.
348
##
349
passwordsSecretKeystoreKey: keystore-password
350
## @param tls.passwordsSecretTruststoreKey The secret key from the tls.passwordsSecret containing the password for the Truststore.
351
##
352
passwordsSecretTruststoreKey: truststore-password
353
## @param tls.passwordsSecretPemPasswordKey The secret key from the tls.passwordsSecret containing the password for the PEM key inside 'tls.passwordsSecret'.
354
##
355
passwordsSecretPemPasswordKey: ""
356
## @param tls.keystorePassword Password to access the JKS keystore when it is password-protected. Ignored when 'tls.passwordsSecret' is provided.
357
## When using tls.type=PEM, the generated keystore will use this password or randomly generate one.
358
##
359
keystorePassword: ""
360
## @param tls.truststorePassword Password to access the JKS truststore when it is password-protected. Ignored when 'tls.passwordsSecret' is provided.
361
## When using tls.type=PEM, the generated keystore will use this password or randomly generate one.
362
##
363
truststorePassword: ""
364
## @param tls.keyPassword Password to access the PEM key when it is password-protected.
365
## Note: ignored when using 'tls.passwordsSecret'
366
##
367
keyPassword: ""
368
## @param tls.jksKeystoreKey The secret key from the `tls.existingSecret` containing the keystore
369
## Note: ignored when using 'pem' format for certificates.
370
##
371
jksKeystoreKey: ""
372
## @param tls.jksTruststoreSecret Name of the existing secret containing your truststore if truststore not existing or different from the one in the `tls.existingSecret`
373
## Note: ignored when using 'pem' format for certificates.
374
##
375
jksTruststoreSecret: ""
376
## @param tls.jksTruststoreKey The secret key from the `tls.existingSecret` or `tls.jksTruststoreSecret` containing the truststore
377
## Note: ignored when using 'pem' format for certificates.
378
##
379
jksTruststoreKey: ""
380
## @param tls.endpointIdentificationAlgorithm The endpoint identification algorithm to validate server hostname using server certificate
381
## Disable server host name verification by setting it to an empty string.
382
## ref: https://docs.confluent.io/current/kafka/authentication_ssl.html#optional-settings
383
##
384
endpointIdentificationAlgorithm: https
385
## @param tls.sslClientAuth Sets the default value for the ssl.client.auth Kafka setting.
386
## ref: https://docs.confluent.io/current/kafka/authentication_ssl.html#optional-settings
387
##
388
sslClientAuth: "required"
389
## Zookeeper TLS connection configuration for Kafka
390
##
391
zookeeper:
392
## @param tls.zookeeper.enabled Enable TLS for Zookeeper client connections.
393
##
394
enabled: false
395
## @param tls.zookeeper.verifyHostname Hostname validation.
396
##
397
verifyHostname: true
398
## @param tls.zookeeper.existingSecret Name of the existing secret containing the TLS certificates for ZooKeeper client communications.
399
##
400
existingSecret: ""
401
## @param tls.zookeeper.existingSecretKeystoreKey The secret key from the tls.zookeeper.existingSecret containing the Keystore.
402
##
403
existingSecretKeystoreKey: zookeeper.keystore.jks
404
## @param tls.zookeeper.existingSecretTruststoreKey The secret key from the tls.zookeeper.existingSecret containing the Truststore.
405
##
406
existingSecretTruststoreKey: zookeeper.truststore.jks
407
## @param tls.zookeeper.passwordsSecret Existing secret containing Keystore and Truststore passwords.
408
##
409
passwordsSecret: ""
410
## @param tls.zookeeper.passwordsSecretKeystoreKey The secret key from the tls.zookeeper.passwordsSecret containing the password for the Keystore.
411
## If no keystore password is included in the passwords secret, set this value to an empty string.
412
##
413
passwordsSecretKeystoreKey: keystore-password
414
## @param tls.zookeeper.passwordsSecretTruststoreKey The secret key from the tls.zookeeper.passwordsSecret containing the password for the Truststore.
415
## If no truststore password is included in the passwords secret, set this value to an empty string.
416
##
417
passwordsSecretTruststoreKey: truststore-password
418
## @param tls.zookeeper.keystorePassword Password to access the JKS keystore when it is password-protected. Ignored when 'tls.passwordsSecret' is provided.
419
## When using tls.type=PEM, the generated keystore will use this password or randomly generate one.
420
##
421
keystorePassword: ""
422
## @param tls.zookeeper.truststorePassword Password to access the JKS truststore when it is password-protected. Ignored when 'tls.passwordsSecret' is provided.
423
## When using tls.type=PEM, the generated keystore will use this password or randomly generate one.
424
##
425
truststorePassword: ""
426
## @param extraEnvVars Extra environment variables to add to Kafka pods
427
## e.g:
428
## extraEnvVars:
429
## - name: KAFKA_CFG_BACKGROUND_THREADS
430
## value: "10"
431
##
432
extraEnvVars: []
433
## @param extraEnvVarsCM ConfigMap with extra environment variables
434
##
435
extraEnvVarsCM: ""
436
## @param extraEnvVarsSecret Secret with extra environment variables
437
##
438
extraEnvVarsSecret: ""
439
## @param extraVolumes Optionally specify extra list of additional volumes for the Kafka pod(s)
440
## e.g:
441
## extraVolumes:
442
## - name: kafka-jaas
443
## secret:
444
## secretName: kafka-jaas
445
##
446
extraVolumes: []
447
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka container(s)
448
## extraVolumeMounts:
449
## - name: kafka-jaas
450
## mountPath: /iamguarded/kafka/config/kafka_jaas.conf
451
## subPath: kafka_jaas.conf
452
##
453
extraVolumeMounts: []
454
## @param sidecars Add additional sidecar containers to the Kafka pod(s)
455
## e.g:
456
## sidecars:
457
## - name: your-image-name
458
## image: your-image
459
## imagePullPolicy: Always
460
## ports:
461
## - name: portname
462
## containerPort: 1234
463
##
464
sidecars: []
465
## @param initContainers Add additional Add init containers to the Kafka pod(s)
466
## e.g:
467
## initContainers:
468
## - name: your-image-name
469
## image: your-image
470
## imagePullPolicy: Always
471
## ports:
472
## - name: portname
473
## containerPort: 1234
474
##
475
initContainers: []
476
## DNS-Pod services
477
## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
478
## @param dnsPolicy Specifies the DNS policy for the zookeeper pods
479
## DNS policies can be set on a per-Pod basis. Currently Kubernetes supports the following Pod-specific DNS policies.
480
## Available options: Default, ClusterFirst, ClusterFirstWithHostNet, None
481
## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
482
dnsPolicy: ""
483
## @param dnsConfig allows users more control on the DNS settings for a Pod. Required if `dnsPolicy` is set to `None`
484
## The dnsConfig field is optional and it can work with any dnsPolicy settings.
485
## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
486
## E.g.
487
## dnsConfig:
488
## nameservers:
489
## - 192.0.2.1 # this is an example
490
## searches:
491
## - ns1.svc.cluster-domain.example
492
## - my.dns.search.suffix
493
## options:
494
## - name: ndots
495
## value: "2"
496
## - name: edns0
497
dnsConfig: {}
498
## @section Controller-eligible statefulset parameters
499
##
500
controller:
501
## @param controller.replicaCount Number of Kafka controller-eligible nodes
502
## Ignore this section if running in Zookeeper mode.
503
##
504
replicaCount: 3
505
## @param controller.controllerOnly If set to true, controller nodes will be deployed as dedicated controllers, instead of controller+broker processes.
506
##
507
controllerOnly: false
508
## @param controller.minId Minimal node.id values for controller-eligible nodes. Do not change after first initialization.
509
## Broker-only id increment their ID starting at this minimal value.
510
## We recommend setting this this value high enough, as IDs under this value will be used by controller-elegible nodes
511
##
512
minId: 0
513
## @param controller.zookeeperMigrationMode Set to true to deploy cluster controller quorum
514
## This allows configuring both kraft and zookeeper modes simultaneously in order to perform the migration of the Kafka metadata.
515
## Ref. https://docs.confluent.io/platform/current/installation/migrate-zk-kraft.html
516
##
517
zookeeperMigrationMode: false
518
## @param controller.config Configuration file for Kafka controller-eligible nodes, rendered as a template. Auto-generated based on chart values when not specified.
519
## @param controller.existingConfigmap ConfigMap with Kafka Configuration for controller-eligible nodes.
520
## NOTE: This will override the configuration based on values, please act carefully
521
## If both are set, the existingConfigMap will be used.
522
##
523
config: ""
524
existingConfigmap: ""
525
## @param controller.extraConfig Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file.
526
##
527
extraConfig: ""
528
## @param controller.extraConfigYaml Additional configuration in yaml format to be appended at the end of the generated Kafka controller-eligible nodes configuration file.
529
## If keys of extraConfigYaml are duplicated here, the value from controller.extraConfigYaml is taken.
530
##
531
extraConfigYaml: {}
532
## @param controller.secretConfig Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file.
533
## This value will be stored in a secret.
534
##
535
secretConfig: ""
536
## @param controller.existingSecretConfig Secret with additonal configuration that will be appended to the end of the generated Kafka controller-eligible nodes configuration file
537
## The key for the configuration should be: server-secret.properties
538
## NOTE: This will override controller.secretConfig value
539
##
540
existingSecretConfig: ""
541
## @param controller.heapOpts Kafka Java Heap size for controller-eligible nodes
542
##
543
heapOpts: -Xmx1024m -Xms1024m
544
## @param controller.command Override Kafka container command
545
##
546
command: []
547
## @param controller.args Override Kafka container arguments
548
##
549
args: []
550
## @param controller.extraEnvVars Extra environment variables to add to Kafka pods
551
## e.g:
552
## extraEnvVars:
553
## - name: KAFKA_CFG_BACKGROUND_THREADS
554
## value: "10"
555
##
556
extraEnvVars: []
557
## @param controller.extraEnvVarsCM ConfigMap with extra environment variables
558
##
559
extraEnvVarsCM: ""
560
## @param controller.extraEnvVarsSecret Secret with extra environment variables
561
##
562
extraEnvVarsSecret: ""
563
## @param controller.extraContainerPorts Kafka controller-eligible extra containerPorts.
564
##
565
extraContainerPorts: []
566
## Configure extra options for Kafka containers' liveness, readiness and startup probes
567
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
568
## @param controller.livenessProbe.enabled Enable livenessProbe on Kafka containers
569
## @param controller.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
570
## @param controller.livenessProbe.periodSeconds Period seconds for livenessProbe
571
## @param controller.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
572
## @param controller.livenessProbe.failureThreshold Failure threshold for livenessProbe
573
## @param controller.livenessProbe.successThreshold Success threshold for livenessProbe
574
##
575
livenessProbe:
576
enabled: true
577
initialDelaySeconds: 10
578
timeoutSeconds: 5
579
failureThreshold: 3
580
periodSeconds: 10
581
successThreshold: 1
582
## @param controller.readinessProbe.enabled Enable readinessProbe on Kafka containers
583
## @param controller.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
584
## @param controller.readinessProbe.periodSeconds Period seconds for readinessProbe
585
## @param controller.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
586
## @param controller.readinessProbe.failureThreshold Failure threshold for readinessProbe
587
## @param controller.readinessProbe.successThreshold Success threshold for readinessProbe
588
##
589
readinessProbe:
590
enabled: true
591
initialDelaySeconds: 5
592
failureThreshold: 6
593
timeoutSeconds: 5
594
periodSeconds: 10
595
successThreshold: 1
596
## @param controller.startupProbe.enabled Enable startupProbe on Kafka containers
597
## @param controller.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
598
## @param controller.startupProbe.periodSeconds Period seconds for startupProbe
599
## @param controller.startupProbe.timeoutSeconds Timeout seconds for startupProbe
600
## @param controller.startupProbe.failureThreshold Failure threshold for startupProbe
601
## @param controller.startupProbe.successThreshold Success threshold for startupProbe
602
##
603
startupProbe:
604
enabled: false
605
initialDelaySeconds: 30
606
periodSeconds: 10
607
timeoutSeconds: 1
608
failureThreshold: 15
609
successThreshold: 1
610
## @param controller.customLivenessProbe Custom livenessProbe that overrides the default one
611
##
612
customLivenessProbe: {}
613
## @param controller.customReadinessProbe Custom readinessProbe that overrides the default one
614
##
615
customReadinessProbe: {}
616
## @param controller.customStartupProbe Custom startupProbe that overrides the default one
617
##
618
customStartupProbe: {}
619
## @param controller.lifecycleHooks lifecycleHooks for the Kafka container to automate configuration before or after startup
620
##
621
lifecycleHooks: {}
622
## Kafka init container resource requests and limits
623
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
624
## @param controller.initContainerResources.limits The resources limits for the init container
625
## @param controller.initContainerResources.requests The requested resources for the init container
626
##
627
initContainerResources:
628
limits: {}
629
requests: {}
630
## Kafka resource requests and limits
631
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
632
## @param controller.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if controller.resources is set (controller.resources is recommended for production).
633
##
634
resourcesPreset: "small"
635
## @param controller.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
636
## Example:
637
## resources:
638
## requests:
639
## cpu: 2
640
## memory: 512Mi
641
## limits:
642
## cpu: 3
643
## memory: 1024Mi
644
##
645
resources: {}
646
## Kafka pods' Security Context
647
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
648
## @param controller.podSecurityContext.enabled Enable security context for the pods
649
## @param controller.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
650
## @param controller.podSecurityContext.sysctls Set kernel settings using the sysctl interface
651
## @param controller.podSecurityContext.supplementalGroups Set filesystem extra groups
652
## @param controller.podSecurityContext.fsGroup Set Kafka pod's Security Context fsGroup
653
## @param controller.podSecurityContext.seccompProfile.type Set Kafka pods's Security Context seccomp profile
654
##
655
podSecurityContext:
656
enabled: true
657
fsGroupChangePolicy: Always
658
sysctls: []
659
supplementalGroups: []
660
fsGroup: 1001
661
seccompProfile:
662
type: "RuntimeDefault"
663
## Kafka containers' Security Context
664
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
665
## @param controller.containerSecurityContext.enabled Enable Kafka containers' Security Context
666
## @param controller.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
667
## @param controller.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
668
## @param controller.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
669
## @param controller.containerSecurityContext.runAsGroup Set Kafka containers' Security Context runAsGroup
670
## @param controller.containerSecurityContext.runAsNonRoot Set Kafka containers' Security Context runAsNonRoot
671
## @param controller.containerSecurityContext.allowPrivilegeEscalation Force the child process to be run as non-privileged
672
## @param controller.containerSecurityContext.readOnlyRootFilesystem Allows the pod to mount the RootFS as ReadOnly only
673
## @param controller.containerSecurityContext.capabilities.drop Set Kafka containers' server Security Context capabilities to be dropped
674
## e.g:
675
## containerSecurityContext:
676
## enabled: true
677
## capabilities:
678
## drop: ["NET_RAW"]
679
## readOnlyRootFilesystem: true
680
##
681
containerSecurityContext:
682
enabled: true
683
seLinuxOptions: {}
684
runAsUser: 1001
685
runAsGroup: 1001
686
runAsNonRoot: true
687
allowPrivilegeEscalation: false
688
readOnlyRootFilesystem: true
689
capabilities:
690
drop: ["ALL"]
691
## @param controller.automountServiceAccountToken Mount Service Account token in pod
692
##
693
automountServiceAccountToken: false
694
## @param controller.hostAliases Kafka pods host aliases
695
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
696
##
697
hostAliases: []
698
## @param controller.hostNetwork Specify if host network should be enabled for Kafka pods
699
##
700
hostNetwork: false
701
## @param controller.hostIPC Specify if host IPC should be enabled for Kafka pods
702
##
703
hostIPC: false
704
## @param controller.podLabels Extra labels for Kafka pods
705
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
706
##
707
podLabels: {}
708
## @param controller.podAnnotations Extra annotations for Kafka pods
709
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
710
##
711
podAnnotations: {}
712
## @param controller.podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
713
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
714
##
715
podAffinityPreset: ""
716
## @param controller.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
717
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
718
##
719
podAntiAffinityPreset: soft
720
## Node affinity preset
721
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
722
##
723
nodeAffinityPreset:
724
## @param controller.nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
725
##
726
type: ""
727
## @param controller.nodeAffinityPreset.key Node label key to match Ignored if `affinity` is set.
728
## E.g.
729
## key: "kubernetes.io/e2e-az-name"
730
##
731
key: ""
732
## @param controller.nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
733
## E.g.
734
## values:
735
## - e2e-az1
736
## - e2e-az2
737
##
738
values: []
739
## @param controller.affinity Affinity for pod assignment
740
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
741
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
742
##
743
affinity: {}
744
## @param controller.nodeSelector Node labels for pod assignment
745
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
746
##
747
nodeSelector: {}
748
## @param controller.tolerations Tolerations for pod assignment
749
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
750
##
751
tolerations: []
752
## @param controller.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
753
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
754
##
755
topologySpreadConstraints: []
756
## @param controller.terminationGracePeriodSeconds Seconds the pod needs to gracefully terminate
757
## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution
758
##
759
terminationGracePeriodSeconds: ""
760
## @param controller.podManagementPolicy StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel
761
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
762
##
763
podManagementPolicy: Parallel
764
## @param controller.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
765
##
766
minReadySeconds: 0
767
## @param controller.priorityClassName Name of the existing priority class to be used by kafka pods
768
## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
769
##
770
priorityClassName: ""
771
## @param controller.runtimeClassName Name of the runtime class to be used by pod(s)
772
## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
773
##
774
runtimeClassName: ""
775
## @param controller.enableServiceLinks Whether information about services should be injected into pod's environment variable
776
## The environment variables injected by service links are not used, but can lead to slow kafka boot times or slow running of the scripts when there are many services in the current namespace.
777
## If you experience slow pod startups or slow running of the scripts you probably want to set this to `false`.
778
##
779
enableServiceLinks: true
780
## @param controller.schedulerName Name of the k8s scheduler (other than default)
781
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
782
##
783
schedulerName: ""
784
## @param controller.updateStrategy.type Kafka statefulset strategy type
785
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
786
##
787
updateStrategy:
788
type: RollingUpdate
789
## @param controller.extraVolumes Optionally specify extra list of additional volumes for the Kafka pod(s)
790
## e.g:
791
## extraVolumes:
792
## - name: kafka-jaas
793
## secret:
794
## secretName: kafka-jaas
795
##
796
extraVolumes: []
797
## @param controller.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka container(s)
798
## extraVolumeMounts:
799
## - name: kafka-jaas
800
## mountPath: /iamguarded/kafka/config/kafka_jaas.conf
801
## subPath: kafka_jaas.conf
802
##
803
extraVolumeMounts: []
804
## @param controller.sidecars Add additional sidecar containers to the Kafka pod(s)
805
## e.g:
806
## sidecars:
807
## - name: your-image-name
808
## image: your-image
809
## imagePullPolicy: Always
810
## ports:
811
## - name: portname
812
## containerPort: 1234
813
##
814
sidecars: []
815
## @param controller.initContainers Add additional Add init containers to the Kafka pod(s)
816
## e.g:
817
## initContainers:
818
## - name: your-image-name
819
## image: your-image
820
## imagePullPolicy: Always
821
## ports:
822
## - name: portname
823
## containerPort: 1234
824
##
825
initContainers: []
826
## @section Experimental: Kafka Controller Autoscaling configuration
827
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
828
##
829
autoscaling:
830
vpa:
831
## @param controller.autoscaling.vpa.enabled Enable VPA
832
##
833
enabled: false
834
## @param controller.autoscaling.vpa.annotations Annotations for VPA resource
835
##
836
annotations: {}
837
## @param controller.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
838
##
839
controlledResources: []
840
## @param controller.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
841
## cpu: 200m
842
## memory: 100Mi
843
maxAllowed: {}
844
## @param controller.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
845
## cpu: 200m
846
## memory: 100Mi
847
minAllowed: {}
848
updatePolicy:
849
## @param controller.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
850
## Possible values are "Off", "Initial", "Recreate", and "Auto".
851
##
852
updateMode: Auto
853
hpa:
854
## @param controller.autoscaling.hpa.enabled Enable HPA for Kafka Controller
855
##
856
enabled: false
857
## @param controller.autoscaling.hpa.minReplicas Minimum number of Kafka Controller replicas
858
##
859
minReplicas: ""
860
## @param controller.autoscaling.hpa.maxReplicas Maximum number of Kafka Controller replicas
861
##
862
maxReplicas: ""
863
## @param controller.autoscaling.hpa.targetCPU Target CPU utilization percentage
864
##
865
targetCPU: ""
866
## @param controller.autoscaling.hpa.targetMemory Target Memory utilization percentage
867
##
868
targetMemory: ""
869
## Kafka Pod Disruption Budget
870
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
871
## @param controller.pdb.create Deploy a pdb object for the Kafka pod
872
## @param controller.pdb.minAvailable Minimum number/percentage of available Kafka replicas
873
## @param controller.pdb.maxUnavailable Maximum number/percentage of unavailable Kafka replicas
874
##
875
pdb:
876
create: true
877
minAvailable: ""
878
maxUnavailable: ""
879
## Enable persistence using Persistent Volume Claims
880
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
881
##
882
persistence:
883
## @param controller.persistence.enabled Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected
884
##
885
enabled: true
886
## @param controller.persistence.existingClaim A manually managed Persistent Volume and Claim
887
## If defined, PVC must be created manually before volume will be bound
888
## The value is evaluated as a template
889
##
890
existingClaim: ""
891
## @param controller.persistence.storageClass PVC Storage Class for Kafka data volume
892
## If defined, storageClassName: <storageClass>
893
## If set to "-", storageClassName: "", which disables dynamic provisioning
894
## If undefined (the default) or set to null, no storageClassName spec is
895
## set, choosing the default provisioner.
896
##
897
storageClass: ""
898
## @param controller.persistence.accessModes Persistent Volume Access Modes
899
##
900
accessModes:
901
- ReadWriteOnce
902
## @param controller.persistence.size PVC Storage Request for Kafka data volume
903
##
904
size: 8Gi
905
## @param controller.persistence.annotations Annotations for the PVC
906
##
907
annotations: {}
908
## @param controller.persistence.labels Labels for the PVC
909
##
910
labels: {}
911
## @param controller.persistence.selector Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it
912
## selector:
913
## matchLabels:
914
## app: my-app
915
##
916
selector: {}
917
## @param controller.persistence.mountPath Mount path of the Kafka data volume
918
##
919
mountPath: /iamguarded/kafka
920
## Log Persistence parameters
921
##
922
logPersistence:
923
## @param controller.logPersistence.enabled Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected
924
##
925
enabled: false
926
## @param controller.logPersistence.existingClaim A manually managed Persistent Volume and Claim
927
## If defined, PVC must be created manually before volume will be bound
928
## The value is evaluated as a template
929
##
930
existingClaim: ""
931
## @param controller.logPersistence.storageClass PVC Storage Class for Kafka logs volume
932
## If defined, storageClassName: <storageClass>
933
## If set to "-", storageClassName: "", which disables dynamic provisioning
934
## If undefined (the default) or set to null, no storageClassName spec is
935
## set, choosing the default provisioner.
936
##
937
storageClass: ""
938
## @param controller.logPersistence.accessModes Persistent Volume Access Modes
939
##
940
accessModes:
941
- ReadWriteOnce
942
## @param controller.logPersistence.size PVC Storage Request for Kafka logs volume
943
##
944
size: 8Gi
945
## @param controller.logPersistence.annotations Annotations for the PVC
946
##
947
annotations: {}
948
## @param controller.logPersistence.selector Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it
949
## selector:
950
## matchLabels:
951
## app: my-app
952
##
953
selector: {}
954
## @param controller.logPersistence.mountPath Mount path of the Kafka logs volume
955
##
956
mountPath: /opt/iamguarded/kafka/logs
957
## @section Broker-only statefulset parameters
958
##
959
broker:
960
## @param broker.replicaCount Number of Kafka broker-only nodes
961
##
962
replicaCount: 0
963
## @param broker.minId Minimal node.id values for broker-only nodes. Do not change after first initialization.
964
## Broker-only id increment their ID starting at this minimal value.
965
## We recommend setting this this value high enough, as IDs under this value will be used by controller-eligible nodes
966
##
967
##
968
minId: 100
969
## @param broker.zookeeperMigrationMode Set to true to deploy cluster controller quorum
970
## This allows configuring both kraft and zookeeper modes simultaneously in order to perform the migration of the Kafka metadata.
971
## Ref. https://docs.confluent.io/platform/current/installation/migrate-zk-kraft.html
972
##
973
zookeeperMigrationMode: false
974
## @param broker.config Configuration file for Kafka broker-only nodes, rendered as a template. Auto-generated based on chart values when not specified.
975
## @param broker.existingConfigmap ConfigMap with Kafka Configuration for broker-only nodes.
976
## NOTE: This will override the configuration based on values, please act carefully
977
## If both are set, the existingConfigMap will be used.
978
##
979
config: ""
980
existingConfigmap: ""
981
## @param broker.extraConfig Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file.
982
##
983
extraConfig: ""
984
## @param broker.extraConfigYaml Additional configuration in yaml format to be appended at the end of the generated Kafka broker-only nodes configuration file.
985
## If keys of extraConfigYaml are duplicated here, the value from broker.extraConfigYaml is taken.
986
##
987
extraConfigYaml: {}
988
## @param broker.secretConfig Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file.
989
## This value will be stored in a secret.
990
##
991
secretConfig: ""
992
## @param broker.existingSecretConfig Secret with additonal configuration that will be appended to the end of the generated Kafka broker-only nodes configuration file
993
## The key for the configuration should be: server-secret.properties
994
## NOTE: This will override broker.secretConfig value
995
##
996
existingSecretConfig: ""
997
## @param broker.heapOpts Kafka Java Heap size for broker-only nodes
998
##
999
heapOpts: -Xmx1024m -Xms1024m
1000
## @param broker.command Override Kafka container command
1001
##
1002
command: []
1003
## @param broker.args Override Kafka container arguments
1004
##
1005
args: []
1006
## @param broker.extraEnvVars Extra environment variables to add to Kafka pods
1007
## e.g:
1008
## extraEnvVars:
1009
## - name: KAFKA_CFG_BACKGROUND_THREADS
1010
## value: "10"
1011
##
1012
extraEnvVars: []
1013
## @param broker.extraEnvVarsCM ConfigMap with extra environment variables
1014
##
1015
extraEnvVarsCM: ""
1016
## @param broker.extraEnvVarsSecret Secret with extra environment variables
1017
##
1018
extraEnvVarsSecret: ""
1019
## @param broker.extraContainerPorts Kafka broker-only extra containerPorts.
1020
##
1021
extraContainerPorts: []
1022
## Configure extra options for Kafka containers' liveness, readiness and startup probes
1023
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1024
## @param broker.livenessProbe.enabled Enable livenessProbe on Kafka containers
1025
## @param broker.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1026
## @param broker.livenessProbe.periodSeconds Period seconds for livenessProbe
1027
## @param broker.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1028
## @param broker.livenessProbe.failureThreshold Failure threshold for livenessProbe
1029
## @param broker.livenessProbe.successThreshold Success threshold for livenessProbe
1030
##
1031
livenessProbe:
1032
enabled: true
1033
initialDelaySeconds: 10
1034
timeoutSeconds: 5
1035
failureThreshold: 3
1036
periodSeconds: 10
1037
successThreshold: 1
1038
## @param broker.readinessProbe.enabled Enable readinessProbe on Kafka containers
1039
## @param broker.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1040
## @param broker.readinessProbe.periodSeconds Period seconds for readinessProbe
1041
## @param broker.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1042
## @param broker.readinessProbe.failureThreshold Failure threshold for readinessProbe
1043
## @param broker.readinessProbe.successThreshold Success threshold for readinessProbe
1044
##
1045
readinessProbe:
1046
enabled: true
1047
initialDelaySeconds: 5
1048
failureThreshold: 6
1049
timeoutSeconds: 5
1050
periodSeconds: 10
1051
successThreshold: 1
1052
## @param broker.startupProbe.enabled Enable startupProbe on Kafka containers
1053
## @param broker.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1054
## @param broker.startupProbe.periodSeconds Period seconds for startupProbe
1055
## @param broker.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1056
## @param broker.startupProbe.failureThreshold Failure threshold for startupProbe
1057
## @param broker.startupProbe.successThreshold Success threshold for startupProbe
1058
##
1059
startupProbe:
1060
enabled: false
1061
initialDelaySeconds: 30
1062
periodSeconds: 10
1063
timeoutSeconds: 1
1064
failureThreshold: 15
1065
successThreshold: 1
1066
## @param broker.customLivenessProbe Custom livenessProbe that overrides the default one
1067
##
1068
customLivenessProbe: {}
1069
## @param broker.customReadinessProbe Custom readinessProbe that overrides the default one
1070
##
1071
customReadinessProbe: {}
1072
## @param broker.customStartupProbe Custom startupProbe that overrides the default one
1073
##
1074
customStartupProbe: {}
1075
## @param broker.lifecycleHooks lifecycleHooks for the Kafka container to automate configuration before or after startup
1076
##
1077
lifecycleHooks: {}
1078
## Kafka init container resource requests and limits
1079
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
1080
## @param broker.initContainerResources.limits The resources limits for the container
1081
## @param broker.initContainerResources.requests The requested resources for the container
1082
##
1083
initContainerResources:
1084
limits: {}
1085
requests: {}
1086
## Kafka resource requests and limits
1087
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1088
## @param broker.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if broker.resources is set (broker.resources is recommended for production).
1089
##
1090
resourcesPreset: "small"
1091
## @param broker.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1092
## Example:
1093
## resources:
1094
## requests:
1095
## cpu: 2
1096
## memory: 512Mi
1097
## limits:
1098
## cpu: 3
1099
## memory: 1024Mi
1100
##
1101
resources: {}
1102
## Kafka pods' Security Context
1103
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1104
## @param broker.podSecurityContext.enabled Enable security context for the pods
1105
## @param broker.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1106
## @param broker.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1107
## @param broker.podSecurityContext.supplementalGroups Set filesystem extra groups
1108
## @param broker.podSecurityContext.fsGroup Set Kafka pod's Security Context fsGroup
1109
## @param broker.podSecurityContext.seccompProfile.type Set Kafka pod's Security Context seccomp profile
1110
##
1111
podSecurityContext:
1112
enabled: true
1113
fsGroupChangePolicy: Always
1114
sysctls: []
1115
supplementalGroups: []
1116
fsGroup: 1001
1117
seccompProfile:
1118
type: "RuntimeDefault"
1119
## Kafka containers' Security Context
1120
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1121
## @param broker.containerSecurityContext.enabled Enable Kafka containers' Security Context
1122
## @param broker.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1123
## @param broker.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1124
## @param broker.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1125
## @param broker.containerSecurityContext.runAsNonRoot Set Kafka containers' Security Context runAsNonRoot
1126
## @param broker.containerSecurityContext.allowPrivilegeEscalation Force the child process to be run as non-privileged
1127
## @param broker.containerSecurityContext.readOnlyRootFilesystem Allows the pod to mount the RootFS as ReadOnly only
1128
## @param broker.containerSecurityContext.capabilities.drop Set Kafka containers' server Security Context capabilities to be dropped
1129
## e.g:
1130
## containerSecurityContext:
1131
## enabled: true
1132
## capabilities:
1133
## drop: ["NET_RAW"]
1134
## readOnlyRootFilesystem: true
1135
##
1136
containerSecurityContext:
1137
enabled: true
1138
seLinuxOptions: {}
1139
runAsUser: 1001
1140
runAsGroup: 1001
1141
runAsNonRoot: true
1142
allowPrivilegeEscalation: false
1143
readOnlyRootFilesystem: true
1144
capabilities:
1145
drop: ["ALL"]
1146
## @param broker.automountServiceAccountToken Mount Service Account token in pod
1147
##
1148
automountServiceAccountToken: false
1149
## @param broker.hostAliases Kafka pods host aliases
1150
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1151
##
1152
hostAliases: []
1153
## @param broker.hostNetwork Specify if host network should be enabled for Kafka pods
1154
##
1155
hostNetwork: false
1156
## @param broker.hostIPC Specify if host IPC should be enabled for Kafka pods
1157
##
1158
hostIPC: false
1159
## @param broker.podLabels Extra labels for Kafka pods
1160
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1161
##
1162
podLabels: {}
1163
## @param broker.podAnnotations Extra annotations for Kafka pods
1164
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1165
##
1166
podAnnotations: {}
1167
## @param broker.podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1168
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1169
##
1170
podAffinityPreset: ""
1171
## @param broker.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1172
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1173
##
1174
podAntiAffinityPreset: soft
1175
## Node affinity preset
1176
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1177
##
1178
nodeAffinityPreset:
1179
## @param broker.nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1180
##
1181
type: ""
1182
## @param broker.nodeAffinityPreset.key Node label key to match Ignored if `affinity` is set.
1183
## E.g.
1184
## key: "kubernetes.io/e2e-az-name"
1185
##
1186
key: ""
1187
## @param broker.nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
1188
## E.g.
1189
## values:
1190
## - e2e-az1
1191
## - e2e-az2
1192
##
1193
values: []
1194
## @param broker.affinity Affinity for pod assignment
1195
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1196
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
1197
##
1198
affinity: {}
1199
## @param broker.nodeSelector Node labels for pod assignment
1200
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1201
##
1202
nodeSelector: {}
1203
## @param broker.tolerations Tolerations for pod assignment
1204
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1205
##
1206
tolerations: []
1207
## @param broker.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1208
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1209
##
1210
topologySpreadConstraints: []
1211
## @param broker.terminationGracePeriodSeconds Seconds the pod needs to gracefully terminate
1212
## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution
1213
##
1214
terminationGracePeriodSeconds: ""
1215
## @param broker.podManagementPolicy StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel
1216
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
1217
##
1218
podManagementPolicy: Parallel
1219
## @param broker.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
1220
##
1221
minReadySeconds: 0
1222
## @param broker.priorityClassName Name of the existing priority class to be used by kafka pods
1223
## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
1224
##
1225
priorityClassName: ""
1226
## @param broker.runtimeClassName Name of the runtime class to be used by pod(s)
1227
## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
1228
##
1229
runtimeClassName: ""
1230
## @param broker.enableServiceLinks Whether information about services should be injected into pod's environment variable
1231
## The environment variables injected by service links are not used, but can lead to slow kafka boot times or slow running of the scripts when there are many services in the current namespace.
1232
## If you experience slow pod startups or slow running of the scripts you probably want to set this to `false`.
1233
##
1234
enableServiceLinks: true
1235
## @param broker.schedulerName Name of the k8s scheduler (other than default)
1236
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1237
##
1238
schedulerName: ""
1239
## @param broker.updateStrategy.type Kafka statefulset strategy type
1240
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1241
##
1242
updateStrategy:
1243
type: RollingUpdate
1244
## @param broker.extraVolumes Optionally specify extra list of additional volumes for the Kafka pod(s)
1245
## e.g:
1246
## extraVolumes:
1247
## - name: kafka-jaas
1248
## secret:
1249
## secretName: kafka-jaas
1250
##
1251
extraVolumes: []
1252
## @param broker.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka container(s)
1253
## extraVolumeMounts:
1254
## - name: kafka-jaas
1255
## mountPath: /iamguarded/kafka/config/kafka_jaas.conf
1256
## subPath: kafka_jaas.conf
1257
##
1258
extraVolumeMounts: []
1259
## @param broker.sidecars Add additional sidecar containers to the Kafka pod(s)
1260
## e.g:
1261
## sidecars:
1262
## - name: your-image-name
1263
## image: your-image
1264
## imagePullPolicy: Always
1265
## ports:
1266
## - name: portname
1267
## containerPort: 1234
1268
##
1269
sidecars: []
1270
## @param broker.initContainers Add additional Add init containers to the Kafka pod(s)
1271
## e.g:
1272
## initContainers:
1273
## - name: your-image-name
1274
## image: your-image
1275
## imagePullPolicy: Always
1276
## ports:
1277
## - name: portname
1278
## containerPort: 1234
1279
##
1280
initContainers: []
1281
## Kafka Pod Disruption Budget
1282
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1283
## @param broker.pdb.create Deploy a pdb object for the Kafka pod
1284
## @param broker.pdb.minAvailable Maximum number/percentage of unavailable Kafka replicas
1285
## @param broker.pdb.maxUnavailable Maximum number/percentage of unavailable Kafka replicas
1286
##
1287
pdb:
1288
create: true
1289
minAvailable: ""
1290
maxUnavailable: ""
1291
## @section Experimental: Kafka Broker Autoscaling configuration
1292
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1293
##
1294
autoscaling:
1295
vpa:
1296
## @param broker.autoscaling.vpa.enabled Enable VPA
1297
##
1298
enabled: false
1299
## @param broker.autoscaling.vpa.annotations Annotations for VPA resource
1300
##
1301
annotations: {}
1302
## @param broker.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
1303
##
1304
controlledResources: []
1305
## @param broker.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
1306
## cpu: 200m
1307
## memory: 100Mi
1308
maxAllowed: {}
1309
## @param broker.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
1310
## cpu: 200m
1311
## memory: 100Mi
1312
minAllowed: {}
1313
updatePolicy:
1314
## @param broker.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1315
## Possible values are "Off", "Initial", "Recreate", and "Auto".
1316
##
1317
updateMode: Auto
1318
hpa:
1319
## @param broker.autoscaling.hpa.enabled Enable HPA for Kafka Broker
1320
##
1321
enabled: false
1322
## @param broker.autoscaling.hpa.minReplicas Minimum number of Kafka Broker replicas
1323
##
1324
minReplicas: ""
1325
## @param broker.autoscaling.hpa.maxReplicas Maximum number of Kafka Broker replicas
1326
##
1327
maxReplicas: ""
1328
## @param broker.autoscaling.hpa.targetCPU Target CPU utilization percentage
1329
##
1330
targetCPU: ""
1331
## @param broker.autoscaling.hpa.targetMemory Target Memory utilization percentage
1332
##
1333
targetMemory: ""
1334
## Enable persistence using Persistent Volume Claims
1335
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1336
##
1337
persistence:
1338
## @param broker.persistence.enabled Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected
1339
##
1340
enabled: true
1341
## @param broker.persistence.existingClaim A manually managed Persistent Volume and Claim
1342
## If defined, PVC must be created manually before volume will be bound
1343
## The value is evaluated as a template
1344
##
1345
existingClaim: ""
1346
## @param broker.persistence.storageClass PVC Storage Class for Kafka data volume
1347
## If defined, storageClassName: <storageClass>
1348
## If set to "-", storageClassName: "", which disables dynamic provisioning
1349
## If undefined (the default) or set to null, no storageClassName spec is
1350
## set, choosing the default provisioner.
1351
##
1352
storageClass: ""
1353
## @param broker.persistence.accessModes Persistent Volume Access Modes
1354
##
1355
accessModes:
1356
- ReadWriteOnce
1357
## @param broker.persistence.size PVC Storage Request for Kafka data volume
1358
##
1359
size: 8Gi
1360
## @param broker.persistence.annotations Annotations for the PVC
1361
##
1362
annotations: {}
1363
## @param broker.persistence.labels Labels for the PVC
1364
##
1365
labels: {}
1366
## @param broker.persistence.selector Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it
1367
## selector:
1368
## matchLabels:
1369
## app: my-app
1370
##
1371
selector: {}
1372
## @param broker.persistence.mountPath Mount path of the Kafka data volume
1373
##
1374
mountPath: /iamguarded/kafka
1375
## Log Persistence parameters
1376
##
1377
logPersistence:
1378
## @param broker.logPersistence.enabled Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected
1379
##
1380
enabled: false
1381
## @param broker.logPersistence.existingClaim A manually managed Persistent Volume and Claim
1382
## If defined, PVC must be created manually before volume will be bound
1383
## The value is evaluated as a template
1384
##
1385
existingClaim: ""
1386
## @param broker.logPersistence.storageClass PVC Storage Class for Kafka logs volume
1387
## If defined, storageClassName: <storageClass>
1388
## If set to "-", storageClassName: "", which disables dynamic provisioning
1389
## If undefined (the default) or set to null, no storageClassName spec is
1390
## set, choosing the default provisioner.
1391
##
1392
storageClass: ""
1393
## @param broker.logPersistence.accessModes Persistent Volume Access Modes
1394
##
1395
accessModes:
1396
- ReadWriteOnce
1397
## @param broker.logPersistence.size PVC Storage Request for Kafka logs volume
1398
##
1399
size: 8Gi
1400
## @param broker.logPersistence.annotations Annotations for the PVC
1401
##
1402
annotations: {}
1403
## @param broker.logPersistence.selector Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it
1404
## selector:
1405
## matchLabels:
1406
## app: my-app
1407
##
1408
selector: {}
1409
## @param broker.logPersistence.mountPath Mount path of the Kafka logs volume
1410
##
1411
mountPath: /opt/iamguarded/kafka/logs
1412
## @section Traffic Exposure parameters
1413
##
1414
1415
## Service parameters
1416
##
1417
service:
1418
## @param service.type Kubernetes Service type
1419
##
1420
type: ClusterIP
1421
## @param service.ports.client Kafka svc port for client connections
1422
## @param service.ports.controller Kafka svc port for controller connections. It is used if "kraft.enabled: true"
1423
## @param service.ports.interbroker Kafka svc port for inter-broker connections
1424
## @param service.ports.external Kafka svc port for external connections
1425
##
1426
ports:
1427
client: 9092
1428
controller: 9093
1429
interbroker: 9094
1430
external: 9095
1431
## @param service.extraPorts Extra ports to expose in the Kafka service (normally used with the `sidecar` value)
1432
##
1433
extraPorts: []
1434
## @param service.nodePorts.client Node port for the Kafka client connections
1435
## @param service.nodePorts.external Node port for the Kafka external connections
1436
## NOTE: choose port between <30000-32767>
1437
##
1438
nodePorts:
1439
client: ""
1440
external: ""
1441
## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
1442
## Values: ClientIP or None
1443
## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1444
##
1445
sessionAffinity: None
1446
## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
1447
## sessionAffinityConfig:
1448
## clientIP:
1449
## timeoutSeconds: 300
1450
##
1451
sessionAffinityConfig: {}
1452
## @param service.clusterIP Kafka service Cluster IP
1453
## e.g.:
1454
## clusterIP: None
1455
##
1456
clusterIP: ""
1457
## @param service.loadBalancerIP Kafka service Load Balancer IP
1458
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
1459
##
1460
loadBalancerIP: ""
1461
## @param service.loadBalancerClass Kafka service Load Balancer Class
1462
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
1463
##
1464
loadBalancerClass: ""
1465
## @param service.loadBalancerSourceRanges Kafka service Load Balancer sources
1466
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1467
## e.g:
1468
## loadBalancerSourceRanges:
1469
## - 10.10.10.0/24
1470
##
1471
loadBalancerSourceRanges: []
1472
## @param service.allocateLoadBalancerNodePorts Whether to allocate node ports when service type is LoadBalancer
1473
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
1474
##
1475
allocateLoadBalancerNodePorts: true
1476
## @param service.externalTrafficPolicy Kafka service external traffic policy
1477
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1478
##
1479
externalTrafficPolicy: Cluster
1480
## @param service.annotations Additional custom annotations for Kafka service
1481
##
1482
annotations: {}
1483
## Headless service properties
1484
##
1485
headless:
1486
controller:
1487
## @param service.headless.controller.annotations Annotations for the controller-eligible headless service.
1488
##
1489
annotations: {}
1490
## @param service.headless.controller.labels Labels for the controller-eligible headless service.
1491
##
1492
labels: {}
1493
broker:
1494
## @param service.headless.broker.annotations Annotations for the broker-only headless service.
1495
##
1496
annotations: {}
1497
## @param service.headless.broker.labels Labels for the broker-only headless service.
1498
##
1499
labels: {}
1500
## @param service.headless.ipFamilies IP families for the headless service
1501
##
1502
ipFamilies: []
1503
## @param service.headless.ipFamilyPolicy IP family policy for the headless service
1504
##
1505
ipFamilyPolicy: ""
1506
## External Access to Kafka brokers configuration
1507
##
1508
externalAccess:
1509
## @param externalAccess.enabled Enable Kubernetes external cluster access to Kafka brokers
1510
##
1511
enabled: false
1512
## External IPs auto-discovery configuration
1513
## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
1514
## Note: RBAC might be required
1515
##
1516
autoDiscovery:
1517
## @param externalAccess.autoDiscovery.enabled Enable using an init container to auto-detect external IPs/ports by querying the K8s API
1518
##
1519
enabled: false
1520
## Iamguarded Kubectl image
1521
## @param externalAccess.autoDiscovery.image.registry [default: REGISTRY_NAME] Init container auto-discovery image registry
1522
## @param externalAccess.autoDiscovery.image.repository [default: REPOSITORY_NAME/kubectl] Init container auto-discovery image repository
1523
## @skip externalAccess.autoDiscovery.image.tag Init container auto-discovery image tag (immutable tags are recommended)
1524
## @param externalAccess.autoDiscovery.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1525
## @param externalAccess.autoDiscovery.image.pullPolicy Init container auto-discovery image pull policy
1526
## @param externalAccess.autoDiscovery.image.pullSecrets Init container auto-discovery image pull secrets
1527
##
1528
image:
1529
registry: chainreg.biz
1530
repository: chainguard-private/kubectl-iamguarded
1531
tag: 1.37.1
1532
digest: sha256:501b099207159a2b3fa01517e8c583a7e2f518ca7ec872e025f79feb3cd4ed0b
1533
## Specify a imagePullPolicy
1534
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1535
##
1536
pullPolicy: IfNotPresent
1537
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
1538
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1539
## e.g:
1540
## pullSecrets:
1541
## - myRegistryKeySecretName
1542
##
1543
pullSecrets: []
1544
## Init Container resource requests and limits
1545
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1546
## @param externalAccess.autoDiscovery.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if externalAccess.autoDiscovery.resources is set (externalAccess.autoDiscovery.resources is recommended for production).
1547
##
1548
resourcesPreset: "nano"
1549
## @param externalAccess.autoDiscovery.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1550
## Example:
1551
## resources:
1552
## requests:
1553
## cpu: 2
1554
## memory: 512Mi
1555
## limits:
1556
## cpu: 3
1557
## memory: 1024Mi
1558
##
1559
resources: {}
1560
## Kafka provisioning containers' Security Context
1561
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1562
## @param externalAccess.autoDiscovery.containerSecurityContext.enabled Enable Kafka auto-discovery containers' Security Context
1563
## @param externalAccess.autoDiscovery.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1564
## @param externalAccess.autoDiscovery.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1565
## @param externalAccess.autoDiscovery.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1566
## @param externalAccess.autoDiscovery.containerSecurityContext.runAsNonRoot Set Kafka auto-discovery containers' Security Context runAsNonRoot
1567
## @param externalAccess.autoDiscovery.containerSecurityContext.allowPrivilegeEscalation Set Kafka auto-discovery containers' Security Context allowPrivilegeEscalation
1568
## @param externalAccess.autoDiscovery.containerSecurityContext.readOnlyRootFilesystem Set Kafka auto-discovery containers' Security Context readOnlyRootFilesystem
1569
## @param externalAccess.autoDiscovery.containerSecurityContext.capabilities.drop Set Kafka auto-discovery containers' Security Context capabilities to be dropped
1570
## @param externalAccess.autoDiscovery.containerSecurityContext.seccompProfile.type Set Kafka auto-discovery seccomp profile type
1571
## e.g:
1572
## containerSecurityContext:
1573
## enabled: true
1574
## capabilities:
1575
## drop: ["NET_RAW"]
1576
## readOnlyRootFilesystem: true
1577
##
1578
containerSecurityContext:
1579
enabled: true
1580
seLinuxOptions: {}
1581
runAsUser: 1001
1582
runAsGroup: 1001
1583
runAsNonRoot: true
1584
allowPrivilegeEscalation: false
1585
readOnlyRootFilesystem: true
1586
capabilities:
1587
drop: ["ALL"]
1588
seccompProfile:
1589
type: "RuntimeDefault"
1590
## Service settings
1591
controller:
1592
## @param externalAccess.controller.forceExpose If set to true, force exposing controller-eligible nodes although they are configured as controller-only nodes
1593
##
1594
forceExpose: false
1595
## Parameters to configure K8s service(s) used to externally access Kafka brokers
1596
## Note: A new service per broker will be created
1597
##
1598
service:
1599
## @param externalAccess.controller.service.type Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP
1600
##
1601
type: LoadBalancer
1602
## @param externalAccess.controller.service.ports.external Kafka port used for external access when service type is LoadBalancer
1603
##
1604
ports:
1605
external: 9094
1606
## @param externalAccess.controller.service.loadBalancerClass Kubernetes Service Load Balancer class for external access when service type is LoadBalancer
1607
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
1608
##
1609
loadBalancerClass: ""
1610
## @param externalAccess.controller.service.loadBalancerIPs Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount
1611
## e.g:
1612
## loadBalancerIPs:
1613
## - X.X.X.X
1614
## - Y.Y.Y.Y
1615
##
1616
loadBalancerIPs: []
1617
## @param externalAccess.controller.service.loadBalancerNames Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount
1618
## e.g:
1619
## loadBalancerNames:
1620
## - broker1.external.example.com
1621
## - broker2.external.example.com
1622
##
1623
loadBalancerNames: []
1624
## @param externalAccess.controller.service.loadBalancerAnnotations Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount
1625
## e.g:
1626
## loadBalancerAnnotations:
1627
## - external-dns.alpha.kubernetes.io/hostname: broker1.external.example.com.
1628
## - external-dns.alpha.kubernetes.io/hostname: broker2.external.example.com.
1629
##
1630
loadBalancerAnnotations: []
1631
## @param externalAccess.controller.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
1632
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1633
## e.g:
1634
## loadBalancerSourceRanges:
1635
## - 10.10.10.0/24
1636
##
1637
loadBalancerSourceRanges: []
1638
## @param externalAccess.controller.service.allocateLoadBalancerNodePorts Whether to allocate node ports when service type is LoadBalancer
1639
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
1640
##
1641
allocateLoadBalancerNodePorts: true
1642
## @param externalAccess.controller.service.nodePorts Array of node ports used for each Kafka broker. Length must be the same as replicaCount
1643
## e.g:
1644
## nodePorts:
1645
## - 30001
1646
## - 30002
1647
##
1648
nodePorts: []
1649
## @param externalAccess.controller.service.externalIPs Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount
1650
## e.g:
1651
## externalIPs:
1652
## - X.X.X.X
1653
## - Y.Y.Y.Y
1654
##
1655
externalIPs: []
1656
## @param externalAccess.controller.service.useHostIPs Use service host IPs to configure Kafka external listener when service type is NodePort
1657
##
1658
useHostIPs: false
1659
## @param externalAccess.controller.service.usePodIPs using the MY_POD_IP address for external access.
1660
##
1661
usePodIPs: false
1662
## @param externalAccess.controller.service.domain Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP
1663
## NodePort: If not specified, the container will try to get the kubernetes node external IP
1664
## ClusterIP: Must be specified, ingress IP or domain where tcp for external ports is configured
1665
##
1666
domain: ""
1667
## @param externalAccess.controller.service.publishNotReadyAddresses Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready
1668
## ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/
1669
##
1670
publishNotReadyAddresses: false
1671
## @param externalAccess.controller.service.labels Service labels for external access
1672
##
1673
labels: {}
1674
## @param externalAccess.controller.service.annotations Service annotations for external access
1675
##
1676
annotations: {}
1677
## @param externalAccess.controller.service.extraPorts Extra ports to expose in the Kafka external service
1678
##
1679
extraPorts: []
1680
## @param externalAccess.controller.service.ipFamilies IP families for the external controller service
1681
##
1682
ipFamilies: []
1683
## @param externalAccess.controller.service.ipFamilyPolicy IP family policy for the external controller service
1684
##
1685
ipFamilyPolicy: ""
1686
broker:
1687
## Parameters to configure K8s service(s) used to externally access Kafka brokers
1688
## Note: A new service per broker will be created
1689
##
1690
service:
1691
## @param externalAccess.broker.service.type Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP
1692
##
1693
type: LoadBalancer
1694
## @param externalAccess.broker.service.ports.external Kafka port used for external access when service type is LoadBalancer
1695
##
1696
ports:
1697
external: 9094
1698
## @param externalAccess.broker.service.loadBalancerClass Kubernetes Service Load Balancer class for external access when service type is LoadBalancer
1699
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
1700
##
1701
loadBalancerClass: ""
1702
## @param externalAccess.broker.service.loadBalancerIPs Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount
1703
## e.g:
1704
## loadBalancerIPs:
1705
## - X.X.X.X
1706
## - Y.Y.Y.Y
1707
##
1708
loadBalancerIPs: []
1709
## @param externalAccess.broker.service.loadBalancerNames Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount
1710
## e.g:
1711
## loadBalancerNames:
1712
## - broker1.external.example.com
1713
## - broker2.external.example.com
1714
##
1715
loadBalancerNames: []
1716
## @param externalAccess.broker.service.loadBalancerAnnotations Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount
1717
## e.g:
1718
## loadBalancerAnnotations:
1719
## - external-dns.alpha.kubernetes.io/hostname: broker1.external.example.com.
1720
## - external-dns.alpha.kubernetes.io/hostname: broker2.external.example.com.
1721
##
1722
loadBalancerAnnotations: []
1723
## @param externalAccess.broker.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
1724
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1725
## e.g:
1726
## loadBalancerSourceRanges:
1727
## - 10.10.10.0/24
1728
##
1729
loadBalancerSourceRanges: []
1730
## @param externalAccess.broker.service.allocateLoadBalancerNodePorts Whether to allocate node ports when service type is LoadBalancer
1731
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
1732
##
1733
allocateLoadBalancerNodePorts: true
1734
## @param externalAccess.broker.service.nodePorts Array of node ports used for each Kafka broker. Length must be the same as replicaCount
1735
## e.g:
1736
## nodePorts:
1737
## - 30001
1738
## - 30002
1739
##
1740
nodePorts: []
1741
## @param externalAccess.broker.service.externalIPs Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount
1742
## e.g:
1743
## externalIPs:
1744
## - X.X.X.X
1745
## - Y.Y.Y.Y
1746
##
1747
externalIPs: []
1748
## @param externalAccess.broker.service.useHostIPs Use service host IPs to configure Kafka external listener when service type is NodePort
1749
##
1750
useHostIPs: false
1751
## @param externalAccess.broker.service.usePodIPs using the MY_POD_IP address for external access.
1752
##
1753
usePodIPs: false
1754
## @param externalAccess.broker.service.domain Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP
1755
## NodePort: If not specified, the container will try to get the kubernetes node external IP
1756
## ClusterIP: Must be specified, ingress IP or domain where tcp for external ports is configured
1757
##
1758
domain: ""
1759
## @param externalAccess.broker.service.publishNotReadyAddresses Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready
1760
## ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/
1761
##
1762
publishNotReadyAddresses: false
1763
## @param externalAccess.broker.service.labels Service labels for external access
1764
##
1765
labels: {}
1766
## @param externalAccess.broker.service.annotations Service annotations for external access
1767
##
1768
annotations: {}
1769
## @param externalAccess.broker.service.extraPorts Extra ports to expose in the Kafka external service
1770
##
1771
extraPorts: []
1772
## @param externalAccess.broker.service.ipFamilies IP families for the external broker service
1773
##
1774
ipFamilies: []
1775
## @param externalAccess.broker.service.ipFamilyPolicy IP family policy for the external broker service
1776
##
1777
ipFamilyPolicy: ""
1778
## Network policies
1779
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1780
##
1781
networkPolicy:
1782
## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1783
##
1784
enabled: true
1785
## @param networkPolicy.allowExternal Don't require client label for connections
1786
## When set to false, only pods with the correct client label will have network access to the port Redis&reg; is
1787
## listening on. When true, zookeeper accept connections from any source (with the correct destination port).
1788
##
1789
allowExternal: true
1790
## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1791
##
1792
allowExternalEgress: true
1793
## @param networkPolicy.addExternalClientAccess Allow access from pods with client label set to "true". Ignored if `networkPolicy.allowExternal` is true.
1794
##
1795
addExternalClientAccess: true
1796
## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1797
## e.g:
1798
## extraIngress:
1799
## - ports:
1800
## - port: 1234
1801
## from:
1802
## - podSelector:
1803
## - matchLabels:
1804
## - role: frontend
1805
## - podSelector:
1806
## - matchExpressions:
1807
## - key: role
1808
## operator: In
1809
## values:
1810
## - frontend
1811
extraIngress: []
1812
## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1813
## e.g:
1814
## extraEgress:
1815
## - ports:
1816
## - port: 1234
1817
## to:
1818
## - podSelector:
1819
## - matchLabels:
1820
## - role: frontend
1821
## - podSelector:
1822
## - matchExpressions:
1823
## - key: role
1824
## operator: In
1825
## values:
1826
## - frontend
1827
##
1828
extraEgress: []
1829
## @param networkPolicy.ingressPodMatchLabels [object] Labels to match to allow traffic from other pods. Ignored if `networkPolicy.allowExternal` is true.
1830
## e.g:
1831
## ingressPodMatchLabels:
1832
## my-client: "true"
1833
#
1834
ingressPodMatchLabels: {}
1835
## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces. Ignored if `networkPolicy.allowExternal` is true.
1836
## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces. Ignored if `networkPolicy.allowExternal` is true.
1837
##
1838
ingressNSMatchLabels: {}
1839
ingressNSPodMatchLabels: {}
1840
## @section Volume Permissions parameters
1841
##
1842
1843
## Init containers parameters:
1844
## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
1845
##
1846
volumePermissions:
1847
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
1848
##
1849
enabled: false
1850
## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
1851
## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image repository
1852
## @skip volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1853
## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1854
## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1855
## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
1856
##
1857
image:
1858
registry: chainreg.biz
1859
repository: chainguard-private/os-shell-iamguarded
1860
tag: 1.0.0
1861
digest: sha256:edd7746885ef1fcb2e237775055d7ab08f04c8b1e04fcf40b99aa00756402e14
1862
pullPolicy: IfNotPresent
1863
## Optionally specify an array of imagePullSecrets.
1864
## Secrets must be manually created in the namespace.
1865
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1866
## Example:
1867
## pullSecrets:
1868
## - myRegistryKeySecretName
1869
##
1870
pullSecrets: []
1871
## Init container resource requests and limits
1872
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1873
## @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).
1874
##
1875
resourcesPreset: "nano"
1876
## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1877
## Example:
1878
## resources:
1879
## requests:
1880
## cpu: 2
1881
## memory: 512Mi
1882
## limits:
1883
## cpu: 3
1884
## memory: 1024Mi
1885
##
1886
resources: {}
1887
## Init container' Security Context
1888
## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1889
## and not the below volumePermissions.containerSecurityContext.runAsUser
1890
## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1891
## @param volumePermissions.containerSecurityContext.runAsUser User ID for the init container
1892
##
1893
containerSecurityContext:
1894
seLinuxOptions: {}
1895
runAsUser: 0
1896
## @section Other Parameters
1897
##
1898
1899
## ServiceAccount for Kafka
1900
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1901
##
1902
serviceAccount:
1903
## @param serviceAccount.create Enable creation of ServiceAccount for Kafka pods
1904
##
1905
create: true
1906
## @param serviceAccount.name The name of the service account to use. If not set and `create` is `true`, a name is generated
1907
## If not set and create is true, a name is generated using the kafka.serviceAccountName template
1908
##
1909
name: ""
1910
## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1911
## Can be set to false if pods using this serviceAccount do not need to use K8s API
1912
##
1913
automountServiceAccountToken: false
1914
## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1915
##
1916
annotations: {}
1917
## Role Based Access Control
1918
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
1919
##
1920
rbac:
1921
## @param rbac.create Whether to create & use RBAC resources or not
1922
## binding Kafka ServiceAccount to a role
1923
## that allows Kafka pods querying the K8s API
1924
##
1925
create: false
1926
## @section Metrics parameters
1927
##
1928
1929
## Prometheus Exporters / Metrics
1930
##
1931
metrics:
1932
## Prometheus JMX exporter: exposes the majority of Kafka metrics
1933
##
1934
jmx:
1935
## @param metrics.jmx.enabled Whether or not to expose JMX metrics to Prometheus
1936
##
1937
enabled: false
1938
## @param metrics.jmx.kafkaJmxPort JMX port where the exporter will collect metrics, exposed in the Kafka container.
1939
##
1940
kafkaJmxPort: 5555
1941
## Iamguarded JMX exporter image
1942
## @param metrics.jmx.image.registry [default: REGISTRY_NAME] JMX exporter image registry
1943
## @param metrics.jmx.image.repository [default: REPOSITORY_NAME/jmx-exporter] JMX exporter image repository
1944
## @skip metrics.jmx.image.tag JMX exporter image tag (immutable tags are recommended)
1945
## @param metrics.jmx.image.digest JMX exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1946
## @param metrics.jmx.image.pullPolicy JMX exporter image pull policy
1947
## @param metrics.jmx.image.pullSecrets Specify docker-registry secret names as an array
1948
##
1949
image:
1950
registry: chainreg.biz
1951
repository: chainguard-private/jmx-exporter-iamguarded
1952
tag: 1.7.0
1953
digest: sha256:d9a753b6b330d73d0b132ff0d513a42c4b35b7f7e693fb353e6f960abf3bf085
1954
## Specify a imagePullPolicy
1955
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1956
##
1957
pullPolicy: IfNotPresent
1958
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
1959
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1960
## e.g:
1961
## pullSecrets:
1962
## - myRegistryKeySecretName
1963
##
1964
pullSecrets: []
1965
## Prometheus JMX exporter containers' Security Context
1966
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1967
## @param metrics.jmx.containerSecurityContext.enabled Enable Prometheus JMX exporter containers' Security Context
1968
## @param metrics.jmx.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1969
## @param metrics.jmx.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1970
## @param metrics.jmx.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1971
## @param metrics.jmx.containerSecurityContext.runAsNonRoot Set Prometheus JMX exporter containers' Security Context runAsNonRoot
1972
## @param metrics.jmx.containerSecurityContext.allowPrivilegeEscalation Set Prometheus JMX exporter containers' Security Context allowPrivilegeEscalation
1973
## @param metrics.jmx.containerSecurityContext.readOnlyRootFilesystem Set Prometheus JMX exporter containers' Security Context readOnlyRootFilesystem
1974
## @param metrics.jmx.containerSecurityContext.capabilities.drop Set Prometheus JMX exporter containers' Security Context capabilities to be dropped
1975
## e.g:
1976
## containerSecurityContext:
1977
## enabled: true
1978
## capabilities:
1979
## drop: ["NET_RAW"]
1980
## readOnlyRootFilesystem: true
1981
##
1982
containerSecurityContext:
1983
enabled: true
1984
seLinuxOptions: {}
1985
runAsUser: 1001
1986
runAsGroup: 1001
1987
runAsNonRoot: true
1988
allowPrivilegeEscalation: false
1989
readOnlyRootFilesystem: true
1990
capabilities:
1991
drop: ["ALL"]
1992
## @param metrics.jmx.containerPorts.metrics Prometheus JMX exporter metrics container port
1993
##
1994
containerPorts:
1995
metrics: 5556
1996
## Prometheus JMX exporter resource requests and limits
1997
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1998
## @param metrics.jmx.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.jmx.resources is set (metrics.jmx.resources is recommended for production).
1999
##
2000
resourcesPreset: "micro"
2001
## @param metrics.jmx.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2002
## Example:
2003
## resources:
2004
## requests:
2005
## cpu: 2
2006
## memory: 512Mi
2007
## limits:
2008
## cpu: 3
2009
## memory: 1024Mi
2010
##
2011
resources: {}
2012
## Configure extra options for liveness probe
2013
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2014
## @param metrics.jmx.livenessProbe.enabled Enable livenessProbe
2015
## @param metrics.jmx.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2016
## @param metrics.jmx.livenessProbe.periodSeconds Period seconds for livenessProbe
2017
## @param metrics.jmx.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2018
## @param metrics.jmx.livenessProbe.failureThreshold Failure threshold for livenessProbe
2019
## @param metrics.jmx.livenessProbe.successThreshold Success threshold for livenessProbe
2020
##
2021
livenessProbe:
2022
enabled: true
2023
initialDelaySeconds: 60
2024
periodSeconds: 10
2025
timeoutSeconds: 10
2026
successThreshold: 1
2027
failureThreshold: 3
2028
## Configure extra options for readiness probe
2029
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2030
## @param metrics.jmx.readinessProbe.enabled Enable readinessProbe
2031
## @param metrics.jmx.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2032
## @param metrics.jmx.readinessProbe.periodSeconds Period seconds for readinessProbe
2033
## @param metrics.jmx.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2034
## @param metrics.jmx.readinessProbe.failureThreshold Failure threshold for readinessProbe
2035
## @param metrics.jmx.readinessProbe.successThreshold Success threshold for readinessProbe
2036
##
2037
readinessProbe:
2038
enabled: true
2039
initialDelaySeconds: 30
2040
periodSeconds: 10
2041
timeoutSeconds: 10
2042
successThreshold: 1
2043
failureThreshold: 3
2044
## Prometheus JMX exporter service configuration
2045
##
2046
service:
2047
## @param metrics.jmx.service.ports.metrics Prometheus JMX exporter metrics service port
2048
##
2049
ports:
2050
metrics: 5556
2051
## @param metrics.jmx.service.clusterIP Static clusterIP or None for headless services
2052
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
2053
##
2054
clusterIP: ""
2055
## @param metrics.jmx.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2056
## Values: ClientIP or None
2057
## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2058
##
2059
sessionAffinity: None
2060
## @param metrics.jmx.service.annotations [object] Annotations for the Prometheus JMX exporter service
2061
##
2062
annotations:
2063
prometheus.io/scrape: "true"
2064
prometheus.io/port: "{{ .Values.metrics.jmx.service.ports.metrics }}"
2065
prometheus.io/path: "/metrics"
2066
## @param metrics.jmx.service.ipFamilies IP families for the jmx metrics service
2067
##
2068
ipFamilies: []
2069
## @param metrics.jmx.service.ipFamilyPolicy IP family policy for the jmx metrics service
2070
##
2071
ipFamilyPolicy: ""
2072
## @param metrics.jmx.whitelistObjectNames Allows setting which JMX objects you want to expose to via JMX stats to JMX exporter
2073
## Only whitelisted values will be exposed via JMX exporter. They must also be exposed via Rules. To expose all metrics
2074
## (warning its crazy excessive and they aren't formatted in a prometheus style) (1) `whitelistObjectNames: []`
2075
## (2) commented out above `overrideConfig`.
2076
##
2077
whitelistObjectNames:
2078
- kafka.controller:*
2079
- kafka.server:*
2080
- java.lang:*
2081
- kafka.network:*
2082
- kafka.log:*
2083
## @param metrics.jmx.config [string] Configuration file for JMX exporter
2084
## Specify content for jmx-kafka-prometheus.yml. Evaluated as a template
2085
##
2086
## Credits to the incubator/kafka chart for the JMX configuration.
2087
## https://github.com/helm/charts/tree/master/incubator/kafka
2088
##
2089
config: |-
2090
jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:{{ .Values.metrics.jmx.kafkaJmxPort }}/jmxrmi
2091
lowercaseOutputName: true
2092
lowercaseOutputLabelNames: true
2093
ssl: false
2094
{{- if .Values.metrics.jmx.whitelistObjectNames }}
2095
whitelistObjectNames: ["{{ join "\",\"" .Values.metrics.jmx.whitelistObjectNames }}"]
2096
{{- end }}
2097
## @param metrics.jmx.existingConfigmap Name of existing ConfigMap with JMX exporter configuration
2098
## NOTE: This will override metrics.jmx.config
2099
##
2100
existingConfigmap: ""
2101
## @param metrics.jmx.extraRules Add extra rules to JMX exporter configuration
2102
## e.g:
2103
## extraRules: |-
2104
## - pattern: kafka.server<type=socket-server-metrics, listener=(.+), networkProcessor=(.+)><>(connection-count)
2105
## name: kafka_server_socket_server_metrics_$3
2106
## labels:
2107
## listener: $1
2108
##
2109
extraRules: ""
2110
## Prometheus Operator ServiceMonitor configuration
2111
##
2112
serviceMonitor:
2113
## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (requires `metrics.jmx.enabled` to be `true`)
2114
##
2115
enabled: false
2116
## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
2117
##
2118
namespace: ""
2119
## @param metrics.serviceMonitor.path Path where JMX exporter serves metrics
2120
##
2121
path: /metrics
2122
## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
2123
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2124
##
2125
interval: ""
2126
## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2127
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2128
##
2129
scrapeTimeout: ""
2130
## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
2131
##
2132
labels: {}
2133
## @param metrics.serviceMonitor.selector Prometheus instance selector labels
2134
##
2135
selector: {}
2136
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
2137
##
2138
relabelings: []
2139
## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
2140
##
2141
metricRelabelings: []
2142
## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2143
##
2144
honorLabels: false
2145
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
2146
##
2147
jobLabel: ""
2148
prometheusRule:
2149
## @param metrics.prometheusRule.enabled if `true`, creates a Prometheus Operator PrometheusRule (requires `metrics.jmx.enabled` to be `true`)
2150
##
2151
enabled: false
2152
## @param metrics.prometheusRule.namespace Namespace in which Prometheus is running
2153
##
2154
namespace: ""
2155
## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
2156
##
2157
labels: {}
2158
## @param metrics.prometheusRule.groups Prometheus Rule Groups for Kafka
2159
##
2160
groups: []
2161
## @section Kafka provisioning parameters
2162
##
2163
2164
## Kafka provisioning
2165
##
2166
provisioning:
2167
## @param provisioning.enabled Enable kafka provisioning Job
2168
##
2169
enabled: false
2170
## @param provisioning.automountServiceAccountToken Mount Service Account token in pod
2171
##
2172
automountServiceAccountToken: false
2173
## @param provisioning.numPartitions Default number of partitions for topics when unspecified
2174
##
2175
numPartitions: 1
2176
## @param provisioning.replicationFactor Default replication factor for topics when unspecified
2177
##
2178
replicationFactor: 1
2179
## @param provisioning.topics Kafka topics to provision
2180
## - name: topic-name
2181
## partitions: 1
2182
## replicationFactor: 1
2183
## ## https://kafka.apache.org/documentation/#topicconfigs
2184
## config:
2185
## max.message.bytes: 64000
2186
## flush.messages: 1
2187
##
2188
topics: []
2189
## @param provisioning.nodeSelector Node labels for pod assignment
2190
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2191
##
2192
nodeSelector: {}
2193
## @param provisioning.tolerations Tolerations for pod assignment
2194
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2195
##
2196
tolerations: []
2197
## @param provisioning.extraProvisioningCommands Extra commands to run to provision cluster resources
2198
## - echo "Allow user to consume from any topic"
2199
## - >-
2200
## /opt/iamguarded/kafka/bin/kafka-acls.sh
2201
## --bootstrap-server $KAFKA_SERVICE
2202
## --command-config $CLIENT_CONF
2203
## --add
2204
## --allow-principal User:user
2205
## --consumer --topic *
2206
## - "/opt/iamguarded/kafka/bin/kafka-acls.sh
2207
## --bootstrap-server $KAFKA_SERVICE
2208
## --command-config $CLIENT_CONF
2209
## --list"
2210
##
2211
extraProvisioningCommands: []
2212
## @param provisioning.parallel Number of provisioning commands to run at the same time
2213
##
2214
parallel: 1
2215
## @param provisioning.preScript Extra bash script to run before topic provisioning. $CLIENT_CONF is path to properties file with most needed configurations
2216
##
2217
preScript: ""
2218
## @param provisioning.postScript Extra bash script to run after topic provisioning. $CLIENT_CONF is path to properties file with most needed configurations
2219
##
2220
postScript: ""
2221
## Auth Configuration for kafka provisioning Job
2222
##
2223
auth:
2224
## TLS configuration for kafka provisioning Job
2225
##
2226
tls:
2227
## @param provisioning.auth.tls.type Format to use for TLS certificates. Allowed types: `JKS` and `PEM`.
2228
## Note: ignored if auth.tls.client.protocol different from one of these values: "SSL" "SASL_SSL"
2229
##
2230
type: jks
2231
## @param provisioning.auth.tls.certificatesSecret Existing secret containing the TLS certificates for the Kafka provisioning Job.
2232
## When using 'jks' format for certificates, the secret should contain a truststore and a keystore.
2233
## When using 'pem' format for certificates, the secret should contain one of the following:
2234
## 1. A public CA certificate, a public certificate and one private key.
2235
## 2. A truststore and a keystore in PEM format
2236
## If caCert is set, option 1 will be taken, otherwise option 2.
2237
##
2238
certificatesSecret: ""
2239
## @param provisioning.auth.tls.cert The secret key from the certificatesSecret if 'cert' key different from the default (tls.crt)
2240
##
2241
cert: tls.crt
2242
## @param provisioning.auth.tls.key The secret key from the certificatesSecret if 'key' key different from the default (tls.key)
2243
##
2244
key: tls.key
2245
## @param provisioning.auth.tls.caCert The secret key from the certificatesSecret if 'caCert' key different from the default (ca.crt)
2246
##
2247
caCert: ca.crt
2248
## @param provisioning.auth.tls.keystore The secret key from the certificatesSecret if 'keystore' key different from the default (keystore.jks)
2249
##
2250
keystore: keystore.jks
2251
## @param provisioning.auth.tls.truststore The secret key from the certificatesSecret if 'truststore' key different from the default (truststore.jks)
2252
##
2253
truststore: truststore.jks
2254
## @param provisioning.auth.tls.passwordsSecret Name of the secret containing passwords to access the JKS files or PEM key when they are password-protected.
2255
## It should contain two keys called "keystore-password" and "truststore-password", or "key-password" if using a password-protected PEM key.
2256
##
2257
passwordsSecret: ""
2258
## @param provisioning.auth.tls.keyPasswordSecretKey The secret key from the passwordsSecret if 'keyPasswordSecretKey' key different from the default (key-password)
2259
## Note: must not be used if `passwordsSecret` is not defined.
2260
##
2261
keyPasswordSecretKey: key-password
2262
## @param provisioning.auth.tls.keystorePasswordSecretKey The secret key from the passwordsSecret if 'keystorePasswordSecretKey' key different from the default (keystore-password)
2263
## Note: must not be used if `passwordsSecret` is not defined.
2264
##
2265
keystorePasswordSecretKey: keystore-password
2266
## @param provisioning.auth.tls.truststorePasswordSecretKey The secret key from the passwordsSecret if 'truststorePasswordSecretKey' key different from the default (truststore-password)
2267
## Note: must not be used if `passwordsSecret` is not defined.
2268
##
2269
truststorePasswordSecretKey: truststore-password
2270
## @param provisioning.auth.tls.keyPassword Password to access the password-protected PEM key if necessary. Ignored if 'passwordsSecret' is provided.
2271
##
2272
keyPassword: ""
2273
## @param provisioning.auth.tls.keystorePassword Password to access the JKS keystore. Ignored if 'passwordsSecret' is provided.
2274
##
2275
keystorePassword: ""
2276
## @param provisioning.auth.tls.truststorePassword Password to access the JKS truststore. Ignored if 'passwordsSecret' is provided.
2277
##
2278
truststorePassword: ""
2279
## @param provisioning.command Override provisioning container command
2280
##
2281
command: []
2282
## @param provisioning.args Override provisioning container arguments
2283
##
2284
args: []
2285
## @param provisioning.extraEnvVars Extra environment variables to add to the provisioning pod
2286
## e.g:
2287
## extraEnvVars:
2288
## - name: KAFKA_CFG_BACKGROUND_THREADS
2289
## value: "10"
2290
##
2291
extraEnvVars: []
2292
## @param provisioning.extraEnvVarsCM ConfigMap with extra environment variables
2293
##
2294
extraEnvVarsCM: ""
2295
## @param provisioning.extraEnvVarsSecret Secret with extra environment variables
2296
##
2297
extraEnvVarsSecret: ""
2298
## @param provisioning.podAnnotations Extra annotations for Kafka provisioning pods
2299
##
2300
podAnnotations: {}
2301
## @param provisioning.podLabels Extra labels for Kafka provisioning pods
2302
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2303
##
2304
podLabels: {}
2305
## Kafka provisioning pods ServiceAccount
2306
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2307
##
2308
serviceAccount:
2309
## @param provisioning.serviceAccount.create Enable creation of ServiceAccount for Kafka provisioning pods
2310
##
2311
create: true
2312
## @param provisioning.serviceAccount.name The name of the service account to use. If not set and `create` is `true`, a name is generated
2313
## If not set and create is true, a name is generated using the provisioning.serviceAccount.name template
2314
##
2315
name: ""
2316
## @param provisioning.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
2317
## Can be set to false if pods using this serviceAccount do not need to use K8s API
2318
##
2319
automountServiceAccountToken: false
2320
## Kafka provisioning resource requests and limits
2321
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2322
## @param provisioning.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if provisioning.resources is set (provisioning.resources is recommended for production).
2323
##
2324
resourcesPreset: "micro"
2325
## @param provisioning.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2326
## Example:
2327
## resources:
2328
## requests:
2329
## cpu: 2
2330
## memory: 512Mi
2331
## limits:
2332
## cpu: 3
2333
## memory: 1024Mi
2334
##
2335
resources: {}
2336
## Kafka provisioning pods' Security Context
2337
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2338
## @param provisioning.podSecurityContext.enabled Enable security context for the pods
2339
## @param provisioning.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
2340
## @param provisioning.podSecurityContext.sysctls Set kernel settings using the sysctl interface
2341
## @param provisioning.podSecurityContext.supplementalGroups Set filesystem extra groups
2342
## @param provisioning.podSecurityContext.fsGroup Set Kafka provisioning pod's Security Context fsGroup
2343
## @param provisioning.podSecurityContext.seccompProfile.type Set Kafka provisioning pod's Security Context seccomp profile
2344
##
2345
podSecurityContext:
2346
enabled: true
2347
fsGroupChangePolicy: Always
2348
sysctls: []
2349
supplementalGroups: []
2350
fsGroup: 1001
2351
seccompProfile:
2352
type: "RuntimeDefault"
2353
## Kafka provisioning containers' Security Context
2354
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2355
## @param provisioning.containerSecurityContext.enabled Enable Kafka provisioning containers' Security Context
2356
## @param provisioning.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2357
## @param provisioning.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
2358
## @param provisioning.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
2359
## @param provisioning.containerSecurityContext.runAsNonRoot Set Kafka provisioning containers' Security Context runAsNonRoot
2360
## @param provisioning.containerSecurityContext.allowPrivilegeEscalation Set Kafka provisioning containers' Security Context allowPrivilegeEscalation
2361
## @param provisioning.containerSecurityContext.readOnlyRootFilesystem Set Kafka provisioning containers' Security Context readOnlyRootFilesystem
2362
## @param provisioning.containerSecurityContext.capabilities.drop Set Kafka provisioning containers' Security Context capabilities to be dropped
2363
## e.g:
2364
## containerSecurityContext:
2365
## enabled: true
2366
## capabilities:
2367
## drop: ["NET_RAW"]
2368
## readOnlyRootFilesystem: true
2369
##
2370
containerSecurityContext:
2371
enabled: true
2372
seLinuxOptions: {}
2373
runAsUser: 1001
2374
runAsGroup: 1001
2375
runAsNonRoot: true
2376
allowPrivilegeEscalation: false
2377
readOnlyRootFilesystem: true
2378
capabilities:
2379
drop: ["ALL"]
2380
## @param provisioning.schedulerName Name of the k8s scheduler (other than default) for kafka provisioning
2381
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2382
##
2383
schedulerName: ""
2384
## @param provisioning.enableServiceLinks Whether information about services should be injected into pod's environment variable
2385
## The environment variables injected by service links are not used, but can lead to slow kafka boot times or slow running of the scripts when there are many services in the current namespace.
2386
## If you experience slow pod startups or slow running of the scripts you probably want to set this to `false`.
2387
##
2388
enableServiceLinks: true
2389
## @param provisioning.extraVolumes Optionally specify extra list of additional volumes for the Kafka provisioning pod(s)
2390
## e.g:
2391
## extraVolumes:
2392
## - name: kafka-jaas
2393
## secret:
2394
## secretName: kafka-jaas
2395
##
2396
extraVolumes: []
2397
## @param provisioning.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka provisioning container(s)
2398
## extraVolumeMounts:
2399
## - name: kafka-jaas
2400
## mountPath: /iamguarded/kafka/config/kafka_jaas.conf
2401
## subPath: kafka_jaas.conf
2402
##
2403
extraVolumeMounts: []
2404
## @param provisioning.sidecars Add additional sidecar containers to the Kafka provisioning pod(s)
2405
## e.g:
2406
## sidecars:
2407
## - name: your-image-name
2408
## image: your-image
2409
## imagePullPolicy: Always
2410
## ports:
2411
## - name: portname
2412
## containerPort: 1234
2413
##
2414
sidecars: []
2415
## @param provisioning.initContainers Add additional Add init containers to the Kafka provisioning pod(s)
2416
## e.g:
2417
## initContainers:
2418
## - name: your-image-name
2419
## image: your-image
2420
## imagePullPolicy: Always
2421
## ports:
2422
## - name: portname
2423
## containerPort: 1234
2424
##
2425
initContainers: []
2426
## @param provisioning.waitForKafka If true use an init container to wait until kafka is ready before starting provisioning
2427
##
2428
waitForKafka: true
2429
## @param provisioning.useHelmHooks Flag to indicate usage of helm hooks
2430
useHelmHooks: true
2431
## @section KRaft chart parameters
2432
2433
## KRaft configuration
2434
## Kafka mode without Zookeeper. Kafka nodes can work as controllers in this mode.
2435
##
2436
kraft:
2437
## @param kraft.enabled Switch to enable or disable the KRaft mode for Kafka
2438
##
2439
enabled: true
2440
## @param kraft.existingClusterIdSecret Name of the secret containing the cluster ID for the Kafka KRaft cluster. This is incompatible with the clusterId parameter. If both are set, the existingClusterIdSecret will be used
2441
existingClusterIdSecret: ""
2442
## @param kraft.clusterId Kafka Kraft cluster ID. If not set, a random cluster ID will be generated the first time Kraft is initialized.
2443
## NOTE: Already initialized Kafka nodes will use cluster ID stored in their persisted storage.
2444
## If reusing existing PVCs or migrating from Zookeeper mode, make sure the cluster ID is set matching the stored cluster ID, otherwise new nodes will fail to join the cluster.
2445
## In case the cluster ID stored in the secret does not match the value stored in /iamguarded/kafka/data/meta.properties, remove the secret and upgrade the chart setting the correct value.
2446
##
2447
clusterId: ""
2448
## @param kraft.controllerQuorumVoters Override the Kafka controller quorum voters of the Kafka Kraft cluster. If not set, it will be automatically configured to use all controller-elegible nodes.
2449
##
2450
controllerQuorumVoters: ""
2451
## @section ZooKeeper chart parameters
2452
##
2453
## @param zookeeperChrootPath Path which puts data under some path in the global ZooKeeper namespace
2454
## ref: https://kafka.apache.org/documentation/#brokerconfigs_zookeeper.connect
2455
##
2456
zookeeperChrootPath: ""
2457
## ZooKeeper chart configuration
2458
##
2459
zookeeper:
2460
## @param zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart. Must be false if you use KRaft mode.
2461
##
2462
enabled: false
2463
## @param zookeeper.replicaCount Number of ZooKeeper nodes
2464
##
2465
replicaCount: 1
2466
## ZooKeeper authentication
2467
##
2468
auth:
2469
client:
2470
## @param zookeeper.auth.client.enabled Enable ZooKeeper auth
2471
##
2472
enabled: false
2473
## @param zookeeper.auth.client.clientUser User that will use ZooKeeper client (zkCli.sh) to authenticate. Must exist in the serverUsers comma-separated list.
2474
##
2475
clientUser: ""
2476
## @param zookeeper.auth.client.clientPassword Password that will use ZooKeeper client (zkCli.sh) to authenticate. Must exist in the serverPasswords comma-separated list.
2477
##
2478
clientPassword: ""
2479
## @param zookeeper.auth.client.serverUsers Comma, semicolon or whitespace separated list of user to be created. Specify them as a string, for example: "user1,user2,admin"
2480
##
2481
serverUsers: ""
2482
## @param zookeeper.auth.client.serverPasswords Comma, semicolon or whitespace separated list of passwords to assign to users when created. Specify them as a string, for example: "pass4user1, pass4user2, pass4admin"
2483
##
2484
serverPasswords: ""
2485
## ZooKeeper Persistence parameters
2486
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
2487
## @param zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s)
2488
## @param zookeeper.persistence.storageClass Persistent Volume storage class
2489
## @param zookeeper.persistence.accessModes Persistent Volume access modes
2490
## @param zookeeper.persistence.size Persistent Volume size
2491
##
2492
persistence:
2493
enabled: true
2494
storageClass: ""
2495
accessModes:
2496
- ReadWriteOnce
2497
size: 8Gi
2498
## External Zookeeper Configuration
2499
##
2500
externalZookeeper:
2501
## @param externalZookeeper.servers List of external zookeeper servers to use. Typically used in combination with 'zookeeperChrootPath'. Must be empty if you use KRaft mode.
2502
##
2503
servers: []
2504

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.