A Helm chart for Kafdrop on Kubernetes
This chart bootstraps a Kafdrop.
Kafdrop is a web UI for viewing Kafka topics and browsing consumer groups. The tool displays information such as brokers, topics, partitions, consumers, and lets you view messages.
| component | version |
|---|---|
| Podman | v4.3.1 |
| Minikube | v1.28.0 |
| Kubernetes | v1.25.3 |
| Helm | v3.10.2 |
| Confluent Platform | v7.3.0 |
| Kafdrop | v3.30.0 |
Add the chart repository, if not done before:
helm repo add rhcharts https://ricardo-aires.github.io/helm-charts/
By default this chart is set to use the umbrella chart kstack, but can be run against an external Kafka by passing:
$ helm upgrade --install aires --set kafka.enabled=false --set kafka.bootstrapServers=kstack-kafka-headless.default:9092 rhcharts/kafdrop
Release "aires" has been upgraded. Happy Helming!
NAME: aires
LAST DEPLOYED: Wed Mar 31 13:37:27 2021
NAMESPACE: kstack-x0
STATUS: deployed
REVISION: 2
$
These commands deploy kafdrop on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.
One can run the:
To uninstall the ktool deployment run:
helm uninstall ktool
The command removes all the Kubernetes components associated with the chart and deletes the release.
You can specify each parameter using the --set key=value[,key=value] argument to helm install.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
helm install ktool -f my-values.yaml rhcharts/kafdrop
A default values.yaml is available and should be checked for more advanced usage.
By default the obsidiandynamics/kafdrop is in use.
| Parameter | Description | Default |
|---|---|---|
image.registry |
Registry used to distribute the Docker Image. | docker.io |
image.repository |
Docker Image of Kafdrop. | obsidiandynamics/kafdrop |
image.tag |
Docker Image Tag of Kafdrop. | 3.30.0 |
One can easily change the image.tag to use another version. When using a local/proxy docker registry we must change image.registry as well.
The image is not being built for
arm, see issue, as a workaround we can use this image
By default no extra arguments are passed, it can be change using
| Parameter | Description |
|---|---|
cmArgs |
Command line arguments to Kafdrop |
Example, disable topic deletion:
cmdArgs: "--topic.deleteEnabled=false"
By default the Service will expose the pods in the port 9000, port.
If service.type is change to NodePort the created service will be a nodeport service that will expose Kafdrop in the nodePort given.
service:
type: NodePort
port: 9000
nodePort: 30900
This chart is prepared to enable Kerberos authentication in Kafka
| Parameter | Description | Default |
|---|---|---|
kerberos.enabled |
Boolean to control if Kerberos is enabled. | false |
kerberos.krb5Conf |
Name of the ConfigMap that stores the krb5.conf, Kerberos Configuration file |
nil¹ |
kerberos.keyTabSecret |
Name of the Secret that stores the Keytab | nil¹ |
serviceName |
Primary of the Principal (user, service, host) | |
domain |
REALM of the Principal | `` |
¹ When
kerberos.enabledthese parameters are required, and the ConfigMap and Secret need to exist beforehand.
Regarding the management of Resources for Containers the next defaults regarding requests and limits are set:
| Parameter | Description | Default |
|---|---|---|
resources.limits.cpu |
a container cannot use more CPU than the configured limit | 400m |
resources.limits.memory |
a container cannot use more Memory than the configured limit | 440Mi |
resources.requests.cpu |
a container is guaranteed to be allocated as much CPU as it requests | 100m |
resources.requests.memory |
a container is guaranteed to be allocated as much Memory as it requests | 220Mi |
In terms of the JVM the next default is set:
| Parameter | Description | Default |
|---|---|---|
heapOpts |
The JVM Heap Options for Kafdrop. | "-XX:MaxRAMPercentage=75.0 -XX:InitialRAMPercentage=50.0" |
Check the values.yaml for more advance configuration such as: