KafkaRebalance

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
endpointstringnoConnect-RPC base URL of the crabka-rebalancer service, e.g. http://my-cluster-rebalancer.kafka.svc:9300. When omitted the operator derives http://<cluster>-rebalancer.<namespace>.svc.cluster.local:9300 from the crabka.io/cluster label.
goalsarraynoOptimization goals to apply, by name (e.g. RackAware, ReplicaDistribution). When omitted or empty the rebalancer uses its full default goal registry in priority order.
throttleBytesPerSecintegernoReplication throttle (bytes/sec) applied while the proposal executes (KIP-73). When omitted the rebalancer falls back to its own --default-throttle-bytes-per-sec.

Status

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Kubernetes-style condition list. The active condition's type carries the rebalance state: one of PendingProposal, ProposalReady, Rebalancing, Ready, NotReady, Stopped.
observedGenerationintegernometadata.generation of the last spec that produced the current proposal (advanced when a fresh proposal is computed).
optimizationResultobjectnoSummary of the most recently computed proposal.
optimizationResult.goalsarraynoThe goals the rebalancer actually applied (post-selection).
optimizationResult.leaderMovementsintegerno0Number of leadership changes in the proposal.
optimizationResult.maxLeadersAfterintegerno0Max partitions led by any one broker after the proposal applies.
optimizationResult.maxLeadersBeforeintegerno0Max partitions led by any one broker before the proposal applies.
optimizationResult.maxReplicasAfterintegerno0Max replicas on any one broker after the proposal applies.
optimizationResult.maxReplicasBeforeintegerno0Max replicas on any one broker before the proposal applies.
optimizationResult.replicaMovementsintegerno0Number of partition replica reassignments in the proposal.
sessionIdstringnoRebalancer-assigned proposal id. Stored so approve / stop / poll operations target the same proposal across reconciles.