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)