KafkaTopic

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
configobjectnoOpaque topic-level config (retention.ms, cleanup.policy, etc.). Reconciled via IncrementalAlterConfigs SET/DELETE diff against the cluster's current dynamic-topic overrides.
partitionsintegeryesNumber of partitions. Increases honored via CreatePartitions; decreases rejected with ImmutableFieldChanged.
preserveTopicbooleannofalseWhen true, CRD delete still removes the finalizer but skips the DeleteTopics call so the Kafka topic survives. Default false.
replicasintegeryesReplication factor. Changes rejected with ImmutableFieldChanged until partition reassignment lands.
topicNamestringnoOptional 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

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Standard Kubernetes-style condition list. Surfaces Ready.
observedGenerationintegernometadata.generation of the last successfully-reconciled spec (i.e. last time we wrote Ready=True reason=Ready).
topicIdstringnoCluster-assigned topic UUID, populated once the topic exists.
topicNamestringnoEffective topic name (defaulted if spec.topicName unset).