Hi Martijn, Thank you for this FLIP. I ran into this while upgrading flink-kubernetes to use Fabric8 7.3.1, and overall I agree with the motivation of removing OkHttp/Okio.
For the JDK HTTP client, I agree with Zhe that the JDK version requirement should be very obvious to the users, but I don't think everyone reads release notes. My advice would be to add a runtime check to the Kubernetes client factory that checks the actual JDK version, and fail the application upon startup if the JDK version is < 11.0.19. On the rejected alternative of Vert.x, I think the pulled dependency of Netty stack could be easily shaded and relocated to `org.apache.flink.kubernetes.shaded` just like OkHttp/Okio is today. With the Vert.x 5 adapter (available since Fabric8 7.6), Netty 4.2 is the upstream-tested pairing and aligns with Flink's own netty-bom (currently 4.2.15.Final). I tried this locally, and the full flink-kubernetes test suite passes with the shaded Vert.x adapter. We could alternatively also pin the exact Netty version Vert.x would use. The only downside I see would be the increased size of the distribution and the burden of maintaining the NOTICE files. In my tests the shaded JAR grew from 17.1 MB to 25.1 MB, with 24 new NOTICE entries (17 of them being Netty). Also, since Vert.x is the default HTTP client of Fabric8, it's also the most tested and used one, thus probably the most stable. Overall, I think using the Vert.x HTTP client could be a viable alternative. Best regards, Mate On Mon, Aug 24, 2026 at 5:24 AM Zhe Wang <[email protected]> wrote: > Hi Martijn, > > Thanks for writing this FLIP. The direction makes sense to me, especially > keeping EOL OkHttp out of the shared/core classpath. > > One point I think would be useful to make explicit is the boundary of the > Maven enforcer rules. Since the FLIP allows maintained OkHttp in isolated > plugin classloaders or standalone connector uber-jars, would the > implementation use an explicit module allow-list for those exceptions? That > may make the rule easier to maintain and avoid accidental regressions in > `flink-dist`. > > It would also be helpful if the enforcer failure message points > contributors to the intended alternatives, e.g. use the JDK HTTP client for > core/shared classpath code, or keep a maintained OkHttp dependency isolated > in a plugin/uber-jar when it is genuinely required. > > For the compatibility section, I also think the Java 11.0.19 floor is worth > calling out clearly in release notes, since the behavioral change is > internal but Kubernetes HA users running older Java 11 updates may > otherwise miss the WebSocket query-encoding limitation. > > Best regards, > Zhe Wang > > > Robert Metzger <[email protected]> 于2026年8月19日周三 16:45写道: > > > Looks like a good security hygiene improvement to me +1 > > > > On Wed, Aug 19, 2026 at 10:00 AM Martijn Visser < > [email protected]> > > wrote: > > > > > Hi all, > > > > > > I'd like to start a discussion on FLIP-607, which proposes migrating > > > Flink off the end-of-life OkHttp 3.x line and keeping OkHttp off the > > > core classpath [1] > > > > > > Motivation, in short: > > > > > > - Flink is pinned on OkHttp 3.14.9. It bundles okio 1.17.2, which > > > carries CVE-2023-3635 and flags on every scanner/SBOM. > > > - The pin blocks dependency modernization: the Fabric8 Kubernetes > > > client can't advance past 7.5, because from Fabric8 7.6.0 the OkHttp > > > adapter is compiled against the OkHttp 5 API. So flink-kubernetes is > > > stuck on Fabric8 7.3.1. > > > > > > Proposal, in short: > > > > > > - Switch flink-kubernetes from kubernetes-httpclient-okhttp to > > > kubernetes-httpclient-jdk (the built-in java.net.http client) > > > - Add Maven enforcer rules that forbid OkHttp on the core / flink-dist > > > classpath and ban EOL OkHttp 3.x globally, while allowing isolated > > > plugin/uber-jars to keep a maintained OkHttp where genuinely needed. > > > > > > One point worth flagging up front for reviewers: the JDK HttpClient > > > has a documented limitation where WebSocket requests, which is > > > explained in more detail in the FLIP. That's why the FLIP proposes a > > > minimum Java 11.0.19. > > > > > > Looking forward to your feedback. > > > > > > Thanks, > > > > > > Martijn > > > > > > [1] > > > > > > https://cwiki.apache.org/confluence/spaces/FLINK/pages/449282641/FLIP-607+Migrate+Flink+off+end-of-life+OkHttp+keep+it+off+the+core+classpath > > > > > >
