I had another look. LGTM!

Thanks for the KIP.
+1 (binding) from me.

Thank you,
Luke

On Tue, Apr 29, 2025 at 12:59 PM Kuan Po Tseng <[email protected]> wrote:

> Hi Colin,
>
> I just wanted to make sure I’m on the right track, so I’m sharing my
> understanding of
> the current process for adding a controller to the voter set.
>
> Here's what I think it looks like:
> Step 1: Use kafka-storage.sh format to format the controller.
> Step 2: Start up the controller and ensure it starts up successfully.
> Step 3: Provide the controller config and use the kafka-metadata-quorum.sh
> add-controller command to add the controller to the voter set.
>
> The KIP aims to simplify "Step 3". It removes the need to provide the
> controller config,
> as all the information that add-controller requires—like the directory UUID
> and controller endpoint—
> can be gathered through Admin#describeMetadataQuorum and
> Admin#describeConfigs.
> Since the controller is already in the cluster by Step 2, this information
> should be available.
>
> So, users would still need to complete "Step 1" and "Step 2".
> Otherwise, as you mentioned, we won’t be able to retrieve the controller
> UUID and its corresponding endpoints for Step 3.
>
> I’m not sure if I’ve misunderstood anything, so please let me know if
> there’s anything I’ve missed.
>
> Thanks so much for reviewing my KIP!
>
> Best regards,
> Kuan-Po Tseng
>
> On Tue, Apr 29, 2025 at 8:50 AM Colin McCabe <[email protected]> wrote:
>
> > So to expand a bit on what I wrote below:
> >
> > - If the goal is to make it possible to have adding the controller node
> > happen in one place, and formatting the controller node happen in
> another,
> > those two places still need to communicate. What they need to communicate
> > is the new directory ID. This is basically a random UUID that must never
> be
> > reused.
> >
> > - The most obvious way to do that is to format the new controller node
> > first, and then grab that ID. This is what the current system does, by
> > reading that local file.
> >
> > - Another way to do it would be to generate the UUID somewhere else, and
> > then format using --initial-controllers. This currently requires spelling
> > out the full set of controllers and matching directory ids in the
> cluster.
> > One thing that is a bit subtle is that the tool will actually look at
> what
> > directory ID you gave, and use that directory ID when formatting your
> > directory. This should be documented a bit more prominently if we want
> > people to use this mechanism.
> >
> > best,
> > Colin
> >
> >
> > On Mon, Apr 28, 2025, at 13:21, Colin McCabe wrote:
> > > Hi Kuan Po Tseng,
> > >
> > > It is not possible to add a new controller purely by ID. You need
> > > controller ID, directory ID, and controller endpoints.
> > >
> > > These cannot be obtained through describeMetadataQuorum since that only
> > > describes the existing quorum, not what you would like the new one to
> > > be. Also, obviously, we never want to reuse an existing directory ID.
> > >
> > > Therefore I will vote -1 on this pending further discussion.
> > >
> > > best,
> > > Colin
> > >
> > > On Tue, Apr 22, 2025, at 08:56, Kuan Po Tseng wrote:
> > >> Hello everyone,
> > >>
> > >> I would like to start a vote on KIP-1141, thank you!
> > >>
> > >> KIP: https://cwiki.apache.org/confluence/x/PZFEF
> > >> Discussion thread:
> > >> https://lists.apache.org/thread/mq5n8j8w0ycg9fhd1m4zcc2ctrgfd0d4
> > >>
> > >> Best,
> > >> Kuan-Po Tseng
> >
>

Reply via email to