values.yaml 77 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772
  1. ## @section Global parameters
  2. ## Global Docker image parameters
  3. ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
  4. ## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
  5. ##
  6. ## @param global.imageRegistry Global Docker image registry
  7. ## @param global.imagePullSecrets Global Docker registry secret names as an array
  8. ## @param global.storageClass Global StorageClass for Persistent Volume(s)
  9. ##
  10. global:
  11. imageRegistry: ""
  12. ## E.g.
  13. ## imagePullSecrets:
  14. ## - myRegistryKeySecretName
  15. ##
  16. imagePullSecrets: []
  17. storageClass: ""
  18. ## @section Common parameters
  19. ##
  20. ## @param kubeVersion Override Kubernetes version
  21. ##
  22. kubeVersion: ""
  23. ## @param nameOverride String to partially override common.names.fullname
  24. ##
  25. nameOverride: ""
  26. ## @param fullnameOverride String to fully override common.names.fullname
  27. ##
  28. fullnameOverride: ""
  29. ## @param clusterDomain Default Kubernetes cluster domain
  30. ##
  31. clusterDomain: cluster.local
  32. ## @param commonLabels Labels to add to all deployed objects
  33. ##
  34. commonLabels: {}
  35. ## @param commonAnnotations Annotations to add to all deployed objects
  36. ##
  37. commonAnnotations: {}
  38. ## @param extraDeploy Array of extra objects to deploy with the release
  39. ##
  40. extraDeploy: []
  41. ## @param serviceBindings.enabled Create secret for service binding (Experimental)
  42. ## Ref: https://servicebinding.io/service-provider/
  43. ##
  44. serviceBindings:
  45. enabled: false
  46. ## Enable diagnostic mode in the statefulset
  47. ##
  48. diagnosticMode:
  49. ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
  50. ##
  51. enabled: false
  52. ## @param diagnosticMode.command Command to override all containers in the statefulset
  53. ##
  54. command:
  55. - sleep
  56. ## @param diagnosticMode.args Args to override all containers in the statefulset
  57. ##
  58. args:
  59. - infinity
  60. ## @section Kafka parameters
  61. ##
  62. ## Bitnami Kafka image version
  63. ## ref: https://hub.docker.com/r/bitnami/kafka/tags/
  64. ## @param image.registry Kafka image registry
  65. ## @param image.repository Kafka image repository
  66. ## @param image.tag Kafka image tag (immutable tags are recommended)
  67. ## @param image.digest Kafka image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  68. ## @param image.pullPolicy Kafka image pull policy
  69. ## @param image.pullSecrets Specify docker-registry secret names as an array
  70. ## @param image.debug Specify if debug values should be set
  71. ##
  72. image:
  73. registry: docker.io
  74. repository: bitnami/kafka
  75. tag: 3.4.0-debian-11-r4
  76. digest: ""
  77. ## Specify a imagePullPolicy
  78. ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  79. ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  80. ##
  81. pullPolicy: IfNotPresent
  82. ## Optionally specify an array of imagePullSecrets.
  83. ## Secrets must be manually created in the namespace.
  84. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  85. ## e.g:
  86. ## pullSecrets:
  87. ## - myRegistryKeySecretName
  88. ##
  89. pullSecrets: []
  90. ## Set to true if you would like to see extra information on logs
  91. ##
  92. debug: false
  93. ## @param config Configuration file for Kafka. Auto-generated based on other parameters when not specified
  94. ## Specify content for server.properties
  95. ## NOTE: This will override any KAFKA_CFG_ environment variables (including those set by the chart)
  96. ## The server.properties is auto-generated based on other parameters when this parameter is not specified
  97. ## e.g:
  98. ## config: |-
  99. ## broker.id=-1
  100. ## listeners=PLAINTEXT://:9092
  101. ## advertised.listeners=PLAINTEXT://KAFKA_IP:9092
  102. ## num.network.threads=3
  103. ## num.io.threads=8
  104. ## socket.send.buffer.bytes=102400
  105. ## socket.receive.buffer.bytes=102400
  106. ## socket.request.max.bytes=104857600
  107. ## log.dirs=/bitnami/kafka/data
  108. ## num.partitions=1
  109. ## num.recovery.threads.per.data.dir=1
  110. ## offsets.topic.replication.factor=1
  111. ## transaction.state.log.replication.factor=1
  112. ## transaction.state.log.min.isr=1
  113. ## log.flush.interval.messages=10000
  114. ## log.flush.interval.ms=1000
  115. ## log.retention.hours=168
  116. ## log.retention.bytes=1073741824
  117. ## log.segment.bytes=1073741824
  118. ## log.retention.check.interval.ms=300000
  119. ## zookeeper.connect=ZOOKEEPER_SERVICE_NAME
  120. ## zookeeper.connection.timeout.ms=6000
  121. ## group.initial.rebalance.delay.ms=0
  122. ##
  123. config: ""
  124. ## @param existingConfigmap ConfigMap with Kafka Configuration
  125. ## NOTE: This will override `config` AND any KAFKA_CFG_ environment variables
  126. ##
  127. existingConfigmap: ""
  128. ## @param log4j An optional log4j.properties file to overwrite the default of the Kafka brokers
  129. ## An optional log4j.properties file to overwrite the default of the Kafka brokers
  130. ## ref: https://github.com/apache/kafka/blob/trunk/config/log4j.properties
  131. ##
  132. log4j: ""
  133. ## @param existingLog4jConfigMap The name of an existing ConfigMap containing a log4j.properties file
  134. ## The name of an existing ConfigMap containing a log4j.properties file
  135. ## NOTE: this will override `log4j`
  136. ##
  137. existingLog4jConfigMap: ""
  138. ## @param heapOpts Kafka Java Heap size
  139. ##
  140. heapOpts: -Xmx1024m -Xms1024m
  141. ## @param deleteTopicEnable Switch to enable topic deletion or not
  142. ##
  143. deleteTopicEnable: false
  144. ## @param autoCreateTopicsEnable Switch to enable auto creation of topics. Enabling auto creation of topics not recommended for production or similar environments
  145. ##
  146. autoCreateTopicsEnable: true
  147. ## @param logFlushIntervalMessages The number of messages to accept before forcing a flush of data to disk
  148. ##
  149. logFlushIntervalMessages: _10000
  150. ## @param logFlushIntervalMs The maximum amount of time a message can sit in a log before we force a flush
  151. ##
  152. logFlushIntervalMs: 1000
  153. ## @param logRetentionBytes A size-based retention policy for logs
  154. ##
  155. logRetentionBytes: _1073741824
  156. ## @param logRetentionCheckIntervalMs The interval at which log segments are checked to see if they can be deleted
  157. ##
  158. logRetentionCheckIntervalMs: 300000
  159. ## @param logRetentionHours The minimum age of a log file to be eligible for deletion due to age
  160. ##
  161. logRetentionHours: 168
  162. ## @param logSegmentBytes The maximum size of a log segment file. When this size is reached a new log segment will be created
  163. ##
  164. logSegmentBytes: _1073741824
  165. ## @param logsDirs A comma separated list of directories in which kafka's log data is kept
  166. ## ref: https://kafka.apache.org/documentation/#brokerconfigs_log.dirs
  167. ##
  168. logsDirs: /bitnami/kafka/data
  169. ## @param maxMessageBytes The largest record batch size allowed by Kafka
  170. ##
  171. maxMessageBytes: _1000012
  172. ## @param defaultReplicationFactor Default replication factors for automatically created topics
  173. ##
  174. defaultReplicationFactor: 1
  175. ## @param offsetsTopicReplicationFactor The replication factor for the offsets topic
  176. ##
  177. offsetsTopicReplicationFactor: 1
  178. ## @param transactionStateLogReplicationFactor The replication factor for the transaction topic
  179. ##
  180. transactionStateLogReplicationFactor: 1
  181. ## @param transactionStateLogMinIsr Overridden min.insync.replicas config for the transaction topic
  182. ##
  183. transactionStateLogMinIsr: 1
  184. ## @param numIoThreads The number of threads doing disk I/O
  185. ##
  186. numIoThreads: 8
  187. ## @param numNetworkThreads The number of threads handling network requests
  188. ##
  189. numNetworkThreads: 3
  190. ## @param numPartitions The default number of log partitions per topic
  191. ##
  192. numPartitions: 1
  193. ## @param numRecoveryThreadsPerDataDir The number of threads per data directory to be used for log recovery at startup and flushing at shutdown
  194. ##
  195. numRecoveryThreadsPerDataDir: 1
  196. ## @param socketReceiveBufferBytes The receive buffer (SO_RCVBUF) used by the socket server
  197. ##
  198. socketReceiveBufferBytes: 102400
  199. ## @param socketRequestMaxBytes The maximum size of a request that the socket server will accept (protection against OOM)
  200. ##
  201. socketRequestMaxBytes: _104857600
  202. ## @param socketSendBufferBytes The send buffer (SO_SNDBUF) used by the socket server
  203. ##
  204. socketSendBufferBytes: 102400
  205. ## @param zookeeperConnectionTimeoutMs Timeout in ms for connecting to ZooKeeper
  206. ##
  207. zookeeperConnectionTimeoutMs: 6000
  208. ## @param zookeeperChrootPath Path which puts data under some path in the global ZooKeeper namespace
  209. ## ref: https://kafka.apache.org/documentation/#brokerconfigs_zookeeper.connect
  210. ##
  211. zookeeperChrootPath: ""
  212. ## @param authorizerClassName The Authorizer is configured by setting authorizer.class.name=kafka.security.authorizer.AclAuthorizer in server.properties
  213. ##
  214. authorizerClassName: ""
  215. ## @param allowEveryoneIfNoAclFound By default, if a resource has no associated ACLs, then no one is allowed to access that resource except super users
  216. ##
  217. allowEveryoneIfNoAclFound: true
  218. ## @param superUsers You can add super users in server.properties
  219. ##
  220. superUsers: User:admin
  221. ## Authentication parameters
  222. ## https://github.com/bitnami/containers/tree/main/bitnami/kafka#security
  223. ##
  224. auth:
  225. ## Authentication protocol for client and inter-broker communications
  226. ## This table shows the security provided on each protocol:
  227. ## | Method | Authentication | Encryption via TLS |
  228. ## | plaintext | None | No |
  229. ## | tls | None | Yes |
  230. ## | mtls | Yes (two-way authentication) | Yes |
  231. ## | sasl | Yes (via SASL) | No |
  232. ## | sasl_tls | Yes (via SASL) | Yes |
  233. ## @param auth.clientProtocol Authentication protocol for communications with clients. Allowed protocols: `plaintext`, `tls`, `mtls`, `sasl` and `sasl_tls`
  234. ## @param auth.externalClientProtocol Authentication protocol for communications with external clients. Defaults to value of `auth.clientProtocol`. Allowed protocols: `plaintext`, `tls`, `mtls`, `sasl` and `sasl_tls`
  235. ## @param auth.interBrokerProtocol Authentication protocol for inter-broker communications. Allowed protocols: `plaintext`, `tls`, `mtls`, `sasl` and `sasl_tls`
  236. ##
  237. clientProtocol: plaintext
  238. # Note: empty by default for backwards compatibility reasons, find more information at
  239. # https://github.com/bitnami/charts/pull/8902/
  240. externalClientProtocol: ""
  241. interBrokerProtocol: plaintext
  242. ## SASL configuration
  243. ##
  244. sasl:
  245. ## @param auth.sasl.mechanisms SASL mechanisms when either `auth.interBrokerProtocol`, `auth.clientProtocol` or `auth.externalClientProtocol` are `sasl`. Allowed types: `plain`, `scram-sha-256`, `scram-sha-512`
  246. ##
  247. mechanisms: plain,scram-sha-256,scram-sha-512
  248. ## @param auth.sasl.interBrokerMechanism SASL mechanism for inter broker communication.
  249. ##
  250. interBrokerMechanism: plain
  251. ## JAAS configuration for SASL authentication.
  252. ##
  253. jaas:
  254. ## @param auth.sasl.jaas.clientUsers Kafka client user list
  255. ##
  256. ## clientUsers:
  257. ## - user1
  258. ## - user2
  259. ##
  260. clientUsers:
  261. - user
  262. ## @param auth.sasl.jaas.clientPasswords Kafka client passwords. This is mandatory if more than one user is specified in clientUsers
  263. ##
  264. ## clientPasswords:
  265. ## - password1
  266. ## - password2"
  267. ##
  268. clientPasswords: []
  269. ## @param auth.sasl.jaas.interBrokerUser Kafka inter broker communication user for SASL authentication
  270. ##
  271. interBrokerUser: admin
  272. ## @param auth.sasl.jaas.interBrokerPassword Kafka inter broker communication password for SASL authentication
  273. ##
  274. interBrokerPassword: ""
  275. ## @param auth.sasl.jaas.zookeeperUser Kafka ZooKeeper user for SASL authentication
  276. ##
  277. zookeeperUser: ""
  278. ## @param auth.sasl.jaas.zookeeperPassword Kafka ZooKeeper password for SASL authentication
  279. ##
  280. zookeeperPassword: ""
  281. ## @param auth.sasl.jaas.existingSecret Name of the existing secret containing credentials for clientUsers, interBrokerUser and zookeeperUser
  282. ## Create this secret running the command below where SECRET_NAME is the name of the secret you want to create:
  283. ## kubectl create secret generic SECRET_NAME --from-literal=client-passwords=CLIENT_PASSWORD1,CLIENT_PASSWORD2 --from-literal=inter-broker-password=INTER_BROKER_PASSWORD --from-literal=zookeeper-password=ZOOKEEPER_PASSWORD
  284. ##
  285. existingSecret: ""
  286. ## TLS configuration
  287. ##
  288. tls:
  289. ## @param auth.tls.type Format to use for TLS certificates. Allowed types: `jks` and `pem`
  290. ##
  291. type: jks
  292. ## @param auth.tls.pemChainIncluded Flag to denote that the Certificate Authority (CA) certificates are bundled with the endpoint cert.
  293. ## Certificates must be in proper order, where the top certificate is the leaf and the bottom certificate is the top-most intermediate CA.
  294. ##
  295. pemChainIncluded: false
  296. ## @param auth.tls.existingSecrets Array existing secrets containing the TLS certificates for the Kafka brokers
  297. ## When using 'jks' format for certificates, each secret should contain a truststore and a keystore.
  298. ## Create these secrets following the steps below:
  299. ## 1) Generate your truststore and keystore files. Helpful script: https://raw.githubusercontent.com/confluentinc/confluent-platform-security-tools/master/kafka-generate-ssl.sh
  300. ## 2) Rename your truststore to `kafka.truststore.jks`.
  301. ## 3) Rename your keystores to `kafka-X.keystore.jks` where X is the ID of each Kafka broker.
  302. ## 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):
  303. ## kubectl create secret generic SECRET_NAME_0 --from-file=kafka.truststore.jks=./kafka.truststore.jks --from-file=kafka.keystore.jks=./kafka-0.keystore.jks
  304. ## kubectl create secret generic SECRET_NAME_1 --from-file=kafka.truststore.jks=./kafka.truststore.jks --from-file=kafka.keystore.jks=./kafka-1.keystore.jks
  305. ## ...
  306. ##
  307. ## When using 'pem' format for certificates, each secret should contain a public CA certificate, a public certificate and one private key.
  308. ## Create these secrets following the steps below:
  309. ## 1) Create a certificate key and signing request per Kafka broker, and sign the signing request with your CA
  310. ## 2) Rename your CA file to `kafka.ca.crt`.
  311. ## 3) Rename your certificates to `kafka-X.tls.crt` where X is the ID of each Kafka broker.
  312. ## 3) Rename your keys to `kafka-X.tls.key` where X is the ID of each Kafka broker.
  313. ## 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):
  314. ## kubectl create secret generic SECRET_NAME_0 --from-file=ca.crt=./kafka.ca.crt --from-file=tls.crt=./kafka-0.tls.crt --from-file=tls.key=./kafka-0.tls.key
  315. ## kubectl create secret generic SECRET_NAME_1 --from-file=ca.crt=./kafka.ca.crt --from-file=tls.crt=./kafka-1.tls.crt --from-file=tls.key=./kafka-1.tls.key
  316. ## ...
  317. ##
  318. existingSecrets: []
  319. ## @param auth.tls.autoGenerated Generate automatically self-signed TLS certificates for Kafka brokers. Currently only supported if `auth.tls.type` is `pem`
  320. ## Note: ignored when using 'jks' format or `auth.tls.existingSecrets` is not empty
  321. ##
  322. autoGenerated: false
  323. ## @param auth.tls.password Password to access the JKS files or PEM key when they are password-protected.
  324. ## Note: ignored when using 'existingSecret'.
  325. ##
  326. password: ""
  327. ## @param auth.tls.existingSecret Name of the secret containing the password to access the JKS files or PEM key when they are password-protected. (`key`: `password`)
  328. ##
  329. existingSecret: ""
  330. ## @param auth.tls.jksTruststoreSecret Name of the existing secret containing your truststore if truststore not existing or different from the ones in the `auth.tls.existingSecrets`
  331. ## Note: ignored when using 'pem' format for certificates.
  332. ##
  333. jksTruststoreSecret: ""
  334. ## @param auth.tls.jksKeystoreSAN The secret key from the `auth.tls.existingSecrets` containing the keystore with a SAN certificate
  335. ## The SAN certificate in it should be issued with Subject Alternative Names for all headless services:
  336. ## - kafka-0.kafka-headless.kafka.svc.cluster.local
  337. ## - kafka-1.kafka-headless.kafka.svc.cluster.local
  338. ## - kafka-2.kafka-headless.kafka.svc.cluster.local
  339. ## Note: ignored when using 'pem' format for certificates.
  340. ##
  341. jksKeystoreSAN: ""
  342. ## @param auth.tls.jksTruststore The secret key from the `auth.tls.existingSecrets` or `auth.tls.jksTruststoreSecret` containing the truststore
  343. ## Note: ignored when using 'pem' format for certificates.
  344. ##
  345. jksTruststore: ""
  346. ## @param auth.tls.endpointIdentificationAlgorithm The endpoint identification algorithm to validate server hostname using server certificate
  347. ## Disable server host name verification by setting it to an empty string.
  348. ## ref: https://docs.confluent.io/current/kafka/authentication_ssl.html#optional-settings
  349. ##
  350. endpointIdentificationAlgorithm: https
  351. ## Zookeeper client configuration for kafka brokers
  352. ##
  353. zookeeper:
  354. ## TLS configuration
  355. ##
  356. tls:
  357. ## @param auth.zookeeper.tls.enabled Enable TLS for Zookeeper client connections.
  358. ##
  359. enabled: false
  360. ## @param auth.zookeeper.tls.type Format to use for TLS certificates. Allowed types: `jks` and `pem`.
  361. ##
  362. type: jks
  363. ## @param auth.zookeeper.tls.verifyHostname Hostname validation.
  364. ##
  365. verifyHostname: true
  366. ## @param auth.zookeeper.tls.existingSecret Name of the existing secret containing the TLS certificates for ZooKeeper client communications.
  367. ##
  368. existingSecret: ""
  369. ## @param auth.zookeeper.tls.existingSecretKeystoreKey The secret key from the auth.zookeeper.tls.existingSecret containing the Keystore.
  370. ##
  371. existingSecretKeystoreKey: zookeeper.keystore.jks
  372. ## @param auth.zookeeper.tls.existingSecretTruststoreKey The secret key from the auth.zookeeper.tls.existingSecret containing the Truststore.
  373. ##
  374. existingSecretTruststoreKey: zookeeper.truststore.jks
  375. ## @param auth.zookeeper.tls.passwordsSecret Existing secret containing Keystore and Truststore passwords.
  376. ##
  377. passwordsSecret: ""
  378. ## @param auth.zookeeper.tls.passwordsSecretKeystoreKey The secret key from the auth.zookeeper.tls.passwordsSecret containing the password for the Keystore.
  379. ##
  380. passwordsSecretKeystoreKey: keystore-password
  381. ## @param auth.zookeeper.tls.passwordsSecretTruststoreKey The secret key from the auth.zookeeper.tls.passwordsSecret containing the password for the Truststore.
  382. ##
  383. passwordsSecretTruststoreKey: truststore-password
  384. ## @param listeners The address(es) the socket server listens on. Auto-calculated it's set to an empty array
  385. ## When it's set to an empty array, the listeners will be configured
  386. ## based on the authentication protocols (auth.clientProtocol, auth.externalClientProtocol and auth.interBrokerProtocol parameters)
  387. ##
  388. listeners: []
  389. ## @param advertisedListeners The address(es) (hostname:port) the broker will advertise to producers and consumers. Auto-calculated it's set to an empty array
  390. ## When it's set to an empty array, the advertised listeners will be configured
  391. ## based on the authentication protocols (auth.clientProtocol, auth.externalClientProtocol and auth.interBrokerProtocol parameters)
  392. ##
  393. advertisedListeners: []
  394. ## @param listenerSecurityProtocolMap The protocol->listener mapping. Auto-calculated it's set to nil
  395. ## When it's nil, the listeners will be configured based on the authentication protocols (auth.clientProtocol, auth.externalClientProtocol and auth.interBrokerProtocol parameters)
  396. ##
  397. listenerSecurityProtocolMap: ""
  398. ## @param allowPlaintextListener Allow to use the PLAINTEXT listener
  399. ##
  400. allowPlaintextListener: true
  401. ## @param interBrokerListenerName The listener that the brokers should communicate on
  402. ##
  403. interBrokerListenerName: INTERNAL
  404. ## @param command Override Kafka container command
  405. ##
  406. command:
  407. - /scripts/setup.sh
  408. ## @param args Override Kafka container arguments
  409. ##
  410. args: []
  411. ## @param extraEnvVars Extra environment variables to add to Kafka pods
  412. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/kafka#configuration
  413. ## e.g:
  414. ## extraEnvVars:
  415. ## - name: KAFKA_CFG_BACKGROUND_THREADS
  416. ## value: "10"
  417. ##
  418. extraEnvVars: []
  419. ## @param extraEnvVarsCM ConfigMap with extra environment variables
  420. ##
  421. extraEnvVarsCM: ""
  422. ## @param extraEnvVarsSecret Secret with extra environment variables
  423. ##
  424. extraEnvVarsSecret: ""
  425. ## @section Statefulset parameters
  426. ##
  427. ## @param replicaCount Number of Kafka nodes
  428. ##
  429. replicaCount: 1
  430. ## @param minBrokerId Minimal broker.id value, nodes increment their `broker.id` respectively
  431. ## Brokers increment their ID starting at this minimal value.
  432. ## E.g., with `minBrokerId=100` and 3 nodes, IDs will be 100, 101, 102 for brokers 0, 1, and 2, respectively.
  433. ##
  434. minBrokerId: 0
  435. ## @param brokerRackAssignment Set Broker Assignment for multi tenant environment Allowed values: `aws-az`
  436. ## ref: https://cwiki.apache.org/confluence/display/KAFKA/KIP-392%3A+Allow+consumers+to+fetch+from+closest+replica
  437. ##
  438. brokerRackAssignment: ""
  439. ## @param containerPorts.client Kafka client container port
  440. ## @param containerPorts.internal Kafka inter-broker container port
  441. ## @param containerPorts.external Kafka external container port
  442. ##
  443. containerPorts:
  444. client: 9092
  445. internal: 9093
  446. external: 9094
  447. ## Configure extra options for Kafka containers' liveness, readiness and startup probes
  448. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
  449. ## @param livenessProbe.enabled Enable livenessProbe on Kafka containers
  450. ## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  451. ## @param livenessProbe.periodSeconds Period seconds for livenessProbe
  452. ## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  453. ## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
  454. ## @param livenessProbe.successThreshold Success threshold for livenessProbe
  455. ##
  456. livenessProbe:
  457. enabled: true
  458. initialDelaySeconds: 10
  459. timeoutSeconds: 5
  460. failureThreshold: 3
  461. periodSeconds: 10
  462. successThreshold: 1
  463. ## @param readinessProbe.enabled Enable readinessProbe on Kafka containers
  464. ## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  465. ## @param readinessProbe.periodSeconds Period seconds for readinessProbe
  466. ## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  467. ## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
  468. ## @param readinessProbe.successThreshold Success threshold for readinessProbe
  469. ##
  470. readinessProbe:
  471. enabled: true
  472. initialDelaySeconds: 5
  473. failureThreshold: 6
  474. timeoutSeconds: 5
  475. periodSeconds: 10
  476. successThreshold: 1
  477. ## @param startupProbe.enabled Enable startupProbe on Kafka containers
  478. ## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  479. ## @param startupProbe.periodSeconds Period seconds for startupProbe
  480. ## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
  481. ## @param startupProbe.failureThreshold Failure threshold for startupProbe
  482. ## @param startupProbe.successThreshold Success threshold for startupProbe
  483. ##
  484. startupProbe:
  485. enabled: false
  486. initialDelaySeconds: 30
  487. periodSeconds: 10
  488. timeoutSeconds: 1
  489. failureThreshold: 15
  490. successThreshold: 1
  491. ## @param customLivenessProbe Custom livenessProbe that overrides the default one
  492. ##
  493. customLivenessProbe: {}
  494. ## @param customReadinessProbe Custom readinessProbe that overrides the default one
  495. ##
  496. customReadinessProbe: {}
  497. ## @param customStartupProbe Custom startupProbe that overrides the default one
  498. ##
  499. customStartupProbe: {}
  500. ## @param lifecycleHooks lifecycleHooks for the Kafka container to automate configuration before or after startup
  501. ##
  502. lifecycleHooks: {}
  503. ## Kafka resource requests and limits
  504. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  505. ## @param resources.limits The resources limits for the container
  506. ## @param resources.requests The requested resources for the container
  507. ##
  508. resources:
  509. limits: {}
  510. requests: {}
  511. ## Kafka pods' Security Context
  512. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  513. ## @param podSecurityContext.enabled Enable security context for the pods
  514. ## @param podSecurityContext.fsGroup Set Kafka pod's Security Context fsGroup
  515. ##
  516. podSecurityContext:
  517. enabled: true
  518. fsGroup: 1001
  519. ## Kafka containers' Security Context
  520. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  521. ## @param containerSecurityContext.enabled Enable Kafka containers' Security Context
  522. ## @param containerSecurityContext.runAsUser Set Kafka containers' Security Context runAsUser
  523. ## @param containerSecurityContext.runAsNonRoot Set Kafka containers' Security Context runAsNonRoot
  524. ## @param containerSecurityContext.allowPrivilegeEscalation Force the child process to be run as nonprivilege
  525. ## e.g:
  526. ## containerSecurityContext:
  527. ## enabled: true
  528. ## capabilities:
  529. ## drop: ["NET_RAW"]
  530. ## readOnlyRootFilesystem: true
  531. ##
  532. containerSecurityContext:
  533. enabled: true
  534. runAsUser: 1001
  535. runAsNonRoot: true
  536. allowPrivilegeEscalation: false
  537. ## @param hostAliases Kafka pods host aliases
  538. ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  539. ##
  540. hostAliases: []
  541. ## @param hostNetwork Specify if host network should be enabled for Kafka pods
  542. ##
  543. hostNetwork: false
  544. ## @param hostIPC Specify if host IPC should be enabled for Kafka pods
  545. ##
  546. hostIPC: false
  547. ## @param podLabels Extra labels for Kafka pods
  548. ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  549. ##
  550. podLabels: {}
  551. ## @param podAnnotations Extra annotations for Kafka pods
  552. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  553. ##
  554. podAnnotations: {}
  555. ## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  556. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  557. ##
  558. podAffinityPreset: ""
  559. ## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  560. ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  561. ##
  562. podAntiAffinityPreset: soft
  563. ## Node affinity preset
  564. ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  565. ##
  566. nodeAffinityPreset:
  567. ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  568. ##
  569. type: ""
  570. ## @param nodeAffinityPreset.key Node label key to match Ignored if `affinity` is set.
  571. ## E.g.
  572. ## key: "kubernetes.io/e2e-az-name"
  573. ##
  574. key: ""
  575. ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
  576. ## E.g.
  577. ## values:
  578. ## - e2e-az1
  579. ## - e2e-az2
  580. ##
  581. values: []
  582. ## @param affinity Affinity for pod assignment
  583. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  584. ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
  585. ##
  586. affinity: {}
  587. ## @param nodeSelector Node labels for pod assignment
  588. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  589. ##
  590. nodeSelector: {}
  591. ## @param tolerations Tolerations for pod assignment
  592. ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  593. ##
  594. tolerations: []
  595. ## @param topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
  596. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
  597. ##
  598. topologySpreadConstraints: []
  599. ## @param terminationGracePeriodSeconds Seconds the pod needs to gracefully terminate
  600. ## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution
  601. ##
  602. terminationGracePeriodSeconds: ""
  603. ## @param 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
  604. ## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
  605. ##
  606. podManagementPolicy: Parallel
  607. ## @param priorityClassName Name of the existing priority class to be used by kafka pods
  608. ## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  609. ##
  610. priorityClassName: ""
  611. ## @param schedulerName Name of the k8s scheduler (other than default)
  612. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  613. ##
  614. schedulerName: ""
  615. ## @param updateStrategy.type Kafka statefulset strategy type
  616. ## @param updateStrategy.rollingUpdate Kafka statefulset rolling update configuration parameters
  617. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  618. ##
  619. updateStrategy:
  620. type: RollingUpdate
  621. rollingUpdate: {}
  622. ## @param extraVolumes Optionally specify extra list of additional volumes for the Kafka pod(s)
  623. ## e.g:
  624. ## extraVolumes:
  625. ## - name: kafka-jaas
  626. ## secret:
  627. ## secretName: kafka-jaas
  628. ##
  629. extraVolumes: []
  630. ## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka container(s)
  631. ## extraVolumeMounts:
  632. ## - name: kafka-jaas
  633. ## mountPath: /bitnami/kafka/config/kafka_jaas.conf
  634. ## subPath: kafka_jaas.conf
  635. ##
  636. extraVolumeMounts: []
  637. ## @param sidecars Add additional sidecar containers to the Kafka pod(s)
  638. ## e.g:
  639. ## sidecars:
  640. ## - name: your-image-name
  641. ## image: your-image
  642. ## imagePullPolicy: Always
  643. ## ports:
  644. ## - name: portname
  645. ## containerPort: 1234
  646. ##
  647. sidecars: []
  648. ## @param initContainers Add additional Add init containers to the Kafka pod(s)
  649. ## e.g:
  650. ## initContainers:
  651. ## - name: your-image-name
  652. ## image: your-image
  653. ## imagePullPolicy: Always
  654. ## ports:
  655. ## - name: portname
  656. ## containerPort: 1234
  657. ##
  658. initContainers: []
  659. ## Kafka Pod Disruption Budget
  660. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  661. ## @param pdb.create Deploy a pdb object for the Kafka pod
  662. ## @param pdb.minAvailable Maximum number/percentage of unavailable Kafka replicas
  663. ## @param pdb.maxUnavailable Maximum number/percentage of unavailable Kafka replicas
  664. ##
  665. pdb:
  666. create: false
  667. minAvailable: ""
  668. maxUnavailable: 1
  669. ## @section Traffic Exposure parameters
  670. ##
  671. ## Service parameters
  672. ##
  673. service:
  674. ## @param service.type Kubernetes Service type
  675. ##
  676. type: ClusterIP
  677. ## @param service.ports.client Kafka svc port for client connections
  678. ## @param service.ports.internal Kafka svc port for inter-broker connections
  679. ## @param service.ports.external Kafka svc port for external connections
  680. ##
  681. ports:
  682. client: 9092
  683. internal: 9093
  684. external: 9094
  685. ## @param service.nodePorts.client Node port for the Kafka client connections
  686. ## @param service.nodePorts.external Node port for the Kafka external connections
  687. ## NOTE: choose port between <30000-32767>
  688. ##
  689. nodePorts:
  690. client: ""
  691. external: ""
  692. ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
  693. ## Values: ClientIP or None
  694. ## ref: https://kubernetes.io/docs/user-guide/services/
  695. ##
  696. sessionAffinity: None
  697. ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
  698. ## sessionAffinityConfig:
  699. ## clientIP:
  700. ## timeoutSeconds: 300
  701. ##
  702. sessionAffinityConfig: {}
  703. ## @param service.clusterIP Kafka service Cluster IP
  704. ## e.g.:
  705. ## clusterIP: None
  706. ##
  707. clusterIP: ""
  708. ## @param service.loadBalancerIP Kafka service Load Balancer IP
  709. ## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
  710. ##
  711. loadBalancerIP: ""
  712. ## @param service.loadBalancerSourceRanges Kafka service Load Balancer sources
  713. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  714. ## e.g:
  715. ## loadBalancerSourceRanges:
  716. ## - 10.10.10.0/24
  717. ##
  718. loadBalancerSourceRanges: []
  719. ## @param service.externalTrafficPolicy Kafka service external traffic policy
  720. ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  721. ##
  722. externalTrafficPolicy: Cluster
  723. ## @param service.annotations Additional custom annotations for Kafka service
  724. ##
  725. annotations: {}
  726. ## Headless service properties
  727. ##
  728. headless:
  729. ## @param service.headless.publishNotReadyAddresses Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready
  730. ## ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/
  731. ##
  732. publishNotReadyAddresses: false
  733. ## @param service.headless.annotations Annotations for the headless service.
  734. ##
  735. annotations: {}
  736. ## @param service.headless.labels Labels for the headless service.
  737. ##
  738. labels: {}
  739. ## @param service.extraPorts Extra ports to expose in the Kafka service (normally used with the `sidecar` value)
  740. ##
  741. extraPorts: []
  742. ## External Access to Kafka brokers configuration
  743. ##
  744. externalAccess:
  745. ## @param externalAccess.enabled Enable Kubernetes external cluster access to Kafka brokers
  746. ##
  747. enabled: false
  748. ## External IPs auto-discovery configuration
  749. ## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
  750. ## Note: RBAC might be required
  751. ##
  752. autoDiscovery:
  753. ## @param externalAccess.autoDiscovery.enabled Enable using an init container to auto-detect external IPs/ports by querying the K8s API
  754. ##
  755. enabled: false
  756. ## Bitnami Kubectl image
  757. ## ref: https://hub.docker.com/r/bitnami/kubectl/tags/
  758. ## @param externalAccess.autoDiscovery.image.registry Init container auto-discovery image registry
  759. ## @param externalAccess.autoDiscovery.image.repository Init container auto-discovery image repository
  760. ## @param externalAccess.autoDiscovery.image.tag Init container auto-discovery image tag (immutable tags are recommended)
  761. ## @param externalAccess.autoDiscovery.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  762. ## @param externalAccess.autoDiscovery.image.pullPolicy Init container auto-discovery image pull policy
  763. ## @param externalAccess.autoDiscovery.image.pullSecrets Init container auto-discovery image pull secrets
  764. ##
  765. image:
  766. registry: docker.io
  767. repository: bitnami/kubectl
  768. tag: 1.25.6-debian-11-r11
  769. digest: ""
  770. ## Specify a imagePullPolicy
  771. ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  772. ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  773. ##
  774. pullPolicy: IfNotPresent
  775. ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
  776. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  777. ## e.g:
  778. ## pullSecrets:
  779. ## - myRegistryKeySecretName
  780. ##
  781. pullSecrets: []
  782. ## Init Container resource requests and limits
  783. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  784. ## @param externalAccess.autoDiscovery.resources.limits The resources limits for the auto-discovery init container
  785. ## @param externalAccess.autoDiscovery.resources.requests The requested resources for the auto-discovery init container
  786. ##
  787. resources:
  788. limits: {}
  789. requests: {}
  790. ## Parameters to configure K8s service(s) used to externally access Kafka brokers
  791. ## Note: A new service per broker will be created
  792. ##
  793. service:
  794. ## @param externalAccess.service.type Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP
  795. ##
  796. type: LoadBalancer
  797. ## @param externalAccess.service.ports.external Kafka port used for external access when service type is LoadBalancer
  798. ##
  799. ports:
  800. external: 9094
  801. ## @param externalAccess.service.loadBalancerIPs Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount
  802. ## e.g:
  803. ## loadBalancerIPs:
  804. ## - X.X.X.X
  805. ## - Y.Y.Y.Y
  806. ##
  807. loadBalancerIPs: []
  808. ## @param externalAccess.service.loadBalancerNames Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount
  809. ## e.g:
  810. ## loadBalancerNames:
  811. ## - broker1.external.example.com
  812. ## - broker2.external.example.com
  813. ##
  814. loadBalancerNames: []
  815. ## @param externalAccess.service.loadBalancerAnnotations Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount
  816. ## e.g:
  817. ## loadBalancerAnnotations:
  818. ## - external-dns.alpha.kubernetes.io/hostname: broker1.external.example.com.
  819. ## - external-dns.alpha.kubernetes.io/hostname: broker2.external.example.com.
  820. ##
  821. loadBalancerAnnotations: []
  822. ## @param externalAccess.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
  823. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  824. ## e.g:
  825. ## loadBalancerSourceRanges:
  826. ## - 10.10.10.0/24
  827. ##
  828. loadBalancerSourceRanges: []
  829. ## @param externalAccess.service.nodePorts Array of node ports used for each Kafka broker. Length must be the same as replicaCount
  830. ## e.g:
  831. ## nodePorts:
  832. ## - 30001
  833. ## - 30002
  834. ##
  835. nodePorts: []
  836. ## @param externalAccess.service.useHostIPs Use service host IPs to configure Kafka external listener when service type is NodePort
  837. ##
  838. useHostIPs: false
  839. ## @param externalAccess.service.usePodIPs using the MY_POD_IP address for external access.
  840. ##
  841. usePodIPs: false
  842. ## @param externalAccess.service.domain Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP
  843. ## NodePort: If not specified, the container will try to get the kubernetes node external IP
  844. ## ClusterIP: Must be specified, ingress IP or domain where tcp for external ports is configured
  845. ##
  846. domain: ""
  847. ## @param externalAccess.service.publishNotReadyAddresses Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready
  848. ## ref: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/
  849. ##
  850. publishNotReadyAddresses: false
  851. ## @param externalAccess.service.labels Service labels for external access
  852. ##
  853. labels: {}
  854. ## @param externalAccess.service.annotations Service annotations for external access
  855. ##
  856. annotations: {}
  857. ## @param externalAccess.service.extraPorts Extra ports to expose in the Kafka external service
  858. ##
  859. extraPorts: []
  860. ## Network policies
  861. ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
  862. ##
  863. networkPolicy:
  864. ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
  865. ##
  866. enabled: false
  867. ## @param networkPolicy.allowExternal Don't require client label for connections
  868. ## When set to false, only pods with the correct client label will have network access to the port Kafka is
  869. ## listening on. When true, zookeeper accept connections from any source (with the correct destination port).
  870. ##
  871. allowExternal: true
  872. ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed
  873. ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
  874. ## and that match other criteria, the ones that have the good label, can reach the kafka.
  875. ## But sometimes, we want the kafka to be accessible to clients from other namespaces, in this case, we can use this
  876. ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
  877. ##
  878. ## e.g:
  879. ## explicitNamespacesSelector:
  880. ## matchLabels:
  881. ## role: frontend
  882. ## matchExpressions:
  883. ## - {key: role, operator: In, values: [frontend]}
  884. ##
  885. explicitNamespacesSelector: {}
  886. ## @param networkPolicy.externalAccess.from customize the from section for External Access on tcp-external port
  887. ## e.g:
  888. ## - ipBlock:
  889. ## cidr: 172.9.0.0/16
  890. ## except:
  891. ## - 172.9.1.0/24
  892. ##
  893. externalAccess:
  894. from: []
  895. ## @param networkPolicy.egressRules.customRules [object] Custom network policy rule
  896. ##
  897. egressRules:
  898. ## Additional custom egress rules
  899. ## e.g:
  900. ## customRules:
  901. ## - to:
  902. ## - namespaceSelector:
  903. ## matchLabels:
  904. ## label: example
  905. ##
  906. customRules: []
  907. ## @section Persistence parameters
  908. ##
  909. ## Enable persistence using Persistent Volume Claims
  910. ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
  911. ##
  912. persistence:
  913. ## @param persistence.enabled Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected
  914. ##
  915. enabled: true
  916. ## @param persistence.existingClaim A manually managed Persistent Volume and Claim
  917. ## If defined, PVC must be created manually before volume will be bound
  918. ## The value is evaluated as a template
  919. ##
  920. existingClaim: ""
  921. ## @param persistence.storageClass PVC Storage Class for Kafka data volume
  922. ## If defined, storageClassName: <storageClass>
  923. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  924. ## If undefined (the default) or set to null, no storageClassName spec is
  925. ## set, choosing the default provisioner.
  926. ##
  927. storageClass: ""
  928. ## @param persistence.accessModes Persistent Volume Access Modes
  929. ##
  930. accessModes:
  931. - ReadWriteOnce
  932. ## @param persistence.size PVC Storage Request for Kafka data volume
  933. ##
  934. size: 8Gi
  935. ## @param persistence.annotations Annotations for the PVC
  936. ##
  937. annotations: {}
  938. ## @param persistence.labels Labels for the PVC
  939. ##
  940. labels: {}
  941. ## @param 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
  942. ## selector:
  943. ## matchLabels:
  944. ## app: my-app
  945. ##
  946. selector: {}
  947. ## @param persistence.mountPath Mount path of the Kafka data volume
  948. ##
  949. mountPath: /bitnami/kafka
  950. ## Log Persistence parameters
  951. ##
  952. logPersistence:
  953. ## @param logPersistence.enabled Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected
  954. ##
  955. enabled: false
  956. ## @param logPersistence.existingClaim A manually managed Persistent Volume and Claim
  957. ## If defined, PVC must be created manually before volume will be bound
  958. ## The value is evaluated as a template
  959. ##
  960. existingClaim: ""
  961. ## @param logPersistence.storageClass PVC Storage Class for Kafka logs volume
  962. ## If defined, storageClassName: <storageClass>
  963. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  964. ## If undefined (the default) or set to null, no storageClassName spec is
  965. ## set, choosing the default provisioner.
  966. ##
  967. storageClass: ""
  968. ## @param logPersistence.accessModes Persistent Volume Access Modes
  969. ##
  970. accessModes:
  971. - ReadWriteOnce
  972. ## @param logPersistence.size PVC Storage Request for Kafka logs volume
  973. ##
  974. size: 8Gi
  975. ## @param logPersistence.annotations Annotations for the PVC
  976. ##
  977. annotations: {}
  978. ## @param 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
  979. ## selector:
  980. ## matchLabels:
  981. ## app: my-app
  982. ##
  983. selector: {}
  984. ## @param logPersistence.mountPath Mount path of the Kafka logs volume
  985. ##
  986. mountPath: /opt/bitnami/kafka/logs
  987. ## @section Volume Permissions parameters
  988. ##
  989. ## Init containers parameters:
  990. ## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
  991. ##
  992. volumePermissions:
  993. ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
  994. ##
  995. enabled: false
  996. ## @param volumePermissions.image.registry Init container volume-permissions image registry
  997. ## @param volumePermissions.image.repository Init container volume-permissions image repository
  998. ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
  999. ## @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
  1000. ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
  1001. ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
  1002. ##
  1003. image:
  1004. registry: docker.io
  1005. repository: bitnami/bitnami-shell
  1006. tag: 11-debian-11-r87
  1007. digest: ""
  1008. pullPolicy: IfNotPresent
  1009. ## Optionally specify an array of imagePullSecrets.
  1010. ## Secrets must be manually created in the namespace.
  1011. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  1012. ## Example:
  1013. ## pullSecrets:
  1014. ## - myRegistryKeySecretName
  1015. ##
  1016. pullSecrets: []
  1017. ## Init container resource requests and limits
  1018. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  1019. ## @param volumePermissions.resources.limits Init container volume-permissions resource limits
  1020. ## @param volumePermissions.resources.requests Init container volume-permissions resource requests
  1021. ##
  1022. resources:
  1023. limits: {}
  1024. requests: {}
  1025. ## Init container' Security Context
  1026. ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
  1027. ## and not the below volumePermissions.containerSecurityContext.runAsUser
  1028. ## @param volumePermissions.containerSecurityContext.runAsUser User ID for the init container
  1029. ##
  1030. containerSecurityContext:
  1031. runAsUser: 0
  1032. ## @section Other Parameters
  1033. ##
  1034. ## ServiceAccount for Kafka
  1035. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  1036. ##
  1037. serviceAccount:
  1038. ## @param serviceAccount.create Enable creation of ServiceAccount for Kafka pods
  1039. ##
  1040. create: true
  1041. ## @param serviceAccount.name The name of the service account to use. If not set and `create` is `true`, a name is generated
  1042. ## If not set and create is true, a name is generated using the kafka.serviceAccountName template
  1043. ##
  1044. name: ""
  1045. ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
  1046. ## Can be set to false if pods using this serviceAccount do not need to use K8s API
  1047. ##
  1048. automountServiceAccountToken: true
  1049. ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
  1050. ##
  1051. annotations: {}
  1052. ## Role Based Access Control
  1053. ## ref: https://kubernetes.io/docs/admin/authorization/rbac/
  1054. ##
  1055. rbac:
  1056. ## @param rbac.create Whether to create & use RBAC resources or not
  1057. ## binding Kafka ServiceAccount to a role
  1058. ## that allows Kafka pods querying the K8s API
  1059. ##
  1060. create: false
  1061. ## @section Metrics parameters
  1062. ##
  1063. ## Prometheus Exporters / Metrics
  1064. ##
  1065. metrics:
  1066. ## Prometheus Kafka exporter: exposes complimentary metrics to JMX exporter
  1067. ##
  1068. kafka:
  1069. ## @param metrics.kafka.enabled Whether or not to create a standalone Kafka exporter to expose Kafka metrics
  1070. ##
  1071. enabled: false
  1072. ## Bitnami Kafka exporter image
  1073. ## ref: https://hub.docker.com/r/bitnami/kafka-exporter/tags/
  1074. ## @param metrics.kafka.image.registry Kafka exporter image registry
  1075. ## @param metrics.kafka.image.repository Kafka exporter image repository
  1076. ## @param metrics.kafka.image.tag Kafka exporter image tag (immutable tags are recommended)
  1077. ## @param metrics.kafka.image.digest Kafka exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  1078. ## @param metrics.kafka.image.pullPolicy Kafka exporter image pull policy
  1079. ## @param metrics.kafka.image.pullSecrets Specify docker-registry secret names as an array
  1080. ##
  1081. image:
  1082. registry: docker.io
  1083. repository: bitnami/kafka-exporter
  1084. tag: 1.6.0-debian-11-r62
  1085. digest: ""
  1086. ## Specify a imagePullPolicy
  1087. ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  1088. ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  1089. ##
  1090. pullPolicy: IfNotPresent
  1091. ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
  1092. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  1093. ## e.g:
  1094. ## pullSecrets:
  1095. ## - myRegistryKeySecretName
  1096. ##
  1097. pullSecrets: []
  1098. ## @param metrics.kafka.certificatesSecret Name of the existing secret containing the optional certificate and key files
  1099. ## for Kafka exporter client authentication
  1100. ##
  1101. certificatesSecret: ""
  1102. ## @param metrics.kafka.tlsCert The secret key from the certificatesSecret if 'client-cert' key different from the default (cert-file)
  1103. ##
  1104. tlsCert: cert-file
  1105. ## @param metrics.kafka.tlsKey The secret key from the certificatesSecret if 'client-key' key different from the default (key-file)
  1106. ##
  1107. tlsKey: key-file
  1108. ## @param metrics.kafka.tlsCaSecret Name of the existing secret containing the optional ca certificate for Kafka exporter client authentication
  1109. ##
  1110. tlsCaSecret: ""
  1111. ## @param metrics.kafka.tlsCaCert The secret key from the certificatesSecret or tlsCaSecret if 'ca-cert' key different from the default (ca-file)
  1112. ##
  1113. tlsCaCert: ca-file
  1114. ## @param metrics.kafka.extraFlags Extra flags to be passed to Kafka exporter
  1115. ## e.g:
  1116. ## extraFlags:
  1117. ## tls.insecure-skip-tls-verify: ""
  1118. ## web.telemetry-path: "/metrics"
  1119. ##
  1120. extraFlags: {}
  1121. ## @param metrics.kafka.command Override Kafka exporter container command
  1122. ##
  1123. command: []
  1124. ## @param metrics.kafka.args Override Kafka exporter container arguments
  1125. ##
  1126. args: []
  1127. ## @param metrics.kafka.containerPorts.metrics Kafka exporter metrics container port
  1128. ##
  1129. containerPorts:
  1130. metrics: 9308
  1131. ## Kafka exporter resource requests and limits
  1132. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  1133. ## @param metrics.kafka.resources.limits The resources limits for the container
  1134. ## @param metrics.kafka.resources.requests The requested resources for the container
  1135. ##
  1136. resources:
  1137. limits: {}
  1138. requests: {}
  1139. ## Kafka exporter pods' Security Context
  1140. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  1141. ## @param metrics.kafka.podSecurityContext.enabled Enable security context for the pods
  1142. ## @param metrics.kafka.podSecurityContext.fsGroup Set Kafka exporter pod's Security Context fsGroup
  1143. ##
  1144. podSecurityContext:
  1145. enabled: true
  1146. fsGroup: 1001
  1147. ## Kafka exporter containers' Security Context
  1148. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  1149. ## @param metrics.kafka.containerSecurityContext.enabled Enable Kafka exporter containers' Security Context
  1150. ## @param metrics.kafka.containerSecurityContext.runAsUser Set Kafka exporter containers' Security Context runAsUser
  1151. ## @param metrics.kafka.containerSecurityContext.runAsNonRoot Set Kafka exporter containers' Security Context runAsNonRoot
  1152. ## e.g:
  1153. ## containerSecurityContext:
  1154. ## enabled: true
  1155. ## capabilities:
  1156. ## drop: ["NET_RAW"]
  1157. ## readOnlyRootFilesystem: true
  1158. ##
  1159. containerSecurityContext:
  1160. enabled: true
  1161. runAsUser: 1001
  1162. runAsNonRoot: true
  1163. ## @param metrics.kafka.hostAliases Kafka exporter pods host aliases
  1164. ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  1165. ##
  1166. hostAliases: []
  1167. ## @param metrics.kafka.podLabels Extra labels for Kafka exporter pods
  1168. ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  1169. ##
  1170. podLabels: {}
  1171. ## @param metrics.kafka.podAnnotations Extra annotations for Kafka exporter pods
  1172. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  1173. ##
  1174. podAnnotations: {}
  1175. ## @param metrics.kafka.podAffinityPreset Pod affinity preset. Ignored if `metrics.kafka.affinity` is set. Allowed values: `soft` or `hard`
  1176. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  1177. ##
  1178. podAffinityPreset: ""
  1179. ## @param metrics.kafka.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `metrics.kafka.affinity` is set. Allowed values: `soft` or `hard`
  1180. ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  1181. ##
  1182. podAntiAffinityPreset: soft
  1183. ## Node metrics.kafka.affinity preset
  1184. ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  1185. ##
  1186. nodeAffinityPreset:
  1187. ## @param metrics.kafka.nodeAffinityPreset.type Node affinity preset type. Ignored if `metrics.kafka.affinity` is set. Allowed values: `soft` or `hard`
  1188. ##
  1189. type: ""
  1190. ## @param metrics.kafka.nodeAffinityPreset.key Node label key to match Ignored if `metrics.kafka.affinity` is set.
  1191. ## E.g.
  1192. ## key: "kubernetes.io/e2e-az-name"
  1193. ##
  1194. key: ""
  1195. ## @param metrics.kafka.nodeAffinityPreset.values Node label values to match. Ignored if `metrics.kafka.affinity` is set.
  1196. ## E.g.
  1197. ## values:
  1198. ## - e2e-az1
  1199. ## - e2e-az2
  1200. ##
  1201. values: []
  1202. ## @param metrics.kafka.affinity Affinity for pod assignment
  1203. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  1204. ## Note: metrics.kafka.podAffinityPreset, metrics.kafka.podAntiAffinityPreset, and metrics.kafka.nodeAffinityPreset will be ignored when it's set
  1205. ##
  1206. affinity: {}
  1207. ## @param metrics.kafka.nodeSelector Node labels for pod assignment
  1208. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  1209. ##
  1210. nodeSelector: {}
  1211. ## @param metrics.kafka.tolerations Tolerations for pod assignment
  1212. ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  1213. ##
  1214. tolerations: []
  1215. ## @param metrics.kafka.schedulerName Name of the k8s scheduler (other than default) for Kafka exporter
  1216. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  1217. ##
  1218. schedulerName: ""
  1219. ## @param metrics.kafka.priorityClassName Kafka exporter pods' priorityClassName
  1220. ##
  1221. priorityClassName: ""
  1222. ## @param metrics.kafka.topologySpreadConstraints Topology Spread Constraints for pod assignment
  1223. ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  1224. ## The value is evaluated as a template
  1225. ##
  1226. topologySpreadConstraints: []
  1227. ## @param metrics.kafka.extraVolumes Optionally specify extra list of additional volumes for the Kafka exporter pod(s)
  1228. ## e.g:
  1229. ## extraVolumes:
  1230. ## - name: kafka-jaas
  1231. ## secret:
  1232. ## secretName: kafka-jaas
  1233. ##
  1234. extraVolumes: []
  1235. ## @param metrics.kafka.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka exporter container(s)
  1236. ## extraVolumeMounts:
  1237. ## - name: kafka-jaas
  1238. ## mountPath: /bitnami/kafka/config/kafka_jaas.conf
  1239. ## subPath: kafka_jaas.conf
  1240. ##
  1241. extraVolumeMounts: []
  1242. ## @param metrics.kafka.sidecars Add additional sidecar containers to the Kafka exporter pod(s)
  1243. ## e.g:
  1244. ## sidecars:
  1245. ## - name: your-image-name
  1246. ## image: your-image
  1247. ## imagePullPolicy: Always
  1248. ## ports:
  1249. ## - name: portname
  1250. ## containerPort: 1234
  1251. ##
  1252. sidecars: []
  1253. ## @param metrics.kafka.initContainers Add init containers to the Kafka exporter pods
  1254. ## e.g:
  1255. ## initContainers:
  1256. ## - name: your-image-name
  1257. ## image: your-image
  1258. ## imagePullPolicy: Always
  1259. ## ports:
  1260. ## - name: portname
  1261. ## containerPort: 1234
  1262. ##
  1263. initContainers: []
  1264. ## Kafka exporter service configuration
  1265. ##
  1266. service:
  1267. ## @param metrics.kafka.service.ports.metrics Kafka exporter metrics service port
  1268. ##
  1269. ports:
  1270. metrics: 9308
  1271. ## @param metrics.kafka.service.clusterIP Static clusterIP or None for headless services
  1272. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
  1273. ##
  1274. clusterIP: ""
  1275. ## @param metrics.kafka.service.sessionAffinity Control where client requests go, to the same pod or round-robin
  1276. ## Values: ClientIP or None
  1277. ## ref: https://kubernetes.io/docs/user-guide/services/
  1278. ##
  1279. sessionAffinity: None
  1280. ## @param metrics.kafka.service.annotations [object] Annotations for the Kafka exporter service
  1281. ##
  1282. annotations:
  1283. prometheus.io/scrape: "true"
  1284. prometheus.io/port: "{{ .Values.metrics.kafka.service.ports.metrics }}"
  1285. prometheus.io/path: "/metrics"
  1286. ## Kafka exporter pods ServiceAccount
  1287. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  1288. ##
  1289. serviceAccount:
  1290. ## @param metrics.kafka.serviceAccount.create Enable creation of ServiceAccount for Kafka exporter pods
  1291. ##
  1292. create: true
  1293. ## @param metrics.kafka.serviceAccount.name The name of the service account to use. If not set and `create` is `true`, a name is generated
  1294. ## If not set and create is true, a name is generated using the kafka.metrics.kafka.serviceAccountName template
  1295. ##
  1296. name: ""
  1297. ## @param metrics.kafka.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
  1298. ## Can be set to false if pods using this serviceAccount do not need to use K8s API
  1299. ##
  1300. automountServiceAccountToken: true
  1301. ## Prometheus JMX exporter: exposes the majority of Kafkas metrics
  1302. ##
  1303. jmx:
  1304. ## @param metrics.jmx.enabled Whether or not to expose JMX metrics to Prometheus
  1305. ##
  1306. enabled: false
  1307. ## Bitnami JMX exporter image
  1308. ## ref: https://hub.docker.com/r/bitnami/jmx-exporter/tags/
  1309. ## @param metrics.jmx.image.registry JMX exporter image registry
  1310. ## @param metrics.jmx.image.repository JMX exporter image repository
  1311. ## @param metrics.jmx.image.tag JMX exporter image tag (immutable tags are recommended)
  1312. ## @param metrics.jmx.image.digest JMX exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  1313. ## @param metrics.jmx.image.pullPolicy JMX exporter image pull policy
  1314. ## @param metrics.jmx.image.pullSecrets Specify docker-registry secret names as an array
  1315. ##
  1316. image:
  1317. registry: docker.io
  1318. repository: bitnami/jmx-exporter
  1319. tag: 0.17.2-debian-11-r51
  1320. digest: ""
  1321. ## Specify a imagePullPolicy
  1322. ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  1323. ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  1324. ##
  1325. pullPolicy: IfNotPresent
  1326. ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
  1327. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  1328. ## e.g:
  1329. ## pullSecrets:
  1330. ## - myRegistryKeySecretName
  1331. ##
  1332. pullSecrets: []
  1333. ## Prometheus JMX exporter containers' Security Context
  1334. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  1335. ## @param metrics.jmx.containerSecurityContext.enabled Enable Prometheus JMX exporter containers' Security Context
  1336. ## @param metrics.jmx.containerSecurityContext.runAsUser Set Prometheus JMX exporter containers' Security Context runAsUser
  1337. ## @param metrics.jmx.containerSecurityContext.runAsNonRoot Set Prometheus JMX exporter containers' Security Context runAsNonRoot
  1338. ## e.g:
  1339. ## containerSecurityContext:
  1340. ## enabled: true
  1341. ## capabilities:
  1342. ## drop: ["NET_RAW"]
  1343. ## readOnlyRootFilesystem: true
  1344. ##
  1345. containerSecurityContext:
  1346. enabled: true
  1347. runAsUser: 1001
  1348. runAsNonRoot: true
  1349. ## @param metrics.jmx.containerPorts.metrics Prometheus JMX exporter metrics container port
  1350. ##
  1351. containerPorts:
  1352. metrics: 5556
  1353. ## Prometheus JMX exporter resource requests and limits
  1354. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  1355. ## @param metrics.jmx.resources.limits The resources limits for the JMX exporter container
  1356. ## @param metrics.jmx.resources.requests The requested resources for the JMX exporter container
  1357. ##
  1358. resources:
  1359. limits: {}
  1360. requests: {}
  1361. ## Prometheus JMX exporter service configuration
  1362. ##
  1363. service:
  1364. ## @param metrics.jmx.service.ports.metrics Prometheus JMX exporter metrics service port
  1365. ##
  1366. ports:
  1367. metrics: 5556
  1368. ## @param metrics.jmx.service.clusterIP Static clusterIP or None for headless services
  1369. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
  1370. ##
  1371. clusterIP: ""
  1372. ## @param metrics.jmx.service.sessionAffinity Control where client requests go, to the same pod or round-robin
  1373. ## Values: ClientIP or None
  1374. ## ref: https://kubernetes.io/docs/user-guide/services/
  1375. ##
  1376. sessionAffinity: None
  1377. ## @param metrics.jmx.service.annotations [object] Annotations for the Prometheus JMX exporter service
  1378. ##
  1379. annotations:
  1380. prometheus.io/scrape: "true"
  1381. prometheus.io/port: "{{ .Values.metrics.jmx.service.ports.metrics }}"
  1382. prometheus.io/path: "/"
  1383. ## @param metrics.jmx.whitelistObjectNames Allows setting which JMX objects you want to expose to via JMX stats to JMX exporter
  1384. ## Only whitelisted values will be exposed via JMX exporter. They must also be exposed via Rules. To expose all metrics
  1385. ## (warning its crazy excessive and they aren't formatted in a prometheus style) (1) `whitelistObjectNames: []`
  1386. ## (2) commented out above `overrideConfig`.
  1387. ##
  1388. whitelistObjectNames:
  1389. - kafka.controller:*
  1390. - kafka.server:*
  1391. - java.lang:*
  1392. - kafka.network:*
  1393. - kafka.log:*
  1394. ## @param metrics.jmx.config [string] Configuration file for JMX exporter
  1395. ## Specify content for jmx-kafka-prometheus.yml. Evaluated as a template
  1396. ##
  1397. ## Credits to the incubator/kafka chart for the JMX configuration.
  1398. ## https://github.com/helm/charts/tree/master/incubator/kafka
  1399. ##
  1400. config: |-
  1401. jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:5555/jmxrmi
  1402. lowercaseOutputName: true
  1403. lowercaseOutputLabelNames: true
  1404. ssl: false
  1405. {{- if .Values.metrics.jmx.whitelistObjectNames }}
  1406. whitelistObjectNames: ["{{ join "\",\"" .Values.metrics.jmx.whitelistObjectNames }}"]
  1407. {{- end }}
  1408. ## @param metrics.jmx.existingConfigmap Name of existing ConfigMap with JMX exporter configuration
  1409. ## NOTE: This will override metrics.jmx.config
  1410. ##
  1411. existingConfigmap: ""
  1412. ## @param metrics.jmx.extraRules Add extra rules to JMX exporter configuration
  1413. ## e.g:
  1414. ## extraRules: |-
  1415. ## - pattern: kafka.server<type=socket-server-metrics, listener=(.+), networkProcessor=(.+)><>(connection-count)
  1416. ## name: kafka_server_socket_server_metrics_$3
  1417. ## labels:
  1418. ## listener: $1
  1419. ##
  1420. extraRules: ""
  1421. ## Prometheus Operator ServiceMonitor configuration
  1422. ##
  1423. serviceMonitor:
  1424. ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (requires `metrics.kafka.enabled` or `metrics.jmx.enabled` to be `true`)
  1425. ##
  1426. enabled: false
  1427. ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
  1428. ##
  1429. namespace: ""
  1430. ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
  1431. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
  1432. ##
  1433. interval: ""
  1434. ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
  1435. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
  1436. ##
  1437. scrapeTimeout: ""
  1438. ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
  1439. ##
  1440. labels: {}
  1441. ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
  1442. ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
  1443. ##
  1444. selector: {}
  1445. ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
  1446. ##
  1447. relabelings: []
  1448. ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
  1449. ##
  1450. metricRelabelings: []
  1451. ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
  1452. ##
  1453. honorLabels: false
  1454. ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
  1455. ##
  1456. jobLabel: ""
  1457. prometheusRule:
  1458. ## @param metrics.prometheusRule.enabled if `true`, creates a Prometheus Operator PrometheusRule (requires `metrics.kafka.enabled` or `metrics.jmx.enabled` to be `true`)
  1459. ##
  1460. enabled: false
  1461. ## @param metrics.prometheusRule.namespace Namespace in which Prometheus is running
  1462. ##
  1463. namespace: ""
  1464. ## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
  1465. ##
  1466. labels: {}
  1467. ## @param metrics.prometheusRule.groups Prometheus Rule Groups for Kafka
  1468. ##
  1469. groups: []
  1470. ## @section Kafka provisioning parameters
  1471. ##
  1472. ## Kafka provisioning
  1473. ##
  1474. provisioning:
  1475. ## @param provisioning.enabled Enable kafka provisioning Job
  1476. ##
  1477. enabled: false
  1478. ## @param provisioning.numPartitions Default number of partitions for topics when unspecified
  1479. ##
  1480. numPartitions: 1
  1481. ## @param provisioning.replicationFactor Default replication factor for topics when unspecified
  1482. ##
  1483. replicationFactor: 1
  1484. ## @param provisioning.topics Kafka topics to provision
  1485. ## - name: topic-name
  1486. ## partitions: 1
  1487. ## replicationFactor: 1
  1488. ## ## https://kafka.apache.org/documentation/#topicconfigs
  1489. ## config:
  1490. ## max.message.bytes: 64000
  1491. ## flush.messages: 1
  1492. ##
  1493. topics: []
  1494. ## @param provisioning.nodeSelector Node labels for pod assignment
  1495. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  1496. ##
  1497. nodeSelector: {}
  1498. ## @param provisioning.tolerations Tolerations for pod assignment
  1499. ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  1500. ##
  1501. tolerations: []
  1502. ## @param provisioning.extraProvisioningCommands Extra commands to run to provision cluster resources
  1503. ## - echo "Allow user to consume from any topic"
  1504. ## - >-
  1505. ## /opt/bitnami/kafka/bin/kafka-acls.sh
  1506. ## --bootstrap-server $KAFKA_SERVICE
  1507. ## --command-config $CLIENT_CONF
  1508. ## --add
  1509. ## --allow-principal User:user
  1510. ## --consumer --topic '*'
  1511. ## - "/opt/bitnami/kafka/bin/kafka-acls.sh
  1512. ## --bootstrap-server $KAFKA_SERVICE
  1513. ## --command-config $CLIENT_CONF
  1514. ## --list"
  1515. ##
  1516. extraProvisioningCommands: []
  1517. ## @param provisioning.parallel Number of provisioning commands to run at the same time
  1518. ##
  1519. parallel: 1
  1520. ## @param provisioning.preScript Extra bash script to run before topic provisioning. $CLIENT_CONF is path to properties file with most needed configurations
  1521. ##
  1522. preScript: ""
  1523. ## @param provisioning.postScript Extra bash script to run after topic provisioning. $CLIENT_CONF is path to properties file with most needed configurations
  1524. ##
  1525. postScript: ""
  1526. ## Auth Configuration for kafka provisioning Job
  1527. ##
  1528. auth:
  1529. ## TLS configuration for kafka provisioning Job
  1530. ##
  1531. tls:
  1532. ## @param provisioning.auth.tls.type Format to use for TLS certificates. Allowed types: `jks` and `pem`.
  1533. ## Note: ignored if auth.tls.clientProtocol different from one of these values: "tls" "mtls" "sasl_tls".
  1534. ##
  1535. type: jks
  1536. ## @param provisioning.auth.tls.certificatesSecret Existing secret containing the TLS certificates for the Kafka provisioning Job.
  1537. ## When using 'jks' format for certificates, the secret should contain a truststore and a keystore.
  1538. ## When using 'pem' format for certificates, the secret should contain a public CA certificate, a public certificate and one private key.
  1539. ##
  1540. certificatesSecret: ""
  1541. ## @param provisioning.auth.tls.cert The secret key from the certificatesSecret if 'cert' key different from the default (tls.crt)
  1542. ##
  1543. cert: tls.crt
  1544. ## @param provisioning.auth.tls.key The secret key from the certificatesSecret if 'key' key different from the default (tls.key)
  1545. ##
  1546. key: tls.key
  1547. ## @param provisioning.auth.tls.caCert The secret key from the certificatesSecret if 'caCert' key different from the default (ca.crt)
  1548. ##
  1549. caCert: ca.crt
  1550. ## @param provisioning.auth.tls.keystore The secret key from the certificatesSecret if 'keystore' key different from the default (keystore.jks)
  1551. ##
  1552. keystore: keystore.jks
  1553. ## @param provisioning.auth.tls.truststore The secret key from the certificatesSecret if 'truststore' key different from the default (truststore.jks)
  1554. ##
  1555. truststore: truststore.jks
  1556. ## @param provisioning.auth.tls.passwordsSecret Name of the secret containing passwords to access the JKS files or PEM key when they are password-protected.
  1557. ## It should contain two keys called "keystore-password" and "truststore-password", or "key-password" if using a password-protected PEM key.
  1558. ##
  1559. passwordsSecret: ""
  1560. ## @param provisioning.auth.tls.keyPasswordSecretKey The secret key from the passwordsSecret if 'keyPasswordSecretKey' key different from the default (key-password)
  1561. ## Note: must not be used if `passwordsSecret` is not defined.
  1562. ##
  1563. keyPasswordSecretKey: key-password
  1564. ## @param provisioning.auth.tls.keystorePasswordSecretKey The secret key from the passwordsSecret if 'keystorePasswordSecretKey' key different from the default (keystore-password)
  1565. ## Note: must not be used if `passwordsSecret` is not defined.
  1566. ##
  1567. keystorePasswordSecretKey: keystore-password
  1568. ## @param provisioning.auth.tls.truststorePasswordSecretKey The secret key from the passwordsSecret if 'truststorePasswordSecretKey' key different from the default (truststore-password)
  1569. ## Note: must not be used if `passwordsSecret` is not defined.
  1570. ##
  1571. truststorePasswordSecretKey: truststore-password
  1572. ## @param provisioning.auth.tls.keyPassword Password to access the password-protected PEM key if necessary. Ignored if 'passwordsSecret' is provided.
  1573. ##
  1574. keyPassword: ""
  1575. ## @param provisioning.auth.tls.keystorePassword Password to access the JKS keystore. Ignored if 'passwordsSecret' is provided.
  1576. ##
  1577. keystorePassword: ""
  1578. ## @param provisioning.auth.tls.truststorePassword Password to access the JKS truststore. Ignored if 'passwordsSecret' is provided.
  1579. ##
  1580. truststorePassword: ""
  1581. ## @param provisioning.command Override provisioning container command
  1582. ##
  1583. command: []
  1584. ## @param provisioning.args Override provisioning container arguments
  1585. ##
  1586. args: []
  1587. ## @param provisioning.extraEnvVars Extra environment variables to add to the provisioning pod
  1588. ## e.g:
  1589. ## extraEnvVars:
  1590. ## - name: KAFKA_CFG_BACKGROUND_THREADS
  1591. ## value: "10"
  1592. ##
  1593. extraEnvVars: []
  1594. ## @param provisioning.extraEnvVarsCM ConfigMap with extra environment variables
  1595. ##
  1596. extraEnvVarsCM: ""
  1597. ## @param provisioning.extraEnvVarsSecret Secret with extra environment variables
  1598. ##
  1599. extraEnvVarsSecret: ""
  1600. ## @param provisioning.podAnnotations Extra annotations for Kafka provisioning pods
  1601. ##
  1602. podAnnotations: {}
  1603. ## @param provisioning.podLabels Extra labels for Kafka provisioning pods
  1604. ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  1605. ##
  1606. podLabels: {}
  1607. ## Kafka provisioning pods ServiceAccount
  1608. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  1609. ##
  1610. serviceAccount:
  1611. ## @param provisioning.serviceAccount.create Enable creation of ServiceAccount for Kafka provisioning pods
  1612. ##
  1613. create: false
  1614. ## @param provisioning.serviceAccount.name The name of the service account to use. If not set and `create` is `true`, a name is generated
  1615. ## If not set and create is true, a name is generated using the provisioning.serviceAccount.name template
  1616. ##
  1617. name: ""
  1618. ## @param provisioning.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
  1619. ## Can be set to false if pods using this serviceAccount do not need to use K8s API
  1620. ##
  1621. automountServiceAccountToken: true
  1622. ## Kafka provisioning resource requests and limits
  1623. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  1624. ## @param provisioning.resources.limits The resources limits for the Kafka provisioning container
  1625. ## @param provisioning.resources.requests The requested resources for the Kafka provisioning container
  1626. ##
  1627. resources:
  1628. limits: {}
  1629. requests: {}
  1630. ## Kafka provisioning pods' Security Context
  1631. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  1632. ## @param provisioning.podSecurityContext.enabled Enable security context for the pods
  1633. ## @param provisioning.podSecurityContext.fsGroup Set Kafka provisioning pod's Security Context fsGroup
  1634. ##
  1635. podSecurityContext:
  1636. enabled: true
  1637. fsGroup: 1001
  1638. ## Kafka provisioning containers' Security Context
  1639. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  1640. ## @param provisioning.containerSecurityContext.enabled Enable Kafka provisioning containers' Security Context
  1641. ## @param provisioning.containerSecurityContext.runAsUser Set Kafka provisioning containers' Security Context runAsUser
  1642. ## @param provisioning.containerSecurityContext.runAsNonRoot Set Kafka provisioning containers' Security Context runAsNonRoot
  1643. ## e.g:
  1644. ## containerSecurityContext:
  1645. ## enabled: true
  1646. ## capabilities:
  1647. ## drop: ["NET_RAW"]
  1648. ## readOnlyRootFilesystem: true
  1649. ##
  1650. containerSecurityContext:
  1651. enabled: true
  1652. runAsUser: 1001
  1653. runAsNonRoot: true
  1654. ## @param provisioning.schedulerName Name of the k8s scheduler (other than default) for kafka provisioning
  1655. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  1656. ##
  1657. schedulerName: ""
  1658. ## @param provisioning.extraVolumes Optionally specify extra list of additional volumes for the Kafka provisioning pod(s)
  1659. ## e.g:
  1660. ## extraVolumes:
  1661. ## - name: kafka-jaas
  1662. ## secret:
  1663. ## secretName: kafka-jaas
  1664. ##
  1665. extraVolumes: []
  1666. ## @param provisioning.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Kafka provisioning container(s)
  1667. ## extraVolumeMounts:
  1668. ## - name: kafka-jaas
  1669. ## mountPath: /bitnami/kafka/config/kafka_jaas.conf
  1670. ## subPath: kafka_jaas.conf
  1671. ##
  1672. extraVolumeMounts: []
  1673. ## @param provisioning.sidecars Add additional sidecar containers to the Kafka provisioning pod(s)
  1674. ## e.g:
  1675. ## sidecars:
  1676. ## - name: your-image-name
  1677. ## image: your-image
  1678. ## imagePullPolicy: Always
  1679. ## ports:
  1680. ## - name: portname
  1681. ## containerPort: 1234
  1682. ##
  1683. sidecars: []
  1684. ## @param provisioning.initContainers Add additional Add init containers to the Kafka provisioning pod(s)
  1685. ## e.g:
  1686. ## initContainers:
  1687. ## - name: your-image-name
  1688. ## image: your-image
  1689. ## imagePullPolicy: Always
  1690. ## ports:
  1691. ## - name: portname
  1692. ## containerPort: 1234
  1693. ##
  1694. initContainers: []
  1695. ## @param provisioning.waitForKafka If true use an init container to wait until kafka is ready before starting provisioning
  1696. ##
  1697. waitForKafka: true
  1698. ## @section ZooKeeper chart parameters
  1699. ##
  1700. ## ZooKeeper chart configuration
  1701. ## https://github.com/bitnami/charts/blob/main/bitnami/zookeeper/values.yaml
  1702. ##
  1703. zookeeper:
  1704. ## @param zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart
  1705. ##
  1706. enabled: true
  1707. ## @param zookeeper.replicaCount Number of ZooKeeper nodes
  1708. ##
  1709. replicaCount: 1
  1710. ## ZooKeeper authenticaiton
  1711. ##
  1712. auth:
  1713. client:
  1714. ## @param zookeeper.auth.client.enabled Enable ZooKeeper auth
  1715. ##
  1716. enabled: false
  1717. ## @param zookeeper.auth.client.clientUser User that will use ZooKeeper clients to auth
  1718. ##
  1719. clientUser: ""
  1720. ## @param zookeeper.auth.client.clientPassword Password that will use ZooKeeper clients to auth
  1721. ##
  1722. clientPassword: ""
  1723. ## @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"
  1724. ##
  1725. serverUsers: ""
  1726. ## @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"
  1727. ##
  1728. serverPasswords: ""
  1729. ## ZooKeeper Persistence parameters
  1730. ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
  1731. ## @param zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s)
  1732. ## @param zookeeper.persistence.storageClass Persistent Volume storage class
  1733. ## @param zookeeper.persistence.accessModes Persistent Volume access modes
  1734. ## @param zookeeper.persistence.size Persistent Volume size
  1735. ##
  1736. persistence:
  1737. enabled: true
  1738. storageClass: ""
  1739. accessModes:
  1740. - ReadWriteOnce
  1741. size: 8Gi
  1742. ## External Zookeeper Configuration
  1743. ## All of these values are only used if `zookeeper.enabled=false`
  1744. ##
  1745. externalZookeeper:
  1746. ## @param externalZookeeper.servers List of external zookeeper servers to use. Typically used in combination with 'zookeeperChrootPath'.
  1747. ##
  1748. servers: []