Thanks Robert for pushing this. +1 for creating java-based e2e tests. In the engine team, we decided to work towards the goal of migrating the bash-based e2e tests to Java/Docker. We plan to migrate the existing bash-based e2e tests located in the Engine team's component space step-by-step. I created an umbrella Jira issue [1] to collect and document the migration efforts. Feel free to do the same by creating subtasks under [1].
Best, Matthias [1] https://issues.apache.org/jira/browse/FLINK-20392 On Thu, Nov 19, 2020 at 8:02 AM Yun Tang <myas...@live.com> wrote: > +1 for java-based E2E test as bash scripts lack of the power to handle > more complicated cases. > > For the docker image improvement, I think we should be more cautious as > developers at China might suffer with the network issue, or at least we > should ensure or find some guides to speed up the image downloading. > > Best > Yun Tang > ________________________________ > From: Xingbo Huang <hxbks...@gmail.com> > Sent: Thursday, November 19, 2020 12:09 > To: dev <dev@flink.apache.org> > Subject: Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink > > Big +1 for java-based e2e tests. Currently PyFlink related tests each take > ~15minutes in bash e2e tests because we are using a secured YARN cluster > which is the only convenient way of starting a YARN cluster in the bash e2e > tests. I think if we migrate these tests to the java-based testing > framework, we will start a Yarn Cluster more conveniently, which will > greatly reduce our testing time. > > Best, > Xingbo > > Rui Li <lirui.fu...@gmail.com> 于2020年11月19日周四 上午10:47写道: > > > Big +1 to java-based e2e tests. It'll be much easier to write/debug these > > tests. > > > > On Wed, Nov 18, 2020 at 9:44 PM Leonard Xu <xbjt...@gmail.com> wrote: > > > > > +1 to stop using bash scripts, > > > and I also have experienced the bash scripts that is really hard to > > > maintain and debug, thanks @Robert for the great work again. > > > > > > I think testcontainers is a nice candidate. > > > > > > Best, > > > Leonard > > > > > > > 在 2020年11月18日,19:46,Aljoscha Krettek <aljos...@apache.org> 写道: > > > > > > > > +1 > > > > > > > > And I want to second Arvid's mention of testcontainers [1]. > > > > > > > > [1] https://www.testcontainers.org/ > > > > > > > > On 18.11.20 10:43, Yang Wang wrote: > > > >> Thanks till and Jark for sharing the information. > > > >> I am also +1 for this proposal and glad to wire the new introduced > K8s > > > HA > > > >> e2e tests to java based framework. > > > >> Best, > > > >> Yang > > > >> Jark Wu <imj...@gmail.com> 于2020年11月18日周三 下午5:23写道: > > > >>> +1 to use the Java-based testing framework and +1 for using docker > > > images > > > >>> in the future. > > > >>> IIUC, the Java-based testing framework refers to the > > > >>> `flink-end-to-end-tests-common` module. > > > >>> The java-based framework helped us a lot when debugging the > unstable > > > e2e > > > >>> tests. > > > >>> > > > >>> Best, > > > >>> Jark > > > >>> > > > >>> On Wed, 18 Nov 2020 at 14:42, Yang Wang <danrtsey...@gmail.com> > > wrote: > > > >>> > > > >>>> Thanks for starting this discussion. > > > >>>> > > > >>>> In general, I agree with you that a java-based testing framework > is > > > >>> better > > > >>>> than the bash-based. It will > > > >>>> help a lot for the commons and utilities. > > > >>>> > > > >>>> Since I am trying to add a new bash-based Kubernetes HA test, I > have > > > some > > > >>>> quick questions. > > > >>>> * I am not sure where the java-based framework is. Do you mean > > > >>>> "flink-jepsen" module or sth else? > > > >>>> * Maybe it will be harder to run a cli command(e.g. flink run / > > > >>>> run-application) to submit a Flink job in the java-based > framework. > > > >>>> * It will be harder to inject some operations. For example, kill > the > > > >>>> JobManager in Kubernetes. Currently, I > > > >>>> am trying to use "kubectl exec" to do this. > > > >>>> > > > >>>> > > > >>>> Best, > > > >>>> Yang > > > >>>> > > > >>>> Robert Metzger <rmetz...@apache.org> 于2020年11月17日周二 下午11:36写道: > > > >>>> > > > >>>>> Hi all, > > > >>>>> > > > >>>>> Since we are currently testing the 1.12 release, and potentially > > > adding > > > >>>>> more automated e2e tests, I would like to bring up our end to end > > > tests > > > >>>> for > > > >>>>> discussion. > > > >>>>> > > > >>>>> Some time ago, we introduced a Java-based testing framework, with > > the > > > >>>> idea > > > >>>>> of replacing the current bash-based end to end tests. > > > >>>>> Since the introduction of the java-based framework, more bash > tests > > > >>> were > > > >>>>> actually added, making a future migration even harder. > > > >>>>> > > > >>>>> *For that reason, I would like to propose that we are stopping to > > add > > > >>> any > > > >>>>> new bash end to end tests to Flink. All new end to end tests must > > be > > > >>>>> written in Java and rely on the existing testing framework.* > > > >>>>> > > > >>>>> For the 1.13 release, I'm trying to find some time to revisit > > > potential > > > >>>>> improvements for the existing java e2e framework (such as using > > > Docker > > > >>>>> images everywhere), as well as a migration plan for the existing > > bash > > > >>>>> tests. We have a large number of bash e2e tests that are just > > > >>>> parameterized > > > >>>>> differently. If we would start migrating them to Java, we could > > move > > > a > > > >>>>> larger proportion of tests over to the new Java framework, and > > tackle > > > >>> the > > > >>>>> more involved bash tests later (kerberized yarn, kubernetes, > ...). > > > >>>>> > > > >>>>> Let me know what you think! > > > >>>>> > > > >>>>> Best, > > > >>>>> Robert > > > >>>>> > > > >>>>> > > > >>>>> PS: If you are wondering why I'm bringing this up now: I'm > spending > > > >>>> quite a > > > >>>>> lot of time trying to figure out really hard to debug issues with > > our > > > >>>> bash > > > >>>>> testing infra. > > > >>>>> Also, it is very difficult to introduce something generic for all > > > tests > > > >>>>> (such as a test-timeout, using docker as the preferred deployment > > > >>> method > > > >>>>> etc.) since the tests often don't share common tooling. > > > >>>>> Speaking about tooling: there are a lot of utilities everywhere, > > > >>>> sometimes > > > >>>>> duplicated, with different features / stability etc. > > > >>>>> I believe bash is not the right tool for a project this size (in > > > terms > > > >>> of > > > >>>>> developers and lines of code) > > > >>>>> > > > >>>> > > > >>> > > > > > > > > > > > > > > -- > > Best regards! > > Rui Li > > > -- Matthias Pohl | Engineer Follow us @VervericaData Ververica <https://www.ververica.com/> -- Join Flink Forward <https://flink-forward.org/> - The Apache Flink Conference Stream Processing | Event Driven | Real Time -- Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany -- Ververica GmbH Registered at Amtsgericht Charlottenburg: HRB 158244 B Managing Directors: Yip Park Tung Jason, Jinwei (Kevin) Zhang, Karl Anton Wehner