From 35f14313ee18d374cec3698808cddb0fdc2bf25b Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 13 Aug 2026 12:55:33 +0200 Subject: [PATCH 1/2] docs: Document PDBs for controllers --- .../pages/usage-guide/operations/pod-disruptions.adoc | 8 +++++++- rust/operator-binary/src/controller/build/resource/pdb.rs | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc b/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc index 8c174213e..445a18c3e 100644 --- a/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc +++ b/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc @@ -6,5 +6,11 @@ You can configure the permitted Pod disruptions for Kafka nodes as described in Unless you configure something else or disable the default PodDisruptionBudgets (PDBs), the operator writes the following PDBs: == Brokers -Allow only a single Broker to be offline at any given time, regardless of the number of replicas or `roleGroups`. + +Only a single Broker is allowed to be offline at any given time, regardless of the number of replicas or roleGroups. This is because we can not make any assumptions about topic replication factors. + +== KRaft controllers + +Only a single Broker is allowed to be offline at any given time, regardless of the number of replicas or roleGroups. +This is because they build a quorum for metadata. diff --git a/rust/operator-binary/src/controller/build/resource/pdb.rs b/rust/operator-binary/src/controller/build/resource/pdb.rs index f649e1df8..a8777170b 100644 --- a/rust/operator-binary/src/controller/build/resource/pdb.rs +++ b/rust/operator-binary/src/controller/build/resource/pdb.rs @@ -40,6 +40,8 @@ fn max_unavailable_brokers() -> u16 { } fn max_unavailable_controllers() -> u16 { - // TODO: what do we want here? + // Controllers build a quorum for metadata stuff, so fall below the "Multiple replicas to + // increase availability" category. We basically treat them in the same way we treat ZooKeeper + // nodes. 1 } From 00116718baeb396b41423795f9b6e30b33149fd0 Mon Sep 17 00:00:00 2001 From: Sebastian Bernauer Date: Thu, 13 Aug 2026 13:17:25 +0200 Subject: [PATCH 2/2] Update docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> --- .../kafka/pages/usage-guide/operations/pod-disruptions.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc b/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc index 445a18c3e..57c9e86cf 100644 --- a/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc +++ b/docs/modules/kafka/pages/usage-guide/operations/pod-disruptions.adoc @@ -12,5 +12,5 @@ This is because we can not make any assumptions about topic replication factors. == KRaft controllers -Only a single Broker is allowed to be offline at any given time, regardless of the number of replicas or roleGroups. +Only a single Controller is allowed to be offline at any given time, regardless of the number of replicas or roleGroups. This is because they build a quorum for metadata.