values.yaml 126 KB

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