Opaque topic-level config (retention.ms, cleanup.policy, etc.). Reconciled via IncrementalAlterConfigs SET/DELETE diff against the cluster's current dynamic-topic overrides.
partitions
integer
yes
Number of partitions. Increases honored via CreatePartitions; decreases rejected with ImmutableFieldChanged.
preserveTopic
boolean
no
false
When true, CRD delete still removes the finalizer but skips the DeleteTopics call so the Kafka topic survives. Default false.
replicas
integer
yes
Replication factor. Changes rejected with ImmutableFieldChanged until partition reassignment lands.
topicName
string
no
Optional override for the Kafka topic name. Defaults to metadata.name. Validated at reconcile time against Kafka's rules (length ≤ 249, chars [A-Za-z0-9._-], not . or ..).
Status
Field
Type
Required
Default
Description
conditions
array
no
[]
Standard Kubernetes-style condition list. Surfaces Ready.
observedGeneration
integer
no
metadata.generation of the last successfully-reconciled spec (i.e. last time we wrote Ready=True reason=Ready).
topicId
string
no
Cluster-assigned topic UUID, populated once the topic exists.
topicName
string
no
Effective topic name (defaulted if spec.topicName unset).