You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Dániel Urbán <ur...@gmail.com> on 2023/01/11 08:53:33 UTC

Re: Re: [DISCUSS] KIP-710: Full support for distributed mode in dedicated MirrorMaker 2.0 clusters

Hi Mickael,
Thanks for the input, I updated the KIP with the config name you suggested.
Daniel

Mickael Maison <mi...@gmail.com> ezt írta (időpont: 2022. nov. 7.,
H, 10:48):

> Hi Daniel,
>
> Thanks for the KIP.
>
> It would be nice to expose more of the REST API as some endpoints are
> really useful, for example /admin or
> /connectors/<connector>/tasks-config. However as dedicated mode is
> currently unusable, I think the approach of "just fixing it" by
> exposing the internal endpoints is fine. It also does not seem to
> corner us too much if we decide to make further changes in the future.
>
> One suggestion I have is to avoid using "mm" in the configuration
> name. Could we rename mm.enable.internal.rest to
> dedicated.mode.enable.internal.rest or something like that?
>
> Thanks,
> Mickael
>
> On Tue, Sep 27, 2022 at 3:56 PM Chris Egerton <ch...@aiven.io.invalid>
> wrote:
> >
> > Thanks Daniel! No further comments from me, looks good.
> >
> > On Tue, Sep 27, 2022 at 4:39 AM Dániel Urbán <ur...@gmail.com>
> wrote:
> >
> > > Hi Chris,
> > >
> > > I understand your points, and I agree that this path is safer in terms
> of
> > > future plans, I accept it.
> > > Updated the KIP accordingly.
> > >
> > > Thanks,
> > > Daniel
> > >
> > > Chris Egerton <ch...@aiven.io.invalid> ezt írta (időpont: 2022.
> szept.
> > > 21., Sze, 18:54):
> > >
> > > > Hi Daniel,
> > > >
> > > > I'm a little hesitant to add support for REST extensions and the
> admin
> > > API
> > > > to dedicated MM2 nodes because they may restrict our options in the
> > > future
> > > > if/when we add a public-facing REST API.
> > > >
> > > > Regarding REST extensions specifically, I understand their security
> value
> > > > for public-facing APIs, but for the internal API--which should only
> ever
> > > be
> > > > targeted by MM2 nodes, and never by humans, UIs, CLIs, etc.--I'm not
> sure
> > > > there's enough need there to add that API this time around. The
> internal
> > > > endpoints used by Kafka Connect should be secured by the session key
> > > > mechanism introduced in KIP-507 [1], and IIUC, with this KIP, users
> will
> > > > also be able to configure their cluster to use mTLS.
> > > >
> > > > Regarding the admin API, I consider it part of the public-facing
> REST API
> > > > for Kafka Connect, so I was assuming we wouldn't want to add it to
> this
> > > KIP
> > > > since we're intentionally slimming down the REST API to just the bare
> > > > essentials (i.e., just the internal endpoints). I can see value for
> it,
> > > but
> > > > it's similar to the status endpoints in the Kafka Connect REST API;
> we
> > > > might choose to expose this sometime down the line, but IMO it'd be
> > > better
> > > > to do that in a separate KIP so that we can iron out the details of
> > > exactly
> > > > what kind of REST API would best suit dedicated MM2 clusters, and how
> > > that
> > > > would differ from the API provided by vanilla Kafka Connect.
> > > >
> > > > Let me know what you think!
> > > >
> > > > Cheers,
> > > >
> > > > Chris
> > > >
> > > > [1] -
> > > >
> > > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-507%3A+Securing+Internal+Connect+REST+Endpoints
> > > >
> > > > On Wed, Sep 21, 2022 at 4:59 AM Dániel Urbán <ur...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Chris,
> > > > >
> > > > > About the worker id: makes sense. I changed the wording, but kept
> it
> > > > listed
> > > > > as it is a change compared to existing MM2 code. Updated the KIP
> > > > > accordingly.
> > > > >
> > > > > About the REST server configurations: again, I agree, it should be
> > > > > generalized. But I'm not sure about those exceptions you listed,
> as all
> > > > of
> > > > > them make sense in MM2 as well. For example, security related rest
> > > > > extensions could work with MM2 as well. Admin listeners are also
> > > useful,
> > > > as
> > > > > they would allow the same admin operations for MM2 nodes. Am I
> mistaken
> > > > > here? Updated the KIP without mentioning exceptions for now.
> > > > >
> > > > > I think yes, the lazy config resolution should be unconditional.
> Even
> > > if
> > > > we
> > > > > don't consider the distributed mode of MM2, the eager resolution
> does
> > > not
> > > > > allow using sensitive configs in the mm2 properties, as they will
> be
> > > > > written by value into the config topic. I didn't really consider
> this
> > > as
> > > > > breaking change, but I might be wrong.
> > > > >
> > > > > Enable flag property name: also makes sense, updated the KIP.
> > > > >
> > > > > Thanks a lot!
> > > > > Daniel
> > > > >
> > > > > Chris Egerton <ch...@aiven.io.invalid> ezt írta (időpont: 2022.
> > > szept.
> > > > > 20., K, 20:29):
> > > > >
> > > > > > Hi Daniel,
> > > > > >
> > > > > > Looking pretty good! Regarding the worker ID
> generation--apologies, I
> > > > was
> > > > > > unclear with my question. I was wondering if we had to adopt any
> > > > special
> > > > > > logic at all for MM2, or if we could use the same logic that
> vanilla
> > > > > Kafka
> > > > > > Connect does in distributed mode, where the worker ID is its
> > > advertised
> > > > > URL
> > > > > > (e.g., "connect:8083" or "localhost:25565"). Unless I'm mistaken,
> > > this
> > > > > > should allow MM2 nodes to be identified unambiguously. Do you
> think
> > > it
> > > > > > makes sense to follow this strategy?
> > > > > >
> > > > > > Now that the details on the new REST interface have been fleshed
> out,
> > > > I'm
> > > > > > also wondering if we want to add support for the "
> > > > > > rest.advertised.host.name",
> > > > > > "rest.advertised.port", and "rest.advertised.listener"
> properties,
> > > > which
> > > > > > are vital for being able to run Kafka Connect in distributed mode
> > > from
> > > > > > within containers. In fact, I'm wondering if we can generalize
> some
> > > of
> > > > > the
> > > > > > specification in the KIP around which REST properties are
> accepted by
> > > > > > stating that all REST-related properties that are available with
> > > > vanilla
> > > > > > Kafka Connect will be supported for dedicated MM2 nodes when
> > > > > > "mm.enable.rest" is set to "true", except for ones related to the
> > > > > > public-facing REST API like "rest.extension.classes",
> > > > "admin.listeners",
> > > > > > and "admin.listeners.https.*".
> > > > > >
> > > > > > One other thought--is the lazy evaluation of config provider
> > > references
> > > > > > going to take place unconditionally, or only when the internal
> REST
> > > API
> > > > > is
> > > > > > enabled on a worker?
> > > > > >
> > > > > > Finally, do you think we could change "mm.enable.rest" to
> > > > > > "mm.enable.internal.rest"? That way, if we want to introduce a
> > > > > > public-facing REST API later on, we can use "mm.enable.rest" as
> the
> > > > name
> > > > > > for that property.
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Chris
> > > > > >
> > > > > > On Fri, Sep 16, 2022 at 9:28 AM Dániel Urbán <
> urb.daniel7@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Chris,
> > > > > > >
> > > > > > > I went through the KIP and updated it based on our discussion.
> I
> > > > think
> > > > > > your
> > > > > > > suggestions simplified (and shortened) the KIP significantly.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Daniel
> > > > > > >
> > > > > > > Dániel Urbán <du...@cloudera.com.invalid> ezt írta (időpont:
> > > 2022.
> > > > > > szept.
> > > > > > > 16., P, 15:15):
> > > > > > >
> > > > > > > > Hi Chris,
> > > > > > > >
> > > > > > > > 1. For the REST-server-per-flow setup, it made sense to
> introduce
> > > > > some
> > > > > > > > simplified configuration. With a single REST server, it
> doesn't
> > > > make
> > > > > > > sense
> > > > > > > > anymore, I'm removing it from the KIP.
> > > > > > > > 2. I think that changing the worker ID generation still makes
> > > > sense,
> > > > > > > > otherwise there is no way to differentiate between the MM2
> > > > instances.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Daniel
> > > > > > > >
> > > > > > > > On Wed, Aug 31, 2022 at 8:39 PM Chris Egerton
> > > > > <chrise@aiven.io.invalid
> > > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi Daniel,
> > > > > > > > >
> > > > > > > > > I've taken a look at the KIP in detail. Here are my
> complete
> > > > > thoughts
> > > > > > > > > (minus the aforementioned sections that may be affected by
> > > > changes
> > > > > to
> > > > > > > an
> > > > > > > > > internal-only REST API):
> > > > > > > > >
> > > > > > > > > 1. Why introduce new mm.host.name and mm.rest.protocol
> > > > properties
> > > > > > > > instead
> > > > > > > > > of using the properties that are already used by Kafka
> Connect:
> > > > > > > > listeners,
> > > > > > > > > rest.advertised.host.name, rest.advertised.host.port, and
> > > > > > > > > rest.advertised.listener? We used to have the
> rest.host.name
> > > and
> > > > > > > > rest.port
> > > > > > > > > properties in Connect but deprecated and eventually removed
> > > them
> > > > in
> > > > > > > favor
> > > > > > > > > of the listeners property in KIP-208 [1]; I'm hoping we can
> > > keep
> > > > > > things
> > > > > > > > as
> > > > > > > > > similar as possible between MM2 and Connect in order to
> make it
> > > > > > easier
> > > > > > > > for
> > > > > > > > > users to work with both. I'm also hoping that we can allow
> > > users
> > > > to
> > > > > > > > > configure the port that their MM2 nodes listen on instead
> of
> > > > > > hardcoding
> > > > > > > > MM2
> > > > > > > > > to bind to port 0.
> > > > > > > > >
> > > > > > > > > 2. Do we still need to change the worker IDs that get used
> in
> > > the
> > > > > > > status
> > > > > > > > > topic?
> > > > > > > > >
> > > > > > > > > Everything else looks good, or should change once the KIP
> is
> > > > > updated
> > > > > > > with
> > > > > > > > > the internal-only REST API alternative.
> > > > > > > > >
> > > > > > > > > Cheers,
> > > > > > > > >
> > > > > > > > > Chris
> > > > > > > > >
> > > > > > > > > [1] -
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-208%3A+Add+SSL+support+to+Kafka+Connect+REST+interface
> > > > > > > > >
> > > > > > > > > On Mon, Aug 29, 2022 at 1:55 PM Chris Egerton <
> chrise@aiven.io
> > > >
> > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Daniel,
> > > > > > > > > >
> > > > > > > > > > Yeah, I think that's the way to go. Adding multiple
> servers
> > > for
> > > > > > each
> > > > > > > > > > herder seems like it'd be too much of a pain for users to
> > > > > > configure,
> > > > > > > > and
> > > > > > > > > if
> > > > > > > > > > we keep the API strictly internal for now, we shouldn't
> be
> > > > > painting
> > > > > > > > > > ourselves into too much of a corner if/when we decide to
> > > > expose a
> > > > > > > > > > public-facing REST API for dedicated MM2 clusters.
> > > > > > > > > >
> > > > > > > > > > I plan to take a look at the rest of the KIP and provide
> a
> > > > > complete
> > > > > > > > > review
> > > > > > > > > > sometime this week; I'll hold off on commenting on
> anything
> > > > that
> > > > > > > seems
> > > > > > > > > like
> > > > > > > > > > it'll be affected by switching to an internal-only REST
> API
> > > > until
> > > > > > > those
> > > > > > > > > > changes are published, but should be able to review
> > > everything
> > > > > > else.
> > > > > > > > > >
> > > > > > > > > > Cheers,
> > > > > > > > > >
> > > > > > > > > > Chris
> > > > > > > > > >
> > > > > > > > > > On Mon, Aug 29, 2022 at 6:57 AM Dániel Urbán <
> > > > > > urb.daniel7@gmail.com>
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > >> Hi Chris,
> > > > > > > > > >>
> > > > > > > > > >> I understand your point, sounds good to me.
> > > > > > > > > >> So in short, we should opt for an internal-only API, and
> > > > > > preferably
> > > > > > > a
> > > > > > > > > >> single server solution. Is that right?
> > > > > > > > > >>
> > > > > > > > > >> Thanks
> > > > > > > > > >> Daniel
> > > > > > > > > >>
> > > > > > > > > >> Chris Egerton <ch...@aiven.io.invalid> ezt írta
> (időpont:
> > > > > 2022.
> > > > > > > aug.
> > > > > > > > > >> 26.,
> > > > > > > > > >> P, 17:36):
> > > > > > > > > >>
> > > > > > > > > >> > Hi Daniel,
> > > > > > > > > >> >
> > > > > > > > > >> > Glad to hear from you!
> > > > > > > > > >> >
> > > > > > > > > >> > With regards to the stripped-down REST API
> alternative, I
> > > > > don't
> > > > > > > see
> > > > > > > > > how
> > > > > > > > > >> > this would prevent us from introducing the
> fully-fledged
> > > > > Connect
> > > > > > > > REST
> > > > > > > > > >> API,
> > > > > > > > > >> > or even an augmented variant of it, at some point
> down the
> > > > > road.
> > > > > > > If
> > > > > > > > we
> > > > > > > > > >> go
> > > > > > > > > >> > with the internal-only API now, and want to expand
> later,
> > > > > can't
> > > > > > we
> > > > > > > > > gate
> > > > > > > > > >> the
> > > > > > > > > >> > expansion behind a feature flag configuration property
> > > that
> > > > by
> > > > > > > > default
> > > > > > > > > >> > disables the new feature?
> > > > > > > > > >> >
> > > > > > > > > >> > I'm also not sure that we'd ever want to expose the
> raw
> > > > > Connect
> > > > > > > REST
> > > > > > > > > API
> > > > > > > > > >> > for dedicated MM2 clusters. If people want that
> > > capability,
> > > > > they
> > > > > > > can
> > > > > > > > > >> > already spin up a vanilla Connect cluster and run as
> many
> > > > MM2
> > > > > > > > > >> connectors as
> > > > > > > > > >> > they'd like on it, and as of KIP-458 [1], it's even
> > > possible
> > > > > to
> > > > > > > use
> > > > > > > > a
> > > > > > > > > >> > single Connect cluster to replicate between any two
> Kafka
> > > > > > clusters
> > > > > > > > > >> instead
> > > > > > > > > >> > of only targeting the Kafka cluster that the vanilla
> > > Connect
> > > > > > > cluster
> > > > > > > > > >> > operates on top of. I do agree that it'd be great to
> be
> > > able
> > > > > to
> > > > > > > > > >> dynamically
> > > > > > > > > >> > adjust things like topic filters without having to
> > > restart a
> > > > > > > > dedicated
> > > > > > > > > >> MM2
> > > > > > > > > >> > node; I'm just not sure that the vanilla Connect REST
> API
> > > is
> > > > > the
> > > > > > > > > >> > appropriate way to do that, especially since the exact
> > > > > > mechanisms
> > > > > > > > that
> > > > > > > > > >> make
> > > > > > > > > >> > a single Connect cluster viable for replicating
> across any
> > > > two
> > > > > > > Kafka
> > > > > > > > > >> > clusters could be abused and cause a dedicated MM2
> cluster
> > > > to
> > > > > > > start
> > > > > > > > > >> writing
> > > > > > > > > >> > to a completely different Kafka cluster that's not
> even
> > > > > defined
> > > > > > in
> > > > > > > > its
> > > > > > > > > >> > config file.
> > > > > > > > > >> >
> > > > > > > > > >> > Finally, as far as security goes--since this is
> > > essentially
> > > > a
> > > > > > bug
> > > > > > > > fix,
> > > > > > > > > >> I'm
> > > > > > > > > >> > inclined to make it as easy as possible for users to
> adopt
> > > > it.
> > > > > > > MTLS
> > > > > > > > > is a
> > > > > > > > > >> > great start for securing a REST API, but it's not
> > > sufficient
> > > > > on
> > > > > > > its
> > > > > > > > > own
> > > > > > > > > >> > since anyone who could issue an authenticated REST
> request
> > > > > > against
> > > > > > > > the
> > > > > > > > > >> MM2
> > > > > > > > > >> > cluster would still be able to make any changes they
> want
> > > > > (with
> > > > > > > the
> > > > > > > > > >> > exception of accessing internal endpoints, which were
> > > > secured
> > > > > > with
> > > > > > > > > >> > KIP-507). If we were to bring up the fully-fledged
> Connect
> > > > > REST
> > > > > > > API,
> > > > > > > > > >> > cluster administrators would also likely have to add
> some
> > > > kind
> > > > > > of
> > > > > > > > > >> > authorization layer to prevent people from using the
> REST
> > > > API
> > > > > to
> > > > > > > > mess
> > > > > > > > > >> with
> > > > > > > > > >> > the configurations of the connectors that MM2 brought
> up.
> > > > One
> > > > > > way
> > > > > > > of
> > > > > > > > > >> doing
> > > > > > > > > >> > that is to add a REST extension to your Connect
> cluster,
> > > but
> > > > > > > > > >> implementing
> > > > > > > > > >> > and configuring one in order to be able to run a
> > > multi-node
> > > > > MM2
> > > > > > > > > cluster
> > > > > > > > > >> > without hitting this bug seems like too much work to
> be
> > > > worth
> > > > > > it.
> > > > > > > > > >> >
> > > > > > > > > >> > I think if we had a better picture of what a REST API
> for
> > > > > > > dedicated
> > > > > > > > > MM2
> > > > > > > > > >> > clusters would/should look like, then it would be
> easier
> > > to
> > > > go
> > > > > > > along
> > > > > > > > > >> with
> > > > > > > > > >> > this, and we could even just add the feature flag in
> this
> > > > KIP
> > > > > > > right
> > > > > > > > > now
> > > > > > > > > >> to
> > > > > > > > > >> > address any security concerns. My instinct would be to
> > > > address
> > > > > > > this
> > > > > > > > > in a
> > > > > > > > > >> > follow-up KIP in order to reduce scope creep, though,
> and
> > > > keep
> > > > > > > this
> > > > > > > > > KIP
> > > > > > > > > >> > focused on addressing the bug with multi-node
> dedicated
> > > MM2
> > > > > > > > clusters.
> > > > > > > > > >> What
> > > > > > > > > >> > do you think?
> > > > > > > > > >> >
> > > > > > > > > >> > Cheers,
> > > > > > > > > >> >
> > > > > > > > > >> > Chris
> > > > > > > > > >> >
> > > > > > > > > >> > [1] -
> > > > > > > > > >> >
> > > > > > > > > >> >
> > > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-458%3A+Connector+Client+Config+Override+Policy
> > > > > > > > > >> >
> > > > > > > > > >> > On Thu, Aug 25, 2022 at 3:55 AM Dániel Urbán <
> > > > > > > urb.daniel7@gmail.com
> > > > > > > > >
> > > > > > > > > >> > wrote:
> > > > > > > > > >> >
> > > > > > > > > >> > > Hi Chris,
> > > > > > > > > >> > >
> > > > > > > > > >> > > Thanks for bringing this up again :)
> > > > > > > > > >> > >
> > > > > > > > > >> > > 1. I think that is reasonable, though I find the
> current
> > > > > state
> > > > > > > of
> > > > > > > > > MM2
> > > > > > > > > >> to
> > > > > > > > > >> > be
> > > > > > > > > >> > > confusing. The current issue with the distributed
> mode
> > > is
> > > > > not
> > > > > > > > > >> documented
> > > > > > > > > >> > > properly, but maybe the logging will help a bit.
> > > > > > > > > >> > >
> > > > > > > > > >> > > 2. Going for an internal-only Connect REST version
> would
> > > > > lock
> > > > > > > MM2
> > > > > > > > > out
> > > > > > > > > >> of
> > > > > > > > > >> > a
> > > > > > > > > >> > > path where the REST API can be used to dynamically
> > > > > reconfigure
> > > > > > > > > >> > > replications. For now, I agree, it would be easy to
> > > > corrupt
> > > > > > the
> > > > > > > > > state
> > > > > > > > > >> of
> > > > > > > > > >> > > MM2 if someone wanted to use the properties and the
> REST
> > > > at
> > > > > > the
> > > > > > > > same
> > > > > > > > > >> > time,
> > > > > > > > > >> > > but in the future, we might have a chance to
> introduce a
> > > > > > > different
> > > > > > > > > >> config
> > > > > > > > > >> > > mechanism, where only the cluster connections have
> to be
> > > > > > > specified
> > > > > > > > > in
> > > > > > > > > >> the
> > > > > > > > > >> > > properties file, and everything else can be
> configured
> > > > > through
> > > > > > > > REST
> > > > > > > > > >> > > (enabling replications, changing topic filters,
> etc.).
> > > > > Because
> > > > > > > of
> > > > > > > > > >> this,
> > > > > > > > > >> > I'm
> > > > > > > > > >> > > leaning towards a full Connect REST API. To avoid
> issues
> > > > > with
> > > > > > > > > >> conflicts
> > > > > > > > > >> > > between the props file and the REST, we could
> document
> > > > > > security
> > > > > > > > best
> > > > > > > > > >> > > practices (e.g. turn on basic auth or mTLS on the
> > > Connect
> > > > > REST
> > > > > > > to
> > > > > > > > > >> avoid
> > > > > > > > > >> > > unwanted interactions).
> > > > > > > > > >> > >
> > > > > > > > > >> > > 3. That is a good point, and I agree, a big plus for
> > > > > > motivation.
> > > > > > > > > >> > >
> > > > > > > > > >> > > I have a working version of this in which all flows
> spin
> > > > up
> > > > > a
> > > > > > > > > >> dedicated
> > > > > > > > > >> > > Connect REST, but I can give other solutions a try,
> too.
> > > > > > > > > >> > >
> > > > > > > > > >> > > Thanks,
> > > > > > > > > >> > > Daniel
> > > > > > > > > >> > >
> > > > > > > > > >> > > Chris Egerton <ch...@aiven.io.invalid> ezt írta
> > > > (időpont:
> > > > > > > 2022.
> > > > > > > > > aug.
> > > > > > > > > >> > 24.,
> > > > > > > > > >> > > Sze, 17:46):
> > > > > > > > > >> > >
> > > > > > > > > >> > > > Hi Daniel,
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > I'd like to resurface this KIP in case you're
> still
> > > > > > interested
> > > > > > > > in
> > > > > > > > > >> > > pursuing
> > > > > > > > > >> > > > it. I know it's been a while since you published
> it,
> > > and
> > > > > it
> > > > > > > > hasn't
> > > > > > > > > >> > > received
> > > > > > > > > >> > > > much attention, but I'm hoping we can give it a
> try
> > > now
> > > > > and
> > > > > > > > > finally
> > > > > > > > > >> put
> > > > > > > > > >> > > > this long-standing bug to rest. To that end, I
> have
> > > some
> > > > > > > > thoughts
> > > > > > > > > >> about
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > proposal. This isn't a complete review, but I
> wanted
> > > to
> > > > > give
> > > > > > > > > enough
> > > > > > > > > >> to
> > > > > > > > > >> > > get
> > > > > > > > > >> > > > the ball rolling:
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > 1. Some environments with firewalls or strict
> security
> > > > > > > policies
> > > > > > > > > may
> > > > > > > > > >> not
> > > > > > > > > >> > > be
> > > > > > > > > >> > > > able to bring up a REST server for each MM2 node.
> If
> > > we
> > > > > > decide
> > > > > > > > > that
> > > > > > > > > >> > we'd
> > > > > > > > > >> > > > like to use the Connect REST API (or even just
> parts
> > > of
> > > > > it)
> > > > > > to
> > > > > > > > > >> address
> > > > > > > > > >> > > this
> > > > > > > > > >> > > > bug with MM2, it does make sense to eventually
> make
> > > the
> > > > > > > > > >> availability of
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > REST API a hard requirement for running MM2, but
> it
> > > > might
> > > > > > be a
> > > > > > > > bit
> > > > > > > > > >> too
> > > > > > > > > >> > > > abrupt to do that all in a single release. What
> do you
> > > > > think
> > > > > > > > about
> > > > > > > > > >> > making
> > > > > > > > > >> > > > the REST API optional for now, but noting that it
> will
> > > > > > become
> > > > > > > > > >> required
> > > > > > > > > >> > > in a
> > > > > > > > > >> > > > later release (probably 4.0.0 or, if that's not
> enough
> > > > > time,
> > > > > > > > > >> 5.0.0)? We
> > > > > > > > > >> > > > could choose not to bring the REST server for any
> node
> > > > > whose
> > > > > > > > > >> > > configuration
> > > > > > > > > >> > > > doesn't explicitly opt into one, and maybe log a
> > > warning
> > > > > > > message
> > > > > > > > > on
> > > > > > > > > >> > > startup
> > > > > > > > > >> > > > if none is configured. In effect, we'd be marking
> the
> > > > > > current
> > > > > > > > mode
> > > > > > > > > >> (no
> > > > > > > > > >> > > REST
> > > > > > > > > >> > > > server) as deprecated.
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > 2. I'm not sure that we should count out the
> "Creating
> > > > an
> > > > > > > > > >> internal-only
> > > > > > > > > >> > > > derivation of the Connect REST API" rejected
> > > > alternative.
> > > > > > > Right
> > > > > > > > > now,
> > > > > > > > > >> > the
> > > > > > > > > >> > > > single source of truth for the configuration of a
> MM2
> > > > > > cluster
> > > > > > > > > >> (assuming
> > > > > > > > > >> > > > it's being run in dedicated mode, and not as a
> > > connector
> > > > > in
> > > > > > a
> > > > > > > > > >> vanilla
> > > > > > > > > >> > > > Connect cluster) is the configuration file used
> for
> > > the
> > > > > > > process.
> > > > > > > > > By
> > > > > > > > > >> > > > bringing up the REST API, we'd expose endpoints to
> > > > modify
> > > > > > > > > connector
> > > > > > > > > >> > > > configurations, which would not only add
> complexity to
> > > > the
> > > > > > > > > operation
> > > > > > > > > >> > of a
> > > > > > > > > >> > > > MM2 cluster, but even qualify as an attack vector
> for
> > > > > > > malicious
> > > > > > > > > >> > entities.
> > > > > > > > > >> > > > Thanks to KIP-507 we have some amount of security
> > > around
> > > > > the
> > > > > > > > > >> > > internal-only
> > > > > > > > > >> > > > endpoints used by the Connect framework, but for
> any
> > > > > public
> > > > > > > > > >> endpoints,
> > > > > > > > > >> > > the
> > > > > > > > > >> > > > Connect REST API doesn't come with any security
> out of
> > > > the
> > > > > > > box.
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > 3. Small point, but with support for exactly-once
> > > source
> > > > > > > > > connectors
> > > > > > > > > >> > > coming
> > > > > > > > > >> > > > out in 3.3.0, it's also worth noting that that's
> > > another
> > > > > > > feature
> > > > > > > > > >> that
> > > > > > > > > >> > > won't
> > > > > > > > > >> > > > work properly with multi-node MM2 clusters without
> > > > adding
> > > > > a
> > > > > > > REST
> > > > > > > > > >> server
> > > > > > > > > >> > > for
> > > > > > > > > >> > > > each node (or some substitute that accomplishes
> the
> > > same
> > > > > > > goal).
> > > > > > > > I
> > > > > > > > > >> don't
> > > > > > > > > >> > > > think this will affect the direction of the design
> > > > > > discussion
> > > > > > > > too
> > > > > > > > > >> much,
> > > > > > > > > >> > > but
> > > > > > > > > >> > > > it does help strengthen the motivation.
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > Cheers,
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > Chris
> > > > > > > > > >> > > >
> > > > > > > > > >> > > > On 2021/02/18 15:57:36 Dániel Urbán wrote:
> > > > > > > > > >> > > > > Hello everyone,
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > * Sorry, I meant KIP-710.
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > Right now the MirrorMaker cluster is somewhat
> > > > > unreliable,
> > > > > > > and
> > > > > > > > > not
> > > > > > > > > >> > > > > supporting running in a cluster properly. I'd
> say
> > > that
> > > > > > > fixing
> > > > > > > > > this
> > > > > > > > > >> > > would
> > > > > > > > > >> > > > be
> > > > > > > > > >> > > > > a nice addition.
> > > > > > > > > >> > > > > Does anyone have some input on this?
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > Thanks in advance
> > > > > > > > > >> > > > > Daniel
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > Dániel Urbán <ur...@gmail.com> ezt írta
> (időpont:
> > > > 2021.
> > > > > > > jan.
> > > > > > > > > >> 26., K,
> > > > > > > > > >> > > > > 15:56):
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > > > > Hello everyone,
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > I would like to start a discussion on KIP-709,
> > > which
> > > > > > > > addresses
> > > > > > > > > >> some
> > > > > > > > > >> > > > > > missing features in MM2 dedicated mode.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > >
> > > > > > > > > >> > > >
> > > > > > > > > >> > >
> > > > > > > > > >> >
> > > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-710%3A+Full+support+for+distributed+mode+in+dedicated+MirrorMaker+2.0+clusters
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Currently, the dedicated mode of MM2 does not
> > > fully
> > > > > > > support
> > > > > > > > > >> running
> > > > > > > > > >> > > in
> > > > > > > > > >> > > > a
> > > > > > > > > >> > > > > > cluster. The core issue is that the Connect
> REST
> > > > > Server
> > > > > > is
> > > > > > > > not
> > > > > > > > > >> > > included
> > > > > > > > > >> > > > in
> > > > > > > > > >> > > > > > the dedicated mode, which makes
> follower->leader
> > > > > > > > communication
> > > > > > > > > >> > > > impossible.
> > > > > > > > > >> > > > > > In some cases, this results in the cluster not
> > > being
> > > > > > able
> > > > > > > to
> > > > > > > > > >> react
> > > > > > > > > >> > to
> > > > > > > > > >> > > > > > dynamic configuration changes (e.g. dynamic
> topic
> > > > > filter
> > > > > > > > > >> changes).
> > > > > > > > > >> > > > > > Another smaller detail is that MM2 dedicated
> mode
> > > > > > eagerly
> > > > > > > > > >> resolves
> > > > > > > > > >> > > > config
> > > > > > > > > >> > > > > > provider references in the Connector
> > > configurations,
> > > > > > which
> > > > > > > > is
> > > > > > > > > >> > > > undesirable
> > > > > > > > > >> > > > > > and a breaking change compared to vanilla
> Connect.
> > > > > This
> > > > > > > can
> > > > > > > > > >> cause
> > > > > > > > > >> > an
> > > > > > > > > >> > > > issue
> > > > > > > > > >> > > > > > for example when there is an environment
> variable
> > > > > > > reference,
> > > > > > > > > >> which
> > > > > > > > > >> > > > contains
> > > > > > > > > >> > > > > > some host-specific information, like a file
> path.
> > > > The
> > > > > > > leader
> > > > > > > > > >> > resolves
> > > > > > > > > >> > > > the
> > > > > > > > > >> > > > > > reference eagerly, and the resolved value is
> > > > > propagated
> > > > > > to
> > > > > > > > > other
> > > > > > > > > >> > MM2
> > > > > > > > > >> > > > nodes
> > > > > > > > > >> > > > > > instead of the reference being resolved
> locally,
> > > > > > > separately
> > > > > > > > on
> > > > > > > > > >> each
> > > > > > > > > >> > > > node.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > The KIP addresses these by adding the Connect
> REST
> > > > > > Server
> > > > > > > to
> > > > > > > > > the
> > > > > > > > > >> > MM2
> > > > > > > > > >> > > > > > dedicated mode for each replication flow, and
> > > > > postponing
> > > > > > > the
> > > > > > > > > >> config
> > > > > > > > > >> > > > > > provider reference resolution.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Please discuss, I know this is a major
> change, but
> > > > > also
> > > > > > an
> > > > > > > > > >> > important
> > > > > > > > > >> > > > > > feature for MM2 users.
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > > > Daniel
> > > > > > > > > >> > > > > >
> > > > > > > > > >> > > > >
> > > > > > > > > >> > > >
> > > > > > > > > >> > >
> > > > > > > > > >> >
> > > > > > > > > >>
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
>