KafkaRebalance

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
endpointstringnoConnect-RPC base URL of the crabka-rebalancer service, for example http://my-cluster-rebalancer.kafka.svc:9300. When this field is absent, the operator derives http://<cluster>-rebalancer.<namespace>.svc.cluster.local:9300 from the crabka.io/cluster label.
goalsarraynoOptimization goals to apply, by name, for example RackAware and ReplicaDistribution. When this field is absent or empty, the rebalancer uses its full default goal registry in priority order.
throttleBytesPerSecintegernoReplication throttle in bytes per second while the proposal executes. This is KIP-73. When this field is absent, the rebalancer uses its own --default-throttle-bytes-per-sec.

Status

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Kubernetes-style condition list. The type of the active condition holds the rebalance state. It is one of PendingProposal, ProposalReady, Rebalancing, Ready, NotReady, and Stopped.
observedGenerationintegernometadata.generation of the last spec that gave the current proposal. The operator advances it when it computes a new proposal.
optimizationResultobjectnoSummary of the proposal that the operator computed last.
optimizationResult.goalsarraynoThe goals that the rebalancer applied after the 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.
sessionIdstringnoProposal id that the rebalancer assigned. The operator stores it, so that the approve, stop, and poll operations reach the same proposal in every reconcile.