[DISCUSS] Stop adding new bash-based e2e tests to Flink

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

[DISCUSS] Stop adding new bash-based e2e tests to Flink

Robert Metzger
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)
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Yang Wang
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 <[hidden email]> 于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)
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Till Rohrmann
Big +1 for your proposal Robert. I think the decision to use bash for our
e2e tests already fired back on us several times. Hence, I believe it is
time for a serious effort to get away from it.

The e2e test framework can be found here [1].

When using the e2e test framework, it should be possible to use Flink's
programmatic tools to submit a job (e.g. the RestClusterClient).

For killing K8s processes one could write a wrapper for kubectl which can
be called from the Java code. I think we already have it for some other cli
tools [2]. Alternatively, one could use Fabric8 to communicate with the K8s
cluster.

[1]
https://github.com/apache/flink/tree/master/flink-end-to-end-tests/flink-end-to-end-tests-common
[2]
https://github.com/apache/flink/blob/master/flink-end-to-end-tests/flink-end-to-end-tests-common/src/main/java/org/apache/flink/tests/util/CommandLineWrapper.java

Cheers,
Till

On Wed, Nov 18, 2020 at 7:42 AM Yang Wang <[hidden email]> 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 <[hidden email]> 于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)
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Jark Wu-2
In reply to this post by Yang Wang
+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 <[hidden email]> 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 <[hidden email]> 于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)
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Arvid Heise-3
Also +1 for java-based testing framework; bash just disrupts development
flow too much.
+1 to use docker as much as possible, ideally with testcontainers [1].

[1] https://www.testcontainers.org/


On Wed, Nov 18, 2020 at 10:23 AM Jark Wu <[hidden email]> wrote:

> +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 <[hidden email]> 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 <[hidden email]> 于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)
> > >
> >
>


--

Arvid Heise | Senior Java Developer

<https://www.ververica.com/>

Follow us @VervericaData

--

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: Timothy Alexander Steinert, Yip Park Tung Jason, Ji
(Toni) Cheng
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Yang Wang
In reply to this post by Jark Wu-2
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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 于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)
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Aljoscha Krettek-2
+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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 于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)
>>>>
>>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Leonard Xu
+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 <[hidden email]> 写道:
>
> +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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 于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)
>>>>>
>>>>
>>>
>

Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Rui Li
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 <[hidden email]> 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 <[hidden email]> 写道:
> >
> > +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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Xingbo Huang
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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 写道:
> > >
> > > +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 <[hidden email]> 于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 <[hidden email]>
> 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 <[hidden email]> 于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
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Yun Tang
+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 <[hidden email]>
Sent: Thursday, November 19, 2020 12:09
To: dev <[hidden email]>
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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 写道:
> > >
> > > +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 <[hidden email]> 于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 <[hidden email]>
> 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 <[hidden email]> 于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
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Kevin Kwon
In reply to this post by Robert Metzger
Hi :)

For me, it's a bit unclear what it means by not using Docker in e2e tests
in K8S context, since K8S require Docker by default

Also, for for K8S test orchestration, wouldn't vanilla Python suffice? It
has all the K8S, Docker client libraries supported natively by them

Might just need to write a bit of health check scripts on other infras that
Flink supports like Kafka, S3 (mock) etc to safely start Flink and perform
any blackbox testing


On 2020/11/17 15:35:38, Robert Metzger <[hidden email]> wrote:
> 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)>
>

--










*This email, including any information it contains and any
attachments to it, is confidential and may be privileged. This email is
intended only for the use of the named recipient(s). If you are not a named
recipient, please notify the sender immediately by replying to this message
and delete the original message. You should not disclose or copy this
email, any of its contents or any attachments to it. This email may have
been transmitted over an unsecure public network and, therefore, Careem
does not accept responsibility for its contents or for any damage sustained
as a result of viewing its contents or in connection with its transmission.
Careem reserves the right to monitor all communications from or to this
account.*
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Matthias
In reply to this post by Yun Tang
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 <[hidden email]> 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 <[hidden email]>
> Sent: Thursday, November 19, 2020 12:09
> To: dev <[hidden email]>
> 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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 写道:
> > > >
> > > > +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 <[hidden email]> 于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 <[hidden email]>
> > 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 <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Jark Wu-2
Thanks Matthias,

I have created sub-tasks for the Table SQL related bash-based e2e tests.

Best,
Jark

On Fri, 27 Nov 2020 at 21:25, Matthias Pohl <[hidden email]> wrote:

> 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 <[hidden email]> 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 <[hidden email]>
> > Sent: Thursday, November 19, 2020 12:09
> > To: dev <[hidden email]>
> > 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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 写道:
> > > > >
> > > > > +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 <[hidden email]> 于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 <[hidden email]>
> > > 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 <[hidden email]> 于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
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Stop adding new bash-based e2e tests to Flink

Xingbo Huang
Thanks Matthias,

I have created sub-tasks for PyFlink related e2e tests.

Best,
Xingbo

> 2020年11月27日 下午10:53,Jark Wu <[hidden email]> 写道:
>
> Thanks Matthias,
>
> I have created sub-tasks for the Table SQL related bash-based e2e tests.
>
> Best,
> Jark
>
> On Fri, 27 Nov 2020 at 21:25, Matthias Pohl <[hidden email]> wrote:
>
>> 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 <[hidden email]> 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 <[hidden email]>
>>> Sent: Thursday, November 19, 2020 12:09
>>> To: dev <[hidden email]>
>>> 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 <[hidden email]> 于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 <[hidden email]> 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 <[hidden email]> 写道:
>>>>>>
>>>>>> +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 <[hidden email]> 于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 <[hidden email]>
>>>> 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 <[hidden email]> 于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
>>