mirror of
https://github.com/bitnami/charts.git
synced 2026-04-02 07:17:26 +08:00
[bitnami/kafka] feat: ✨ Add autoscaling support (experimental) (#24929)
* [bitnami/kafka] feat: ✨ Add autoscaling support (experimental) Signed-off-by: Javier Salmeron Garcia <jsalmeron@vmware.com> * chore: 🔧 Bump chart version Signed-off-by: Javier J. Salmerón-García <jsalmeron@vmware.com> --------- Signed-off-by: Javier Salmeron Garcia <jsalmeron@vmware.com> Signed-off-by: Javier J. Salmerón-García <jsalmeron@vmware.com>
This commit is contained in:
committed by
GitHub
parent
77c4c6f541
commit
e0c0d63020
@@ -42,4 +42,4 @@ maintainers:
|
|||||||
name: kafka
|
name: kafka
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/bitnami/charts/tree/main/bitnami/kafka
|
- https://github.com/bitnami/charts/tree/main/bitnami/kafka
|
||||||
version: 28.0.4
|
version: 28.1.0
|
||||||
|
|||||||
@@ -553,219 +553,251 @@ You can enable this initContainer by setting `volumePermissions.enabled` to `tru
|
|||||||
|
|
||||||
### Controller-eligible statefulset parameters
|
### Controller-eligible statefulset parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||||||
| `controller.replicaCount` | Number of Kafka controller-eligible nodes | `3` |
|
| `controller.replicaCount` | Number of Kafka controller-eligible nodes | `3` |
|
||||||
| `controller.controllerOnly` | If set to true, controller nodes will be deployed as dedicated controllers, instead of controller+broker processes. | `false` |
|
| `controller.controllerOnly` | If set to true, controller nodes will be deployed as dedicated controllers, instead of controller+broker processes. | `false` |
|
||||||
| `controller.minId` | Minimal node.id values for controller-eligible nodes. Do not change after first initialization. | `0` |
|
| `controller.minId` | Minimal node.id values for controller-eligible nodes. Do not change after first initialization. | `0` |
|
||||||
| `controller.zookeeperMigrationMode` | Set to true to deploy cluster controller quorum | `false` |
|
| `controller.zookeeperMigrationMode` | Set to true to deploy cluster controller quorum | `false` |
|
||||||
| `controller.config` | Configuration file for Kafka controller-eligible nodes, rendered as a template. Auto-generated based on chart values when not specified. | `""` |
|
| `controller.config` | Configuration file for Kafka controller-eligible nodes, rendered as a template. Auto-generated based on chart values when not specified. | `""` |
|
||||||
| `controller.existingConfigmap` | ConfigMap with Kafka Configuration for controller-eligible nodes. | `""` |
|
| `controller.existingConfigmap` | ConfigMap with Kafka Configuration for controller-eligible nodes. | `""` |
|
||||||
| `controller.extraConfig` | Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file. | `""` |
|
| `controller.extraConfig` | Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file. | `""` |
|
||||||
| `controller.secretConfig` | Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file. | `""` |
|
| `controller.secretConfig` | Additional configuration to be appended at the end of the generated Kafka controller-eligible nodes configuration file. | `""` |
|
||||||
| `controller.existingSecretConfig` | Secret with additonal configuration that will be appended to the end of the generated Kafka controller-eligible nodes configuration file | `""` |
|
| `controller.existingSecretConfig` | Secret with additonal configuration that will be appended to the end of the generated Kafka controller-eligible nodes configuration file | `""` |
|
||||||
| `controller.heapOpts` | Kafka Java Heap size for controller-eligible nodes | `-Xmx1024m -Xms1024m` |
|
| `controller.heapOpts` | Kafka Java Heap size for controller-eligible nodes | `-Xmx1024m -Xms1024m` |
|
||||||
| `controller.command` | Override Kafka container command | `[]` |
|
| `controller.command` | Override Kafka container command | `[]` |
|
||||||
| `controller.args` | Override Kafka container arguments | `[]` |
|
| `controller.args` | Override Kafka container arguments | `[]` |
|
||||||
| `controller.extraEnvVars` | Extra environment variables to add to Kafka pods | `[]` |
|
| `controller.extraEnvVars` | Extra environment variables to add to Kafka pods | `[]` |
|
||||||
| `controller.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
|
| `controller.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
|
||||||
| `controller.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
|
| `controller.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
|
||||||
| `controller.extraContainerPorts` | Kafka controller-eligible extra containerPorts. | `[]` |
|
| `controller.extraContainerPorts` | Kafka controller-eligible extra containerPorts. | `[]` |
|
||||||
| `controller.livenessProbe.enabled` | Enable livenessProbe on Kafka containers | `true` |
|
| `controller.livenessProbe.enabled` | Enable livenessProbe on Kafka containers | `true` |
|
||||||
| `controller.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
| `controller.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
||||||
| `controller.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
| `controller.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||||
| `controller.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
| `controller.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
||||||
| `controller.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
| `controller.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||||
| `controller.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
| `controller.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||||
| `controller.readinessProbe.enabled` | Enable readinessProbe on Kafka containers | `true` |
|
| `controller.readinessProbe.enabled` | Enable readinessProbe on Kafka containers | `true` |
|
||||||
| `controller.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
| `controller.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
||||||
| `controller.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
| `controller.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||||
| `controller.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
| `controller.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
||||||
| `controller.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
| `controller.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
||||||
| `controller.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
| `controller.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||||
| `controller.startupProbe.enabled` | Enable startupProbe on Kafka containers | `false` |
|
| `controller.startupProbe.enabled` | Enable startupProbe on Kafka containers | `false` |
|
||||||
| `controller.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
|
| `controller.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
|
||||||
| `controller.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
| `controller.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
||||||
| `controller.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
| `controller.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
||||||
| `controller.startupProbe.failureThreshold` | Failure threshold for startupProbe | `15` |
|
| `controller.startupProbe.failureThreshold` | Failure threshold for startupProbe | `15` |
|
||||||
| `controller.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
| `controller.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
||||||
| `controller.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
| `controller.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
||||||
| `controller.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
| `controller.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
||||||
| `controller.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
| `controller.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
||||||
| `controller.lifecycleHooks` | lifecycleHooks for the Kafka container to automate configuration before or after startup | `{}` |
|
| `controller.lifecycleHooks` | lifecycleHooks for the Kafka container to automate configuration before or after startup | `{}` |
|
||||||
| `controller.initContainerResources.limits` | The resources limits for the init container | `{}` |
|
| `controller.initContainerResources.limits` | The resources limits for the init container | `{}` |
|
||||||
| `controller.initContainerResources.requests` | The requested resources for the init container | `{}` |
|
| `controller.initContainerResources.requests` | The requested resources for the init container | `{}` |
|
||||||
| `controller.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if controller.resources is set (controller.resources is recommended for production). | `small` |
|
| `controller.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if controller.resources is set (controller.resources is recommended for production). | `small` |
|
||||||
| `controller.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
| `controller.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
||||||
| `controller.podSecurityContext.enabled` | Enable security context for the pods | `true` |
|
| `controller.podSecurityContext.enabled` | Enable security context for the pods | `true` |
|
||||||
| `controller.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
| `controller.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
||||||
| `controller.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
| `controller.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
||||||
| `controller.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
| `controller.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
||||||
| `controller.podSecurityContext.fsGroup` | Set Kafka pod's Security Context fsGroup | `1001` |
|
| `controller.podSecurityContext.fsGroup` | Set Kafka pod's Security Context fsGroup | `1001` |
|
||||||
| `controller.podSecurityContext.seccompProfile.type` | Set Kafka pods's Security Context seccomp profile | `RuntimeDefault` |
|
| `controller.podSecurityContext.seccompProfile.type` | Set Kafka pods's Security Context seccomp profile | `RuntimeDefault` |
|
||||||
| `controller.containerSecurityContext.enabled` | Enable Kafka containers' Security Context | `true` |
|
| `controller.containerSecurityContext.enabled` | Enable Kafka containers' Security Context | `true` |
|
||||||
| `controller.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
| `controller.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
||||||
| `controller.containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `1001` |
|
| `controller.containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `1001` |
|
||||||
| `controller.containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `1001` |
|
| `controller.containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `1001` |
|
||||||
| `controller.containerSecurityContext.runAsGroup` | Set Kafka containers' Security Context runAsGroup | `1001` |
|
| `controller.containerSecurityContext.runAsGroup` | Set Kafka containers' Security Context runAsGroup | `1001` |
|
||||||
| `controller.containerSecurityContext.runAsNonRoot` | Set Kafka containers' Security Context runAsNonRoot | `true` |
|
| `controller.containerSecurityContext.runAsNonRoot` | Set Kafka containers' Security Context runAsNonRoot | `true` |
|
||||||
| `controller.containerSecurityContext.allowPrivilegeEscalation` | Force the child process to be run as non-privileged | `false` |
|
| `controller.containerSecurityContext.allowPrivilegeEscalation` | Force the child process to be run as non-privileged | `false` |
|
||||||
| `controller.containerSecurityContext.readOnlyRootFilesystem` | Allows the pod to mount the RootFS as ReadOnly only | `true` |
|
| `controller.containerSecurityContext.readOnlyRootFilesystem` | Allows the pod to mount the RootFS as ReadOnly only | `true` |
|
||||||
| `controller.containerSecurityContext.capabilities.drop` | Set Kafka containers' server Security Context capabilities to be dropped | `["ALL"]` |
|
| `controller.containerSecurityContext.capabilities.drop` | Set Kafka containers' server Security Context capabilities to be dropped | `["ALL"]` |
|
||||||
| `controller.automountServiceAccountToken` | Mount Service Account token in pod | `false` |
|
| `controller.automountServiceAccountToken` | Mount Service Account token in pod | `false` |
|
||||||
| `controller.hostAliases` | Kafka pods host aliases | `[]` |
|
| `controller.hostAliases` | Kafka pods host aliases | `[]` |
|
||||||
| `controller.hostNetwork` | Specify if host network should be enabled for Kafka pods | `false` |
|
| `controller.hostNetwork` | Specify if host network should be enabled for Kafka pods | `false` |
|
||||||
| `controller.hostIPC` | Specify if host IPC should be enabled for Kafka pods | `false` |
|
| `controller.hostIPC` | Specify if host IPC should be enabled for Kafka pods | `false` |
|
||||||
| `controller.podLabels` | Extra labels for Kafka pods | `{}` |
|
| `controller.podLabels` | Extra labels for Kafka pods | `{}` |
|
||||||
| `controller.podAnnotations` | Extra annotations for Kafka pods | `{}` |
|
| `controller.podAnnotations` | Extra annotations for Kafka pods | `{}` |
|
||||||
| `controller.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
| `controller.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||||
| `controller.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
| `controller.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||||
| `controller.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
| `controller.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||||
| `controller.nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` |
|
| `controller.nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` |
|
||||||
| `controller.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` |
|
| `controller.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` |
|
||||||
| `controller.affinity` | Affinity for pod assignment | `{}` |
|
| `controller.affinity` | Affinity for pod assignment | `{}` |
|
||||||
| `controller.nodeSelector` | Node labels for pod assignment | `{}` |
|
| `controller.nodeSelector` | Node labels for pod assignment | `{}` |
|
||||||
| `controller.tolerations` | Tolerations for pod assignment | `[]` |
|
| `controller.tolerations` | Tolerations for pod assignment | `[]` |
|
||||||
| `controller.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
|
| `controller.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
|
||||||
| `controller.terminationGracePeriodSeconds` | Seconds the pod needs to gracefully terminate | `""` |
|
| `controller.terminationGracePeriodSeconds` | Seconds the pod needs to gracefully terminate | `""` |
|
||||||
| `controller.podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel | `Parallel` |
|
| `controller.podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel | `Parallel` |
|
||||||
| `controller.minReadySeconds` | How many seconds a pod needs to be ready before killing the next, during update | `0` |
|
| `controller.minReadySeconds` | How many seconds a pod needs to be ready before killing the next, during update | `0` |
|
||||||
| `controller.priorityClassName` | Name of the existing priority class to be used by kafka pods | `""` |
|
| `controller.priorityClassName` | Name of the existing priority class to be used by kafka pods | `""` |
|
||||||
| `controller.runtimeClassName` | Name of the runtime class to be used by pod(s) | `""` |
|
| `controller.runtimeClassName` | Name of the runtime class to be used by pod(s) | `""` |
|
||||||
| `controller.enableServiceLinks` | Whether information about services should be injected into pod's environment variable | `true` |
|
| `controller.enableServiceLinks` | Whether information about services should be injected into pod's environment variable | `true` |
|
||||||
| `controller.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
|
| `controller.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
|
||||||
| `controller.updateStrategy.type` | Kafka statefulset strategy type | `RollingUpdate` |
|
| `controller.updateStrategy.type` | Kafka statefulset strategy type | `RollingUpdate` |
|
||||||
| `controller.extraVolumes` | Optionally specify extra list of additional volumes for the Kafka pod(s) | `[]` |
|
| `controller.extraVolumes` | Optionally specify extra list of additional volumes for the Kafka pod(s) | `[]` |
|
||||||
| `controller.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Kafka container(s) | `[]` |
|
| `controller.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Kafka container(s) | `[]` |
|
||||||
| `controller.sidecars` | Add additional sidecar containers to the Kafka pod(s) | `[]` |
|
| `controller.sidecars` | Add additional sidecar containers to the Kafka pod(s) | `[]` |
|
||||||
| `controller.initContainers` | Add additional Add init containers to the Kafka pod(s) | `[]` |
|
| `controller.initContainers` | Add additional Add init containers to the Kafka pod(s) | `[]` |
|
||||||
| `controller.pdb.create` | Deploy a pdb object for the Kafka pod | `false` |
|
|
||||||
| `controller.pdb.minAvailable` | Maximum number/percentage of unavailable Kafka replicas | `""` |
|
### Experimental: Kafka Controller Autoscaling configuration
|
||||||
| `controller.pdb.maxUnavailable` | Maximum number/percentage of unavailable Kafka replicas | `1` |
|
|
||||||
| `controller.persistence.enabled` | Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected | `true` |
|
| Name | Description | Value |
|
||||||
| `controller.persistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||||
| `controller.persistence.storageClass` | PVC Storage Class for Kafka data volume | `""` |
|
| `controller.autoscaling.vpa.enabled` | Enable VPA | `false` |
|
||||||
| `controller.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
| `controller.autoscaling.vpa.annotations` | Annotations for VPA resource | `{}` |
|
||||||
| `controller.persistence.size` | PVC Storage Request for Kafka data volume | `8Gi` |
|
| `controller.autoscaling.vpa.controlledResources` | VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory | `[]` |
|
||||||
| `controller.persistence.annotations` | Annotations for the PVC | `{}` |
|
| `controller.autoscaling.vpa.maxAllowed` | VPA Max allowed resources for the pod | `{}` |
|
||||||
| `controller.persistence.labels` | Labels for the PVC | `{}` |
|
| `controller.autoscaling.vpa.minAllowed` | VPA Min allowed resources for the pod | `{}` |
|
||||||
| `controller.persistence.selector` | Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
| `controller.autoscaling.vpa.updatePolicy.updateMode` | Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod | `Auto` |
|
||||||
| `controller.persistence.mountPath` | Mount path of the Kafka data volume | `/bitnami/kafka` |
|
| `controller.autoscaling.hpa.enabled` | Enable HPA for Kafka Controller | `false` |
|
||||||
| `controller.logPersistence.enabled` | Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected | `false` |
|
| `controller.autoscaling.hpa.minReplicas` | Minimum number of Kafka Controller replicas | `""` |
|
||||||
| `controller.logPersistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
| `controller.autoscaling.hpa.maxReplicas` | Maximum number of Kafka Controller replicas | `""` |
|
||||||
| `controller.logPersistence.storageClass` | PVC Storage Class for Kafka logs volume | `""` |
|
| `controller.autoscaling.hpa.targetCPU` | Target CPU utilization percentage | `""` |
|
||||||
| `controller.logPersistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
| `controller.autoscaling.hpa.targetMemory` | Target Memory utilization percentage | `""` |
|
||||||
| `controller.logPersistence.size` | PVC Storage Request for Kafka logs volume | `8Gi` |
|
| `controller.pdb.create` | Deploy a pdb object for the Kafka pod | `false` |
|
||||||
| `controller.logPersistence.annotations` | Annotations for the PVC | `{}` |
|
| `controller.pdb.minAvailable` | Maximum number/percentage of unavailable Kafka replicas | `""` |
|
||||||
| `controller.logPersistence.selector` | Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
| `controller.pdb.maxUnavailable` | Maximum number/percentage of unavailable Kafka replicas | `1` |
|
||||||
| `controller.logPersistence.mountPath` | Mount path of the Kafka logs volume | `/opt/bitnami/kafka/logs` |
|
| `controller.persistence.enabled` | Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected | `true` |
|
||||||
|
| `controller.persistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
||||||
|
| `controller.persistence.storageClass` | PVC Storage Class for Kafka data volume | `""` |
|
||||||
|
| `controller.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
||||||
|
| `controller.persistence.size` | PVC Storage Request for Kafka data volume | `8Gi` |
|
||||||
|
| `controller.persistence.annotations` | Annotations for the PVC | `{}` |
|
||||||
|
| `controller.persistence.labels` | Labels for the PVC | `{}` |
|
||||||
|
| `controller.persistence.selector` | Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
||||||
|
| `controller.persistence.mountPath` | Mount path of the Kafka data volume | `/bitnami/kafka` |
|
||||||
|
| `controller.logPersistence.enabled` | Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected | `false` |
|
||||||
|
| `controller.logPersistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
||||||
|
| `controller.logPersistence.storageClass` | PVC Storage Class for Kafka logs volume | `""` |
|
||||||
|
| `controller.logPersistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
||||||
|
| `controller.logPersistence.size` | PVC Storage Request for Kafka logs volume | `8Gi` |
|
||||||
|
| `controller.logPersistence.annotations` | Annotations for the PVC | `{}` |
|
||||||
|
| `controller.logPersistence.selector` | Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
||||||
|
| `controller.logPersistence.mountPath` | Mount path of the Kafka logs volume | `/opt/bitnami/kafka/logs` |
|
||||||
|
|
||||||
### Broker-only statefulset parameters
|
### Broker-only statefulset parameters
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||||||
| `broker.replicaCount` | Number of Kafka broker-only nodes | `0` |
|
| `broker.replicaCount` | Number of Kafka broker-only nodes | `0` |
|
||||||
| `broker.minId` | Minimal node.id values for broker-only nodes. Do not change after first initialization. | `100` |
|
| `broker.minId` | Minimal node.id values for broker-only nodes. Do not change after first initialization. | `100` |
|
||||||
| `broker.zookeeperMigrationMode` | Set to true to deploy cluster controller quorum | `false` |
|
| `broker.zookeeperMigrationMode` | Set to true to deploy cluster controller quorum | `false` |
|
||||||
| `broker.config` | Configuration file for Kafka broker-only nodes, rendered as a template. Auto-generated based on chart values when not specified. | `""` |
|
| `broker.config` | Configuration file for Kafka broker-only nodes, rendered as a template. Auto-generated based on chart values when not specified. | `""` |
|
||||||
| `broker.existingConfigmap` | ConfigMap with Kafka Configuration for broker-only nodes. | `""` |
|
| `broker.existingConfigmap` | ConfigMap with Kafka Configuration for broker-only nodes. | `""` |
|
||||||
| `broker.extraConfig` | Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file. | `""` |
|
| `broker.extraConfig` | Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file. | `""` |
|
||||||
| `broker.secretConfig` | Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file. | `""` |
|
| `broker.secretConfig` | Additional configuration to be appended at the end of the generated Kafka broker-only nodes configuration file. | `""` |
|
||||||
| `broker.existingSecretConfig` | Secret with additonal configuration that will be appended to the end of the generated Kafka broker-only nodes configuration file | `""` |
|
| `broker.existingSecretConfig` | Secret with additonal configuration that will be appended to the end of the generated Kafka broker-only nodes configuration file | `""` |
|
||||||
| `broker.heapOpts` | Kafka Java Heap size for broker-only nodes | `-Xmx1024m -Xms1024m` |
|
| `broker.heapOpts` | Kafka Java Heap size for broker-only nodes | `-Xmx1024m -Xms1024m` |
|
||||||
| `broker.command` | Override Kafka container command | `[]` |
|
| `broker.command` | Override Kafka container command | `[]` |
|
||||||
| `broker.args` | Override Kafka container arguments | `[]` |
|
| `broker.args` | Override Kafka container arguments | `[]` |
|
||||||
| `broker.extraEnvVars` | Extra environment variables to add to Kafka pods | `[]` |
|
| `broker.extraEnvVars` | Extra environment variables to add to Kafka pods | `[]` |
|
||||||
| `broker.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
|
| `broker.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
|
||||||
| `broker.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
|
| `broker.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
|
||||||
| `broker.extraContainerPorts` | Kafka broker-only extra containerPorts. | `[]` |
|
| `broker.extraContainerPorts` | Kafka broker-only extra containerPorts. | `[]` |
|
||||||
| `broker.livenessProbe.enabled` | Enable livenessProbe on Kafka containers | `true` |
|
| `broker.livenessProbe.enabled` | Enable livenessProbe on Kafka containers | `true` |
|
||||||
| `broker.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
| `broker.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
||||||
| `broker.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
| `broker.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||||
| `broker.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
| `broker.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
||||||
| `broker.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
| `broker.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||||
| `broker.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
| `broker.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||||
| `broker.readinessProbe.enabled` | Enable readinessProbe on Kafka containers | `true` |
|
| `broker.readinessProbe.enabled` | Enable readinessProbe on Kafka containers | `true` |
|
||||||
| `broker.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
| `broker.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
||||||
| `broker.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
| `broker.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||||
| `broker.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
| `broker.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
||||||
| `broker.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
| `broker.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
||||||
| `broker.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
| `broker.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||||
| `broker.startupProbe.enabled` | Enable startupProbe on Kafka containers | `false` |
|
| `broker.startupProbe.enabled` | Enable startupProbe on Kafka containers | `false` |
|
||||||
| `broker.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
|
| `broker.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
|
||||||
| `broker.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
| `broker.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
||||||
| `broker.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
| `broker.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
||||||
| `broker.startupProbe.failureThreshold` | Failure threshold for startupProbe | `15` |
|
| `broker.startupProbe.failureThreshold` | Failure threshold for startupProbe | `15` |
|
||||||
| `broker.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
| `broker.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
||||||
| `broker.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
| `broker.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
||||||
| `broker.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
| `broker.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
||||||
| `broker.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
| `broker.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
||||||
| `broker.lifecycleHooks` | lifecycleHooks for the Kafka container to automate configuration before or after startup | `{}` |
|
| `broker.lifecycleHooks` | lifecycleHooks for the Kafka container to automate configuration before or after startup | `{}` |
|
||||||
| `broker.initContainerResources.limits` | The resources limits for the container | `{}` |
|
| `broker.initContainerResources.limits` | The resources limits for the container | `{}` |
|
||||||
| `broker.initContainerResources.requests` | The requested resources for the container | `{}` |
|
| `broker.initContainerResources.requests` | The requested resources for the container | `{}` |
|
||||||
| `broker.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if broker.resources is set (broker.resources is recommended for production). | `small` |
|
| `broker.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if broker.resources is set (broker.resources is recommended for production). | `small` |
|
||||||
| `broker.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
| `broker.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
||||||
| `broker.podSecurityContext.enabled` | Enable security context for the pods | `true` |
|
| `broker.podSecurityContext.enabled` | Enable security context for the pods | `true` |
|
||||||
| `broker.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
| `broker.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
||||||
| `broker.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
| `broker.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
||||||
| `broker.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
| `broker.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
||||||
| `broker.podSecurityContext.fsGroup` | Set Kafka pod's Security Context fsGroup | `1001` |
|
| `broker.podSecurityContext.fsGroup` | Set Kafka pod's Security Context fsGroup | `1001` |
|
||||||
| `broker.podSecurityContext.seccompProfile.type` | Set Kafka pod's Security Context seccomp profile | `RuntimeDefault` |
|
| `broker.podSecurityContext.seccompProfile.type` | Set Kafka pod's Security Context seccomp profile | `RuntimeDefault` |
|
||||||
| `broker.containerSecurityContext.enabled` | Enable Kafka containers' Security Context | `true` |
|
| `broker.containerSecurityContext.enabled` | Enable Kafka containers' Security Context | `true` |
|
||||||
| `broker.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
| `broker.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
||||||
| `broker.containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `1001` |
|
| `broker.containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `1001` |
|
||||||
| `broker.containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `1001` |
|
| `broker.containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `1001` |
|
||||||
| `broker.containerSecurityContext.runAsNonRoot` | Set Kafka containers' Security Context runAsNonRoot | `true` |
|
| `broker.containerSecurityContext.runAsNonRoot` | Set Kafka containers' Security Context runAsNonRoot | `true` |
|
||||||
| `broker.containerSecurityContext.allowPrivilegeEscalation` | Force the child process to be run as non-privileged | `false` |
|
| `broker.containerSecurityContext.allowPrivilegeEscalation` | Force the child process to be run as non-privileged | `false` |
|
||||||
| `broker.containerSecurityContext.readOnlyRootFilesystem` | Allows the pod to mount the RootFS as ReadOnly only | `true` |
|
| `broker.containerSecurityContext.readOnlyRootFilesystem` | Allows the pod to mount the RootFS as ReadOnly only | `true` |
|
||||||
| `broker.containerSecurityContext.capabilities.drop` | Set Kafka containers' server Security Context capabilities to be dropped | `["ALL"]` |
|
| `broker.containerSecurityContext.capabilities.drop` | Set Kafka containers' server Security Context capabilities to be dropped | `["ALL"]` |
|
||||||
| `broker.automountServiceAccountToken` | Mount Service Account token in pod | `false` |
|
| `broker.automountServiceAccountToken` | Mount Service Account token in pod | `false` |
|
||||||
| `broker.hostAliases` | Kafka pods host aliases | `[]` |
|
| `broker.hostAliases` | Kafka pods host aliases | `[]` |
|
||||||
| `broker.hostNetwork` | Specify if host network should be enabled for Kafka pods | `false` |
|
| `broker.hostNetwork` | Specify if host network should be enabled for Kafka pods | `false` |
|
||||||
| `broker.hostIPC` | Specify if host IPC should be enabled for Kafka pods | `false` |
|
| `broker.hostIPC` | Specify if host IPC should be enabled for Kafka pods | `false` |
|
||||||
| `broker.podLabels` | Extra labels for Kafka pods | `{}` |
|
| `broker.podLabels` | Extra labels for Kafka pods | `{}` |
|
||||||
| `broker.podAnnotations` | Extra annotations for Kafka pods | `{}` |
|
| `broker.podAnnotations` | Extra annotations for Kafka pods | `{}` |
|
||||||
| `broker.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
| `broker.podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||||
| `broker.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
| `broker.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||||
| `broker.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
| `broker.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||||
| `broker.nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` |
|
| `broker.nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` |
|
||||||
| `broker.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` |
|
| `broker.nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` |
|
||||||
| `broker.affinity` | Affinity for pod assignment | `{}` |
|
| `broker.affinity` | Affinity for pod assignment | `{}` |
|
||||||
| `broker.nodeSelector` | Node labels for pod assignment | `{}` |
|
| `broker.nodeSelector` | Node labels for pod assignment | `{}` |
|
||||||
| `broker.tolerations` | Tolerations for pod assignment | `[]` |
|
| `broker.tolerations` | Tolerations for pod assignment | `[]` |
|
||||||
| `broker.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
|
| `broker.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
|
||||||
| `broker.terminationGracePeriodSeconds` | Seconds the pod needs to gracefully terminate | `""` |
|
| `broker.terminationGracePeriodSeconds` | Seconds the pod needs to gracefully terminate | `""` |
|
||||||
| `broker.podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel | `Parallel` |
|
| `broker.podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: OrderedReady and Parallel | `Parallel` |
|
||||||
| `broker.minReadySeconds` | How many seconds a pod needs to be ready before killing the next, during update | `0` |
|
| `broker.minReadySeconds` | How many seconds a pod needs to be ready before killing the next, during update | `0` |
|
||||||
| `broker.priorityClassName` | Name of the existing priority class to be used by kafka pods | `""` |
|
| `broker.priorityClassName` | Name of the existing priority class to be used by kafka pods | `""` |
|
||||||
| `broker.runtimeClassName` | Name of the runtime class to be used by pod(s) | `""` |
|
| `broker.runtimeClassName` | Name of the runtime class to be used by pod(s) | `""` |
|
||||||
| `broker.enableServiceLinks` | Whether information about services should be injected into pod's environment variable | `true` |
|
| `broker.enableServiceLinks` | Whether information about services should be injected into pod's environment variable | `true` |
|
||||||
| `broker.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
|
| `broker.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
|
||||||
| `broker.updateStrategy.type` | Kafka statefulset strategy type | `RollingUpdate` |
|
| `broker.updateStrategy.type` | Kafka statefulset strategy type | `RollingUpdate` |
|
||||||
| `broker.extraVolumes` | Optionally specify extra list of additional volumes for the Kafka pod(s) | `[]` |
|
| `broker.extraVolumes` | Optionally specify extra list of additional volumes for the Kafka pod(s) | `[]` |
|
||||||
| `broker.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Kafka container(s) | `[]` |
|
| `broker.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Kafka container(s) | `[]` |
|
||||||
| `broker.sidecars` | Add additional sidecar containers to the Kafka pod(s) | `[]` |
|
| `broker.sidecars` | Add additional sidecar containers to the Kafka pod(s) | `[]` |
|
||||||
| `broker.initContainers` | Add additional Add init containers to the Kafka pod(s) | `[]` |
|
| `broker.initContainers` | Add additional Add init containers to the Kafka pod(s) | `[]` |
|
||||||
| `broker.pdb.create` | Deploy a pdb object for the Kafka pod | `false` |
|
| `broker.pdb.create` | Deploy a pdb object for the Kafka pod | `false` |
|
||||||
| `broker.pdb.minAvailable` | Maximum number/percentage of unavailable Kafka replicas | `""` |
|
| `broker.pdb.minAvailable` | Maximum number/percentage of unavailable Kafka replicas | `""` |
|
||||||
| `broker.pdb.maxUnavailable` | Maximum number/percentage of unavailable Kafka replicas | `1` |
|
| `broker.pdb.maxUnavailable` | Maximum number/percentage of unavailable Kafka replicas | `1` |
|
||||||
| `broker.persistence.enabled` | Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected | `true` |
|
|
||||||
| `broker.persistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
### Experimental: Kafka Broker Autoscaling configuration
|
||||||
| `broker.persistence.storageClass` | PVC Storage Class for Kafka data volume | `""` |
|
|
||||||
| `broker.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
| Name | Description | Value |
|
||||||
| `broker.persistence.size` | PVC Storage Request for Kafka data volume | `8Gi` |
|
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||||
| `broker.persistence.annotations` | Annotations for the PVC | `{}` |
|
| `broker.autoscaling.vpa.enabled` | Enable VPA | `false` |
|
||||||
| `broker.persistence.labels` | Labels for the PVC | `{}` |
|
| `broker.autoscaling.vpa.annotations` | Annotations for VPA resource | `{}` |
|
||||||
| `broker.persistence.selector` | Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
| `broker.autoscaling.vpa.controlledResources` | VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory | `[]` |
|
||||||
| `broker.persistence.mountPath` | Mount path of the Kafka data volume | `/bitnami/kafka` |
|
| `broker.autoscaling.vpa.maxAllowed` | VPA Max allowed resources for the pod | `{}` |
|
||||||
| `broker.logPersistence.enabled` | Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected | `false` |
|
| `broker.autoscaling.vpa.minAllowed` | VPA Min allowed resources for the pod | `{}` |
|
||||||
| `broker.logPersistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
| `broker.autoscaling.vpa.updatePolicy.updateMode` | Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod | `Auto` |
|
||||||
| `broker.logPersistence.storageClass` | PVC Storage Class for Kafka logs volume | `""` |
|
| `broker.autoscaling.hpa.enabled` | Enable HPA for Kafka Broker | `false` |
|
||||||
| `broker.logPersistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
| `broker.autoscaling.hpa.minReplicas` | Minimum number of Kafka Broker replicas | `""` |
|
||||||
| `broker.logPersistence.size` | PVC Storage Request for Kafka logs volume | `8Gi` |
|
| `broker.autoscaling.hpa.maxReplicas` | Maximum number of Kafka Broker replicas | `""` |
|
||||||
| `broker.logPersistence.annotations` | Annotations for the PVC | `{}` |
|
| `broker.autoscaling.hpa.targetCPU` | Target CPU utilization percentage | `""` |
|
||||||
| `broker.logPersistence.selector` | Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
| `broker.autoscaling.hpa.targetMemory` | Target Memory utilization percentage | `""` |
|
||||||
| `broker.logPersistence.mountPath` | Mount path of the Kafka logs volume | `/opt/bitnami/kafka/logs` |
|
| `broker.persistence.enabled` | Enable Kafka data persistence using PVC, note that ZooKeeper persistence is unaffected | `true` |
|
||||||
|
| `broker.persistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
||||||
|
| `broker.persistence.storageClass` | PVC Storage Class for Kafka data volume | `""` |
|
||||||
|
| `broker.persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
||||||
|
| `broker.persistence.size` | PVC Storage Request for Kafka data volume | `8Gi` |
|
||||||
|
| `broker.persistence.annotations` | Annotations for the PVC | `{}` |
|
||||||
|
| `broker.persistence.labels` | Labels for the PVC | `{}` |
|
||||||
|
| `broker.persistence.selector` | Selector to match an existing Persistent Volume for Kafka data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
||||||
|
| `broker.persistence.mountPath` | Mount path of the Kafka data volume | `/bitnami/kafka` |
|
||||||
|
| `broker.logPersistence.enabled` | Enable Kafka logs persistence using PVC, note that ZooKeeper persistence is unaffected | `false` |
|
||||||
|
| `broker.logPersistence.existingClaim` | A manually managed Persistent Volume and Claim | `""` |
|
||||||
|
| `broker.logPersistence.storageClass` | PVC Storage Class for Kafka logs volume | `""` |
|
||||||
|
| `broker.logPersistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
|
||||||
|
| `broker.logPersistence.size` | PVC Storage Request for Kafka logs volume | `8Gi` |
|
||||||
|
| `broker.logPersistence.annotations` | Annotations for the PVC | `{}` |
|
||||||
|
| `broker.logPersistence.selector` | Selector to match an existing Persistent Volume for Kafka log data PVC. If set, the PVC can't have a PV dynamically provisioned for it | `{}` |
|
||||||
|
| `broker.logPersistence.mountPath` | Mount path of the Kafka logs volume | `/opt/bitnami/kafka/logs` |
|
||||||
|
|
||||||
### Traffic Exposure parameters
|
### Traffic Exposure parameters
|
||||||
|
|
||||||
|
|||||||
51
bitnami/kafka/templates/broker/hpa.yaml
Normal file
51
bitnami/kafka/templates/broker/hpa.yaml
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright VMware, Inc.
|
||||||
|
SPDX-License-Identifier: APACHE-2.0
|
||||||
|
*/}}
|
||||||
|
{{- $replicaCount := int .Values.broker.replicaCount }}
|
||||||
|
{{- if and (gt $replicaCount 0) .Values.broker.autoscaling.hpa.enabled }}
|
||||||
|
apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }}
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-broker" (include "common.names.fullname" .) }}
|
||||||
|
namespace: {{ include "common.names.namespace" . | quote }}
|
||||||
|
labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: broker
|
||||||
|
app.kubernetes.io/part-of: kafka
|
||||||
|
{{- if or .Values.broker.autoscaling.hpa.annotations .Values.commonAnnotations }}
|
||||||
|
{{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.broker.autoscaling.hpa.annotations .Values.commonAnnotations ) "context" . ) }}
|
||||||
|
annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: {{ template "common.capabilities.statefulset.apiVersion" . }}
|
||||||
|
kind: StatefulSet
|
||||||
|
name: {{ printf "%s-broker" (include "common.names.fullname" .) }}
|
||||||
|
minReplicas: {{ .Values.broker.autoscaling.hpa.minReplicas }}
|
||||||
|
maxReplicas: {{ .Values.broker.autoscaling.hpa.maxReplicas }}
|
||||||
|
metrics:
|
||||||
|
{{- if .Values.broker.autoscaling.hpa.targetCPU }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
{{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
|
||||||
|
targetAverageUtilization: {{ .Values.broker.autoscaling.hpa.targetCPU }}
|
||||||
|
{{- else }}
|
||||||
|
target:
|
||||||
|
type: Utilization
|
||||||
|
averageUtilization: {{ .Values.broker.autoscaling.hpa.targetCPU }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.broker.autoscaling.hpa.targetMemory }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: memory
|
||||||
|
{{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
|
||||||
|
targetAverageUtilization: {{ .Values.broker.autoscaling.hpa.targetMemory }}
|
||||||
|
{{- else }}
|
||||||
|
target:
|
||||||
|
type: Utilization
|
||||||
|
averageUtilization: {{ .Values.broker.autoscaling.hpa.targetMemory }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
45
bitnami/kafka/templates/broker/vpa.yaml
Normal file
45
bitnami/kafka/templates/broker/vpa.yaml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright VMware, Inc.
|
||||||
|
SPDX-License-Identifier: APACHE-2.0
|
||||||
|
*/}}
|
||||||
|
{{- $replicaCount := int .Values.broker.replicaCount }}
|
||||||
|
{{- if and (gt $replicaCount 0) (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1/VerticalPodAutoscaler") .Values.broker.autoscaling.vpa.enabled }}
|
||||||
|
apiVersion: {{ include "common.capabilities.vpa.apiVersion" . }}
|
||||||
|
kind: VerticalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-broker" (include "common.names.fullname" .) }}
|
||||||
|
namespace: {{ include "common.names.namespace" . | quote }}
|
||||||
|
labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: broker
|
||||||
|
app.kubernetes.io/part-of: kafka
|
||||||
|
{{- if or .Values.broker.autoscaling.vpa.annotations .Values.commonAnnotations }}
|
||||||
|
{{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.broker.autoscaling.vpa.annotations .Values.commonAnnotations ) "context" . ) }}
|
||||||
|
annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
resourcePolicy:
|
||||||
|
containerPolicies:
|
||||||
|
- containerName: kafka
|
||||||
|
{{- with .Values.broker.autoscaling.vpa.controlledResources }}
|
||||||
|
controlledResources:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.broker.autoscaling.vpa.maxAllowed }}
|
||||||
|
maxAllowed:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.broker.autoscaling.vpa.minAllowed }}
|
||||||
|
minAllowed:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
targetRef:
|
||||||
|
apiVersion: {{ (include "common.capabilities.statefulset.apiVersion" .) }}
|
||||||
|
kind: StatefulSet
|
||||||
|
name: {{ printf "%s-broker" (include "common.names.fullname" .) }}
|
||||||
|
{{- if .Values.broker.autoscaling.vpa.updatePolicy }}
|
||||||
|
updatePolicy:
|
||||||
|
{{- with .Values.broker.autoscaling.vpa.updatePolicy.updateMode }}
|
||||||
|
updateMode: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
51
bitnami/kafka/templates/controller-eligible/hpa.yaml
Normal file
51
bitnami/kafka/templates/controller-eligible/hpa.yaml
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright VMware, Inc.
|
||||||
|
SPDX-License-Identifier: APACHE-2.0
|
||||||
|
*/}}
|
||||||
|
{{- $replicaCount := int .Values.controller.replicaCount }}
|
||||||
|
{{- if and .Values.kraft.enabled (gt $replicaCount 0) .Values.controller.autoscaling.hpa.enabled }}
|
||||||
|
apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }}
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-controller" (include "common.names.fullname" .) }}
|
||||||
|
namespace: {{ include "common.names.namespace" . | quote }}
|
||||||
|
labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
app.kubernetes.io/part-of: kafka
|
||||||
|
{{- if or .Values.controller.autoscaling.hpa.annotations .Values.commonAnnotations }}
|
||||||
|
{{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.controller.autoscaling.hpa.annotations .Values.commonAnnotations ) "context" . ) }}
|
||||||
|
annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: {{ template "common.capabilities.statefulset.apiVersion" . }}
|
||||||
|
kind: StatefulSet
|
||||||
|
name: {{ printf "%s-controller" (include "common.names.fullname" .) }}
|
||||||
|
minReplicas: {{ .Values.controller.autoscaling.hpa.minReplicas }}
|
||||||
|
maxReplicas: {{ .Values.controller.autoscaling.hpa.maxReplicas }}
|
||||||
|
metrics:
|
||||||
|
{{- if .Values.controller.autoscaling.hpa.targetCPU }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
{{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
|
||||||
|
targetAverageUtilization: {{ .Values.controller.autoscaling.hpa.targetCPU }}
|
||||||
|
{{- else }}
|
||||||
|
target:
|
||||||
|
type: Utilization
|
||||||
|
averageUtilization: {{ .Values.controller.autoscaling.hpa.targetCPU }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.controller.autoscaling.hpa.targetMemory }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: memory
|
||||||
|
{{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
|
||||||
|
targetAverageUtilization: {{ .Values.controller.autoscaling.hpa.targetMemory }}
|
||||||
|
{{- else }}
|
||||||
|
target:
|
||||||
|
type: Utilization
|
||||||
|
averageUtilization: {{ .Values.controller.autoscaling.hpa.targetMemory }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
45
bitnami/kafka/templates/controller-eligible/vpa.yaml
Normal file
45
bitnami/kafka/templates/controller-eligible/vpa.yaml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright VMware, Inc.
|
||||||
|
SPDX-License-Identifier: APACHE-2.0
|
||||||
|
*/}}
|
||||||
|
{{- $replicaCount := int .Values.controller.replicaCount }}
|
||||||
|
{{- if and .Values.kraft.enabled (gt $replicaCount 0) (.Capabilities.APIVersions.Has "autoscaling.k8s.io/v1/VerticalPodAutoscaler") .Values.controller.autoscaling.vpa.enabled }}
|
||||||
|
apiVersion: {{ include "common.capabilities.vpa.apiVersion" . }}
|
||||||
|
kind: VerticalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: {{ printf "%s-controller" (include "common.names.fullname" .) }}
|
||||||
|
namespace: {{ include "common.names.namespace" . | quote }}
|
||||||
|
labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
app.kubernetes.io/part-of: kafka
|
||||||
|
{{- if or .Values.controller.autoscaling.vpa.annotations .Values.commonAnnotations }}
|
||||||
|
{{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.controller.autoscaling.vpa.annotations .Values.commonAnnotations ) "context" . ) }}
|
||||||
|
annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
resourcePolicy:
|
||||||
|
containerPolicies:
|
||||||
|
- containerName: kafka
|
||||||
|
{{- with .Values.controller.autoscaling.vpa.controlledResources }}
|
||||||
|
controlledResources:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.controller.autoscaling.vpa.maxAllowed }}
|
||||||
|
maxAllowed:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.controller.autoscaling.vpa.minAllowed }}
|
||||||
|
minAllowed:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
targetRef:
|
||||||
|
apiVersion: {{ (include "common.capabilities.statefulset.apiVersion" .) }}
|
||||||
|
kind: StatefulSet
|
||||||
|
name: {{ printf "%s-controller" (include "common.names.fullname" .) }}
|
||||||
|
{{- if .Values.controller.autoscaling.vpa.updatePolicy }}
|
||||||
|
updatePolicy:
|
||||||
|
{{- with .Values.controller.autoscaling.vpa.updatePolicy.updateMode }}
|
||||||
|
updateMode: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -791,6 +791,49 @@ controller:
|
|||||||
## containerPort: 1234
|
## containerPort: 1234
|
||||||
##
|
##
|
||||||
initContainers: []
|
initContainers: []
|
||||||
|
## @section Experimental: Kafka Controller Autoscaling configuration
|
||||||
|
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||||||
|
##
|
||||||
|
autoscaling:
|
||||||
|
vpa:
|
||||||
|
## @param controller.autoscaling.vpa.enabled Enable VPA
|
||||||
|
##
|
||||||
|
enabled: false
|
||||||
|
## @param controller.autoscaling.vpa.annotations Annotations for VPA resource
|
||||||
|
##
|
||||||
|
annotations: {}
|
||||||
|
## @param controller.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
|
||||||
|
##
|
||||||
|
controlledResources: []
|
||||||
|
## @param controller.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
|
||||||
|
## cpu: 200m
|
||||||
|
## memory: 100Mi
|
||||||
|
maxAllowed: {}
|
||||||
|
## @param controller.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
|
||||||
|
## cpu: 200m
|
||||||
|
## memory: 100Mi
|
||||||
|
minAllowed: {}
|
||||||
|
updatePolicy:
|
||||||
|
## @param controller.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
|
||||||
|
## Possible values are "Off", "Initial", "Recreate", and "Auto".
|
||||||
|
##
|
||||||
|
updateMode: Auto
|
||||||
|
hpa:
|
||||||
|
## @param controller.autoscaling.hpa.enabled Enable HPA for Kafka Controller
|
||||||
|
##
|
||||||
|
enabled: false
|
||||||
|
## @param controller.autoscaling.hpa.minReplicas Minimum number of Kafka Controller replicas
|
||||||
|
##
|
||||||
|
minReplicas: ""
|
||||||
|
## @param controller.autoscaling.hpa.maxReplicas Maximum number of Kafka Controller replicas
|
||||||
|
##
|
||||||
|
maxReplicas: ""
|
||||||
|
## @param controller.autoscaling.hpa.targetCPU Target CPU utilization percentage
|
||||||
|
##
|
||||||
|
targetCPU: ""
|
||||||
|
## @param controller.autoscaling.hpa.targetMemory Target Memory utilization percentage
|
||||||
|
##
|
||||||
|
targetMemory: ""
|
||||||
## Kafka Pod Disruption Budget
|
## Kafka Pod Disruption Budget
|
||||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
|
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
|
||||||
## @param controller.pdb.create Deploy a pdb object for the Kafka pod
|
## @param controller.pdb.create Deploy a pdb object for the Kafka pod
|
||||||
@@ -1211,6 +1254,49 @@ broker:
|
|||||||
create: false
|
create: false
|
||||||
minAvailable: ""
|
minAvailable: ""
|
||||||
maxUnavailable: 1
|
maxUnavailable: 1
|
||||||
|
## @section Experimental: Kafka Broker Autoscaling configuration
|
||||||
|
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||||||
|
##
|
||||||
|
autoscaling:
|
||||||
|
vpa:
|
||||||
|
## @param broker.autoscaling.vpa.enabled Enable VPA
|
||||||
|
##
|
||||||
|
enabled: false
|
||||||
|
## @param broker.autoscaling.vpa.annotations Annotations for VPA resource
|
||||||
|
##
|
||||||
|
annotations: {}
|
||||||
|
## @param broker.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
|
||||||
|
##
|
||||||
|
controlledResources: []
|
||||||
|
## @param broker.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
|
||||||
|
## cpu: 200m
|
||||||
|
## memory: 100Mi
|
||||||
|
maxAllowed: {}
|
||||||
|
## @param broker.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
|
||||||
|
## cpu: 200m
|
||||||
|
## memory: 100Mi
|
||||||
|
minAllowed: {}
|
||||||
|
updatePolicy:
|
||||||
|
## @param broker.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
|
||||||
|
## Possible values are "Off", "Initial", "Recreate", and "Auto".
|
||||||
|
##
|
||||||
|
updateMode: Auto
|
||||||
|
hpa:
|
||||||
|
## @param broker.autoscaling.hpa.enabled Enable HPA for Kafka Broker
|
||||||
|
##
|
||||||
|
enabled: false
|
||||||
|
## @param broker.autoscaling.hpa.minReplicas Minimum number of Kafka Broker replicas
|
||||||
|
##
|
||||||
|
minReplicas: ""
|
||||||
|
## @param broker.autoscaling.hpa.maxReplicas Maximum number of Kafka Broker replicas
|
||||||
|
##
|
||||||
|
maxReplicas: ""
|
||||||
|
## @param broker.autoscaling.hpa.targetCPU Target CPU utilization percentage
|
||||||
|
##
|
||||||
|
targetCPU: ""
|
||||||
|
## @param broker.autoscaling.hpa.targetMemory Target Memory utilization percentage
|
||||||
|
##
|
||||||
|
targetMemory: ""
|
||||||
## Enable persistence using Persistent Volume Claims
|
## Enable persistence using Persistent Volume Claims
|
||||||
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
|
||||||
##
|
##
|
||||||
|
|||||||
Reference in New Issue
Block a user