Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[META] Automate Testing #123

Closed
4 tasks done
Tracked by #348
setiah opened this issue Aug 2, 2021 · 2 comments
Closed
4 tasks done
Tracked by #348

[META] Automate Testing #123

setiah opened this issue Aug 2, 2021 · 2 comments
Assignees
Labels
enhancement New Enhancement Meta

Comments

@setiah
Copy link
Contributor

setiah commented Aug 2, 2021

Current state and Action plan

Plugin artifacts are built with github workflows today. Plugin teams manually provide their artifacts to the Infra team. Infra team owns a Jenkins fleet, which is in Amazon internal network, so github workflows cannot interact with Jenkins directly via APIs due to no network access. So Infra team manually kicks off a jenkins job to bundle these plugin artifacts together with OpenSearch min distribution to create a full distribution. Once the full distribution is ready, they manually kick off another Jenkins job to run integration tests, for each of the plugins. These integration tests run on single node clusters inside a docker environment. The integration tests run in parallel for each plugin, in separate environments (one per plugin). These test results are available on Jenkins, but only visible to Infra team due to restricted access. The integration test run, takes less than an hour for all plugins.

Going forward, we are planning to automate this workflow with two pipelines (conceptually) - build and test infra. The build pipeline will assemble all bundles - includes - full distribution, min distribution, docker, non-docker, arch64, arm, linux, debian, etc. and publish them to an S3 bucket. Each bundle will have a manifest file which lists the commit ids a bundle was built from. The test infra pipeline will read these snapshot bundles from the S3 bucket. The trigger would be based on a periodic schedule to start with, and will later evolve to support events from build pipeline. Once the test infra pipeline is triggered, it will kick off nightly tests on these snapshot bundles. These nightly tests include per plugin integration tests, plugin and core engine backward compatibility tests, and rally based performance benchmarking. All tests will run inside a containerized environment on Jenkins.

Automated Test infrastructure will be built on Jenkins. It is currently missing support for running performance benchmarking tests and backward compatibility (aka upgrade) tests. We will add Jenkins jobs for running rally based performance benchmarks against the distribution support matrix. These benchmark results will be ingested in a long running OpenSearch cluster which can then be visualized via OpenSearch Dashboards. For the backward compatibility testing, the plugins today do not have framework for backward compatibility. These tests are run manually by every plugin team before the release. Going forward, we will add a backward compatibility test framework in OpenSearch plugins. We will also add a new jenkins job for Backward compatibility testing on full bundle, which will validate compatibility with previous versions of OpenSearch.

Action Items

Below are the key components of Automated test infra pipeline. We have created meta issues for each of these key components to track their respective sub-tasks as github issues.

@setiah setiah added the enhancement New Enhancement label Aug 2, 2021
@minalsha minalsha pinned this issue Aug 23, 2021
@dblock dblock changed the title [META] Automate Testing Infrastructure [META] Automate Testing Infrastructure for v1.1 Aug 30, 2021
@dblock dblock added the v1.1.0 label Aug 30, 2021
@peternied
Copy link
Member

[Triage] @minalsha could you update this issue with the current state?

@dblock dblock added v1.2.0 OpenSearch 1.2 version and removed v1.1.0 labels Oct 13, 2021
@peternied peternied unpinned this issue Oct 16, 2021
@peternied peternied removed the v1.2.0 OpenSearch 1.2 version label Nov 16, 2021
@dblock dblock changed the title [META] Automate Testing Infrastructure for v1.1 [META] Automate Testing Infrastructure Dec 8, 2021
@dblock dblock assigned peternied and unassigned minalsha Dec 8, 2021
@dblock dblock added the Meta label Dec 8, 2021
@dblock dblock changed the title [META] Automate Testing Infrastructure [META] Automate Testing Jan 11, 2022
@peternied peternied assigned bbarani and unassigned peternied Feb 3, 2022
@bbarani
Copy link
Member

bbarani commented Nov 21, 2022

Closing this issue as we have automated integration, BWC (at plugin level) and performance testing for OpenSearch builds. We will track the implementation of performance testing for distribution builds in this issue.

@bbarani bbarani closed this as completed Nov 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New Enhancement Meta
Projects
None yet
Development

No branches or pull requests

5 participants