Thanks for your reply Zhu Zhu. I guess, if we don't see any value in
aligning the parameter names (I don't have a strong argument either aside
from "it looks nicer"), there wouldn't be a need to add it to the
guidelines as well.

Sorry for not responding right away. I did a bit of research on the
AuthInfo configuration parameter (server side authorization [1], SO thread
on utilizing curator's authorization API [2]). It looks like using
String#getBytes() is the valid approach to configure this. So, in this way,
I don't have anything to add to this FLIP proposal.

+1 LGTM

[1]
https://cwiki.apache.org/confluence/display/ZOOKEEPER/Client-Server+mutual+authentication
[2] https://stackoverflow.com/questions/40427700/using-acl-with-curator

On Wed, Jan 24, 2024 at 12:35 PM Zhu Zhu <reed...@gmail.com> wrote:

> @Matthias
> Thanks for raising the question.
>
> AFAIK, there is no guide of this naming convention yet. But +1 to add this
> naming
> convention in Flink code style guide. So that new configuration names can
> follow
> the guide.
>
> However, I tend to not force the configuration name alignment in Flink 2.0.
> It does not bring obvious benefits to users but will increase the
> migration cost.
> And the feature freeze of 1.19 is coming soon. I think we can add aligned
> key
> names for those exceptional config options in 1.20, but remove the old
> keys in
> later major versions.
>
> Thanks,
> Zhu
>
> Matthias Pohl <matthias.p...@aiven.io> 于2024年1月23日周二 19:45写道:
>
>> - Regarding names: sure it totally makes sense to follow the kebab case
>>> and Flip has reflected the change.
>>> Regarding the convention, Flink has this widely used configuration
>>> storageDir, which doesn't follow the kebab rule and creates some confusion.
>>> IMHO it would be valuable to add a clear guide.
>>
>>
>> Ah true, I should have checked the HA-related parameters as well.
>> Initially, I just briefly skimmed over a few ConfigOptions names.
>>
>> @Zhu Zhu Is the alignment of the configuration parameter names also part
>> of the 2.0 efforts that touch the Flink configuration? Is there a guideline
>> we can follow here which is future-proof in terms of parameter naming?
>>
>> - I am considering calling the next method from the Curator framework:
>>> authorization(List<AuthInfo>) [2]. I have added necessary details regarding
>>> Map<String, String> -> List(AuthInfo) conversion, taking into account that
>>> AuthInfo has a constructor with String, byte[] parameters.
>>>
>>
>> The update in the FLIP looks good to me.
>>
>> - Good point. Please let me know if I am missing something, but it seems
>>> that we already can influence ACLProvider for Curator in Flink with
>>> high-availability.zookeeper.client.acl [2] . The way it is done currently
>>> is translation of the predefined constant to some predefined ACL Provider
>>> [3]. I do not see if we can add something to the current FLIP. I suppose
>>> that eventual extension of the supported ACLProvider would be
>>> straightforward and could be done outside of the current Flip as soon
>>> as concrete use-case requirements arise.
>>
>>
>> Thanks for the pointer. My concern is just that, we might have to
>> consider certain formats for the AuthInfo to be aligned with ACLProviders.
>>
>> @Marton: I know that ZooKeeper is probably a bit unrelated to FLIP-211
>> [1] but since you worked on the Kerberos delegation token provider: Is
>> there something to consider for the ZK Kerberos integration? Maybe, you can
>> help us out.
>>
>> Matthias
>>
>> [1]
>> https://cwiki.apache.org/confluence/display/FLINK/FLIP-211%3A+Kerberos+delegation+token+framework
>>
>> On Mon, Jan 22, 2024 at 6:55 PM Alex Nitavsky <alexnitav...@gmail.com>
>> wrote:
>>
>>> Hello Matthias,
>>>
>>> Thanks a lot for the feedback.
>>>
>>> - Regarding names: sure it totally makes sense to follow the kebab case
>>> and Flip has reflected the change.
>>> Regarding the convention, Flink has this widely used configuration
>>> storageDir, which doesn't follow the kebab rule and creates some confusion.
>>> IMHO it would be valuable to add a clear guide.
>>>
>>> - I am considering calling the next method from the Curator framework:
>>> authorization(List<AuthInfo>) [2]. I have added necessary details regarding
>>> Map<String, String> -> List(AuthInfo) conversion, taking into account that
>>> AuthInfo has a constructor with String, byte[] parameters.
>>>
>>> - Good point. Please let me know if I am missing something, but it seems
>>> that we already can influence ACLProvider for Curator in Flink with
>>> high-availability.zookeeper.client.acl [2] . The way it is done currently
>>> is translation of the predefined constant to some predefined ACL Provider
>>> [3]. I do not see if we can add something to the current FLIP. I suppose
>>> that eventual extension of the supported ACLProvider would be
>>> straightforward and could be done outside of the current Flip as soon
>>> as concrete use-case requirements arise.
>>>
>>> Kind Regards
>>> Oleksandr
>>>
>>> [1]
>>> https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#authorization(java.util.List)https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#authorization(java.util.List)
>>> <https://curator.apache.org/apidocs/org/apache/curator/framework/CuratorFrameworkFactory.Builder.html#authorization(java.util.List)>
>>> [2]
>>> https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#high-availability-zookeeper-client-acl
>>> [3]
>>> https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/util/ZooKeeperUtils.java#L208
>>>
>>>
>>>
>>> On Mon, Jan 22, 2024 at 1:10 PM Matthias Pohl
>>> <matthias.p...@aiven.io.invalid> wrote:
>>>
>>>> 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