Skip to main content
Version 3.0

Kafka Configuration

ChartVersion3.0.1TypeapplicationAppVersion4.1.0
CompatibilityKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Feature SupportLDAPsupportedIngresssupportedGateway APIsupported

The tdp-kafka chart deploys an Apache Kafka cluster managed by the Strimzi operator, as well as a web interface (Kafka UI) and support for Debezium connectors via Kafka Connect.

Overview

PropertyValue
Charttdp-kafka
Kafka4.1.0
Chart Version3.0.1

What is Strimzi?

Strimzi is a Kubernetes operator specialized in the Kafka cluster lifecycle. Instead of managing Kafka processes manually, Strimzi translates native Kubernetes resources (like KafkaNodePool and Kafka) into declaratively configured, monitored, and updated brokers.

The 4.1.0 version of the tdp-kafka chart operates in KRaft mode (Kafka without ZooKeeper). In Kafka 4.x the ZooKeeper mode was removed, so metadata management is handled by Kafka itself via KRaft, which simplifies the topology and reduces latency of metadata operations.

To find out more

See Apache Kafka — Concepts for a complete overview of the tool, its architecture and operation.

Deployed components

ComponentDescription
Kafka ClusterBrokers and controllers managed by Strimzi via KafkaNodePool
Entity OperatorManages KafkaTopic and KafkaUser as Kubernetes resources
Kafka UIWeb interface for monitoring, topic and message navigation
Kafka ConnectInfrastructure for Debezium connectors (CDC) — optional

Values structure (Helm)

The tdp-kafka chart organizes configuration in the blocks below:

  • Kafka cluster root blocksname, kafkaVersion, metadataVersion, clusterLabel, listeners.*, security.*, config.*, entityOperator.* and nodePool.*.
  • tdp-kafka: — chart enablement.
  • kafka-ui: — web UI configuration, authentication, RBAC, cluster connection and Service.
  • kafkaConnects: — optional Debezium connectors for databases such as PostgreSQL, MySQL, SQL Server and Oracle.
  • registryPushSecret: — optional Secret for connector image push.
  • TDP-Settings:, ingress: and gatewayApi: — Kafka UI exposure control through Ingress or Gateway API.
name: tdp-kafka
kafkaVersion: 4.1.0
metadataVersion: 4.1-IV1

listeners:
plain:
enabled: true
tls:
enabled: true

nodePool:
name: brokers
replicas: 4

tdp-kafka:
enabled: true

kafka-ui:
enabled: true

kafkaConnects:
postgres:
enabled: false

TDP-Settings:
gateway:
ingress:
enabled: false
gatewayApi:
enabled: false

Prerequisites

  • Kubernetes 1.32+, Red Hat OpenShift 4.19+, or Rancher Manager 2.10.x+.
  • Helm 3.2.0+.
  • StorageClass available with sufficient capacity for broker volumes.
  • Strimzi CRDs installed in the cluster (see section below).

Strimzi CRD Management

Strimzi Custom Resource Definitions (CRDs) — such as Kafka, KafkaNodePool, KafkaTopic, KafkaUser, and KafkaConnect — are managed separately from the tdp-kafka chart. In TDP Kubernetes, these CRDs are delivered by the tdp-crds chart.

CRDs are cluster-scoped resources and are not removed when uninstalling the tdp-kafka chart.

Installing CRDs before the first Kafka installation

Before installing the tdp-kafka chart for the first time, install the tdp-crds chart in the cluster:

Terminal input
helm upgrade --install tdp-crds \
oci://registry.tecnisys.com.br/tdp/charts/tdp-crds \
-n <NAMESPACE> --create-namespace

Strimzi version update

When updating the TDP version, update the tdp-crds chart before running helm upgrade for tdp-kafka.

Troubleshooting: CRD conflict

If helm install or helm upgrade returns an error similar to:

conflict with "helm" using apiextensions.k8s.io/v1: .spec.versions

confirm that the tdp-crds chart has already been updated to the expected version, then repeat the tdp-kafka installation or upgrade.

Installation (OCI)

For those who install or operate the cluster, the command below is the first declarative step: Helm applies the tdp-kafka chart in the indicated namespace and Strimzi starts to reconcile the desired state (brokers, Entity Operator, UI and, if enabled, Connect). Behavior adjustments — capacity, listeners, replication, passwords — come later, via values.yaml or helm upgrade with the same release.

Terminal input
helm upgrade --install <RELEASE_NAME> oci://registry.tecnisys.com.br/tdp/charts/tdp-kafka -n <NAMESPACE> --create-namespace --timeout 10m

Post-installation validation

Terminal input
# Kafka cluster status (Strimzi resource)
kubectl get kafka -n <NAMESPACE>

# Cluster Node Pools
kubectl get kafkanodepools -n <NAMESPACE>

# Pods managed by Strimzi
kubectl get pods -n <NAMESPACE> -l strimzi.io/cluster=<KAFKA_CLUSTER_NAME>

# Services created (bootstrap, brokers, UI)
kubectl get svc -n <NAMESPACE> | grep kafka

# KafkaConnect instances (Debezium)
kubectl get kafkaconnect -n <NAMESPACE>

# Registered connectors
kubectl get kafkaconnector -n <NAMESPACE>