-
Notifications
You must be signed in to change notification settings - Fork 42
Restructure e2e suites layout #2175
Comments
@v1v we would need to also think about current Beats strategy to trigger there e2e, as it always triggers all suites at the main pipeline, and a subset of them (probably outdated) at the packaging pipeline |
@mdelapenya I am quite sure that a change in a single beats can then break the Elastic Agent e2e tests which means that those tests suites should all be triggered. |
Got it, thanks for the clarification. Now that the elastic-agent is going to live in a separate repository, we have this question: what versions should be used in the e2e? Let me use examples:
When a change in filebeat is committed, identified by `beats@0123456abcdef`
Then the e2e must be executed for filebeat `beats@0123456abcdef` and elastic-agent `elastic-agent@??` When a change in elastic-agent is committed, identified by `elastic-agent@0123456abcdef`
Then the e2e must be executed for elastic-agent `elastic-agent@0123456abcdef` and beats `beats@??` An initial (and simple) approach would be using the version of the stack:
and for the agent, the same:
|
Yes you are right. Always use the last commit available on the matching branch seems to be the best option. |
+1 that for now we should test latest commit available with matching branch. The main downside is that builds are not fully reproducible. I expect a future where inputs are more decoupled and the testing is more similar done to the way we do it with Elasticsearch where we have a daily PR that updates the dependencies. |
Ok, with the current implementation provided by #2172, the variables
What does "Generated for unified release, alongside with stack" mean?The project contains a With that in mind, a PR on the elastic-agent in the 7.17 branch will use 7.17-LAST_SUCCESSFUL_HASH-SNAPSHOT for the stack, and for the Beats used in scenarios (i.e. installing the agent on top of already running filebeat/metricbeat, or k8s-autodiscover for filebeat). For the scenarios where an elastic-agent must be installed, the binaries for that PR will be used. What happens with old PRs on
|
The current state of the Fleet and Beats projects is not represented with the current suite layout. We have fleet, helm and k8s-autodiscover test suites, which can be triggered in isolation, even filtering by cucumber tags. But after having the elastic-agent extracted to a separate repo, then the execution of the suites should be changed in consequence, as it's no longer maintainable without effort: what changes trigger what suite.
This is an initial (and rudimentary) proposal:
the elastic-agent repo should trigger the fleet test suite, plus k8s-autodiscover suite for the elastic-agent
the beats repo should trigger the helm charts test suite, plus k8s-autodiscover suite for not the elastic-agent. I wonder if there should be a case where a change on beats' k8s-autodiscover code should trigger all scenarios for k8s-autodiscover on the e2e. But again, because the elastic-agent project live in another repository, it's not that easy to correlate a commit on beats repo (where the core of the k8s-autodiscover feature lives) with a commit on the elastic-agent repo.
@jlind23 @ruflin @ph @cmacknz @adam-stokes @elastic/observablt-robots, thoughts?
The text was updated successfully, but these errors were encountered: