values.yaml 77 KB

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