Chia-Ping Tsai created KAFKA-18775: -------------------------------------- Summary: MetadataQuorumCommand `add-controller`/`remove-controller` should get directory id and endpoint by Admin Key: KAFKA-18775 URL: https://issues.apache.org/jira/browse/KAFKA-18775 Project: Kafka Issue Type: Sub-task Reporter: Chia-Ping Tsai Assignee: Chia-Ping Tsai
Currently, users are required to provide controller.properties to the MetadataQuorumCommand. This necessitates the MetadataQuorumCommand to parse the config to obtain the metadata local path and endpoint for adding or removing voters. This approach has several drawbacks: 1. Limited Accessibility: The node executing the tool must have direct access to the metadata path of the node being added or removed. This restricts the ability to use node A to manage node B, as node A may not have access to the metadata folder on node B. 2. Dependency on Node Configuration: The tool requires access to the configuration of the node being managed However, the essential information for these operations – the "directory UUID" and the "endpoints" – can be obtained through the Admin API. 1. The Admin#describeMetadataQuorum method can provide the directory UUID. 2. The Admin#describeConfigs method, utilizing the bootstrap.controller address, can be used to retrieve the necessary endpoints. Based on this observation, I propose a new, simplified approach for adding/removing voters using the MetadataQuorumCommand. ``` bin/kafka-metadata-quorum --bootstrap-controller localhost:9092 add-controller --controller-id <id> ``` This not only simplifies the command line but also enables us to run it on different nodes. -- This message was sent by Atlassian Jira (v8.20.10#820010)