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 main use cases for the above CLI tools, with the recommended steps, listed below:

Remove and unregister a KRaft voter in a dynamic quorum

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

Unregister an observer controller in a dynamic quorum

  1. Stop the observer
  2. Run kafka-cluster unregister-controller

Unregister a voter in a static KRaft quorum when the static voter set is mistakenly configured

  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 any other Kafka nodes

Proposed Changes

Controller Changes

...