// Module included in the following assemblies:
//
// assembly-kafka-entity-operator.adoc

[id='topic-operator-{context}']
= Topic Operator configuration properties

Topic Operator deployment can be configured using additional options inside the `topicOperator` object.
The following properties are supported:

`watchedNamespace`::
The Kubernetes namespace in which the topic operator watches for `KafkaTopics`.
Default is the namespace where the Kafka cluster is deployed.

`reconciliationIntervalSeconds`::
The interval between periodic reconciliations in seconds.
Default `90`.

`zookeeperSessionTimeoutSeconds`::
The ZooKeeper session timeout in seconds.
Default `20`.

`topicMetadataMaxAttempts`::
The number of attempts at getting topic metadata from Kafka.
The time between each attempt is defined as an exponential back-off.
Consider increasing this value when topic creation could take more time due to the number of partitions or replicas.
Default `6`.

`image`::
The `image` property can be used to configure the container image which will be used.
For more details about configuring custom container images, see xref:assembly-configuring-container-images-{context}[].

`resources`::
The `resources` property configures the amount of resources allocated to the Topic Operator.
For more details about resource request and limit configuration, see xref:assembly-resource-limits-and-requests-{context}[].

`logging`::
The `logging` property configures the logging of the Topic Operator.
For more details, see xref:con-entity-operator-logging-{context}[].

.Example of Topic Operator configuration
[source,yaml,subs=attributes+]
----
apiVersion: {KafkaApiVersion}
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    topicOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
    # ...
----
