Hi Alex,
thanks for bringing this up and sorry for jumping into the discussion that
late. Exposing additional curator configuration parameters through Flink's
config sounds reasonable. Overall, I am fine with the selection of
parameters. My judgement is entirely based on the curator
description, though. If someone has more experience with
configuring/deploying ZooKeeper; it would be great to get more insights.

Here are a few remarks:
- You propose to use camel-case parameter names. I tried to find some
documentation where we decide on the actual formatting for configuration
parameters. Unfortunately, I didn't find any. The Flink configuration
appears to follow kebap-casing, though. We might want to use this format in
this FLIP as well.

A bit out-of-scope for this FLIP: Is the configuration parameter format
documented somewhere? Should we add such a rule to the coding conventions
[1]. What do others think?

- You mention the authentication parameter which expects byte[]. You
suggest using getBytes() to transform the value from the Flink
configuration "Map<String, String>" to what Curator expects. Can you
elaborate in the FLIP a bit more how the overall configuration would look
like in the end? I assume you refer to ConfigOptions#mapType when talking
about Map<String, String>? Do you want to allow multiple AuthInfo records
to be configurable?

- In [2], I found an example where they also suggest utilizing the
AclProvider for allowing write access. This wouldn't be necessary in our
case because the credentials are managed by an outside process, I guess? Or
do we need to look into supporting AclProviders as well?

Best,
Matthias

[1]
https://flink.apache.org/how-to-contribute/code-style-and-quality-formatting/#naming
[2] https://stackoverflow.com/a/55171761


On Mon, Jan 8, 2024 at 9:46 AM Alex Nitavsky <alexnitav...@gmail.com> wrote:

> Thanks Zhanghao Chen for the feedback.
>
> In general right now there is no way to authorise Flink via the Curator
> framework, which is probably an important feature which is missing. Since
> public configuration change requires a Flip, current Flip is proposing to
> add several more potentially important Curator configurations.
>
> Kind regards
> Oleksandr
>
> On Thu, Jan 4, 2024 at 4:57 AM Zhanghao Chen <zhanghao.c...@outlook.com>
> wrote:
>
> > Thanks for driving this. I'm not familiar with the listed advanced
> Curator
> > configs, but the previous added switch for disabling ensemble tracking
> [1]
> > saved us when deploying Flink in a cloud env where ZK can only be
> > accessible via URLs. That being said, +1 for the overall idea, these
> > configs may help users in certain scenarios sooner or later.
> >
> > [1] https://issues.apache.org/jira/browse/FLINK-31780
> >
> > Best,
> > Zhanghao Chen
> > ________________________________
> > From: Alex Nitavsky <alexnitav...@gmail.com>
> > Sent: Thursday, December 14, 2023 21:20
> > To: dev@flink.apache.org <dev@flink.apache.org>
> > Subject: [DISCUSS] FLIP-402: Extend ZooKeeper Curator configurations
> >
> > Hi all,
> >
> > I would like to start a discussion thread for: *FLIP-402: Extend
> ZooKeeper
> > Curator configurations *[1]
> >
> > * Problem statement *
> > Currently Flink misses several Apache Curator configurations, which could
> > be useful for Flink deployment with ZooKeeper as HA provider.
> >
> > * Proposed solution *
> > We have inspected all possible options for Apache Curator and proposed
> > those which could be valuable for Flink users:
> >
> > - high-availability.zookeeper.client.authorization [2]
> > - high-availability.zookeeper.client.maxCloseWaitMs [3]
> > - high-availability.zookeeper.client.simulatedSessionExpirationPercent
> [4]
> >
> > The proposed way is to reflect those properties into Flink configuration
> > options for Apache ZooKeeper.
> >
> > Looking forward to your feedback and suggestions.
> >
> > Kind regards
> > Oleksandr
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-402%3A+Extend+ZooKeeper+Curator+configurations
> > [2]
> >
> >
> https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#authorization(java.lang.String,byte%5B%5D)
> > [3]
> >
> >
> https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#maxCloseWaitMs(int)
> > [4]
> >
> >
> https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#simulatedSessionExpirationPercent(int)
> >
>

Reply via email to