Chapter 81. KafkaConnectSpec schema reference


Used in: KafkaConnect

Full list of KafkaConnectSpec schema properties

Configures a Kafka Connect cluster.

The config properties are one part of the overall configuration for the resource. Use the config properties to configure Kafka Connect options as keys.

Example Kafka Connect configuration

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    group.id: my-connect-cluster
    offset.storage.topic: my-connect-cluster-offsets
    config.storage.topic: my-connect-cluster-configs
    status.storage.topic: my-connect-cluster-status
    key.converter: org.apache.kafka.connect.json.JsonConverter
    value.converter: org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable: true
    value.converter.schemas.enable: true
    config.storage.replication.factor: 3
    offset.storage.replication.factor: 3
    status.storage.replication.factor: 3
  # ...
Copy to Clipboard Toggle word wrap

The values can be one of the following JSON types:

  • String
  • Number
  • Boolean

Certain options have default values:

  • group.id with default value connect-cluster
  • offset.storage.topic with default value connect-cluster-offsets
  • config.storage.topic with default value connect-cluster-configs
  • status.storage.topic with default value connect-cluster-status
  • key.converter with default value org.apache.kafka.connect.json.JsonConverter
  • value.converter with default value org.apache.kafka.connect.json.JsonConverter

These options are automatically configured in case they are not present in the KafkaConnect.spec.config properties.

Exceptions

You can specify and configure the options listed in the Apache Kafka documentation.

However, Streams for Apache Kafka takes care of configuring and managing options related to the following, which cannot be changed:

  • Kafka cluster bootstrap address
  • Security (encryption, authentication, and authorization)
  • Listener and REST interface configuration
  • Plugin path configuration

Properties with the following prefixes cannot be set:

  • bootstrap.servers
  • consumer.interceptor.classes
  • listeners.
  • plugin.path
  • producer.interceptor.classes
  • rest.
  • sasl.
  • security.
  • ssl.

If the config property contains an option that cannot be changed, it is disregarded, and a warning message is logged to the Cluster Operator log file. All other supported options are forwarded to Kafka Connect, including the following exceptions to the options configured by Streams for Apache Kafka:

Important

The Cluster Operator does not validate keys or values in the config object provided. If an invalid configuration is provided, the Kafka Connect cluster might not start or might become unstable. In this case, fix the configuration so that the Cluster Operator can roll out the new configuration to all Kafka Connect nodes.

81.1. Logging

Warning

Kafka 3.9 and earlier versions use log4j1 for logging. For log4j1-based configuration examples, refer to the Streams for Apache Kafka 2.9 documentation.

Kafka Connect has its own preconfigured loggers:

Expand
LoggerDescriptionDefault Level

rootLogger

Default logger for all classes

INFO

reflections

Logs classpath scanning and metadata discovery used to find plugins

ERROR

Further loggers are added depending on the Kafka Connect plugins running.

Use a curl request to get a complete list of Kafka Connect loggers running from any Kafka broker pod:

curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Copy to Clipboard Toggle word wrap

Kafka Connect uses the Apache log4j2 logger implementation. Use the logging property to configure loggers and logger levels.

You can set log levels using either the inline or external logging configuration types.

Specify loggers and levels directly in the custom resource for inline configuration:

Example inline logging configuration

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: inline
    loggers:
      rootLogger.level: INFO
      logger.reflections.level: DEBUG
  # ...
Copy to Clipboard Toggle word wrap

You can define additional loggers by specifying the full class or package name using logger.<name>.name. For example, to configure logging for Kafka Connect runtime classes inline:

Example custom inline loggers

# ...
logger.sourcetask.name: org.apache.kafka.connect.runtime.WorkerSourceTask 
1

logger.sourcetask.level: TRACE 
2

logger.sinktask.name: org.apache.kafka.connect.runtime.WorkerSinkTask 
3

logger.sinktask.level: DEBUG 
4
Copy to Clipboard Toggle word wrap

1
Creates a logger for the runtime WorkerSourceTask class.
2
Sets the logging level for WorkerSourceTask.
3
Creates a logger for the runtime WorkerSinkTask class.
4
Sets the logging level for WorkerSinkTask.

Alternatively, you can reference an external ConfigMap containing a complete log4j2.properties file that defines your own log4j2 configuration, including loggers, appenders, and layout configuration:

Example external logging configuration

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        # name and key are mandatory
        name: customConfigMap
        key: log4j2.properties
  # ...
Copy to Clipboard Toggle word wrap

Garbage collector (GC)

Garbage collector logging can also be enabled (or disabled) using the jvmOptions property.

81.2. KafkaConnectSpec schema properties

Expand
PropertyProperty typeDescription

version

string

The Kafka Connect version. Defaults to the latest version. Consult the user documentation to understand the process required to upgrade or downgrade the version.

replicas

integer

The number of pods in the Kafka Connect group. Defaults to 3.

image

string

The container image used for Kafka Connect pods. If no image name is explicitly specified, it is determined based on the spec.version configuration. The image names are specifically mapped to corresponding versions in the Cluster Operator configuration.

bootstrapServers

string

Bootstrap servers to connect to. This should be given as a comma separated list of <hostname>:_<port>_ pairs.

tls

ClientTls

TLS configuration.

authentication

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

Authentication configuration for Kafka Connect.

config

map

The Kafka Connect configuration. Properties with the following prefixes cannot be set: ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (with the exception of: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).

resources

ResourceRequirements

The maximum limits for CPU and memory resources and the requested initial resources.

livenessProbe

Probe

Pod liveness checking.

readinessProbe

Probe

Pod readiness checking.

jvmOptions

JvmOptions

JVM Options for pods.

jmxOptions

KafkaJmxOptions

JMX Options.

logging

InlineLogging, ExternalLogging

Logging configuration for Kafka Connect.

clientRackInitImage

string

The image of the init container used for initializing the client.rack.

rack

Rack

Configuration of the node label which will be used as the client.rack consumer configuration.

metricsConfig

JmxPrometheusExporterMetrics

Metrics configuration.

tracing

JaegerTracing, OpenTelemetryTracing

The configuration of tracing in Kafka Connect.

template

KafkaConnectTemplate

Template for Kafka Connect and Kafka MirrorMaker 2 resources. The template allows users to specify how the Pods, Service, and other services are generated.

externalConfiguration

ExternalConfiguration

The externalConfiguration property has been deprecated. The external configuration is deprecated and will be removed in the future. Please use the template section instead to configure additional environment variables or volumes. Pass data from Secrets or ConfigMaps to the Kafka Connect pods and use them to configure connectors.

build

Build

Configures how the Connect container image should be built. Optional.

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat