Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The main use case for this command is to remove a node from the voter set in a dynamic KRaft quorum, AND unregister it from the cluster all within the same CLI command. Since this is a common usage pattern, running this command with --unregister can be thought of as a "built-in" script that provides a smooth UX for decommissioning voters in a dynamic quorum. Running the command with --unregister will still fail when the cluster does not support dynamic quorum to be consistent with the behavior of the command when --unregister is not set.

User Experience

There are three The main use cases for the above of these CLI tools , with the recommended steps, are listed below. In any caseWhen trying to unregister a controller, it is assumed that the operator has stopped a node before unregistering it and does not intend to bring that node back in the near future. This is because after unregistering a node, the active controller no longer checks its supported feature levels when validating a feature upgrade. 

...

  1. Stop the voter
  2. Run kafka-metadata-quorum remove-controller with the --unregister flag

Remove a KRaft voter in a dynamic quorum and keep it registered as an observer controller

  1. Run kafka-metadata-quorum remove-controller without the --unregister flag

Unregister an observer controller in a static or dynamic quorum

...

  1. Stop the voter who was mistakenly put in controller.quorum.voters 
  2. Run kafka-cluster unregister-controller
  3. Ensure the stopped voter is not part of controller.quorum.voters on every Kafka nodesnode

Proposed Changes

Controller Changes

...