> > - 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) >> > > >> > >> >