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.enabled
these 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: