DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
One approach is for the controller to allow unregistering controllers non-durably if the metadata version does not support the UnregisterControllerRecord. This gives operators a path to migrate existing clusters onto a MV that supports this record, where they can persist the unregister record.
Another approach is to not add a UnregisterControllerRecord. One idea is to use a sentinel value for brokerEpoch in UnregisterBrokerRecord to signify unregistering a controller. This means we could durably persist unregistering controllers without requiring a MV upgrade to do so.
Test Plan
Add an integration test for unregistering a controller in both static quorum and dynamic quorum clusters.
...
Although this feature would be nice, since we would couple controller registration with being a KRaft voter, the main issue with this is that it will prevent the proposed improvements from KIP-1141: Simplifying Add/Remove Voter in MetadataQuorumCommand from being implemented. The proposed changes from KIP-1141 improve the UX around adding a controller to the KRaft voter set, but they rely on observer controllers having persisted a registration to retrieve their endpoints.
Use UnregisterBrokerRecord to unregister controllers
This approach would be one way existing clusters could support unregistering stale controller registrations without updating the MV. However, the main issue with this approach is that it is unsafe. A user who unregisters a controller before updating the software versions on all controllers to support this feature would crash the controllers with an older software version.