-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[RFC] Migrating existing OpenSearch plugins from the main OpenSearch repository into their own dedicated repositories #17246
Comments
Just one note...the existing issue #1754 was focused only on the Now don't get me wrong, I'm a huge fan of doing anything to reduce the amount of code being maintained here (see #16887), but there are a lot of plugins here that are essentially a single class. Examples include the
I don't think this is accurate. The bundled plugins today are special in that they can be installed by name. If I extract a distribution tarball, I can then run |
Infra side this is doable but we do need to understand that:
Thanks. |
@peterzhuamazon Just a quick comment on point 2) |
Right, tho we are currently still pulling from S3 instead of maven for released core plugin installation. |
Please describe the end goal of this project
Glossary
Motivation
This document proposes, migrating existing plugins in core OpenSearch repository into their own dedicated repository
Background
In addition to the background in https://github.com/opensearch-project/OpenSearch/issues/17127, There are a few more things we need to dive into before we discuss the problem statement.
Default and Core repository plugins
Currently the core OpenSearch repository contains 28 plugins:
Whereas the standard opensearch distribution contains the following 23 plugins:
There is no overlap between the plugins that are part of the standard distribution plugins and the plugins which are present in the core repository.
Most of the plugins present in core repository, are not subject to active changes after initial development and go through dependency version bumps that need to be executed by the core maintainers.
These core plugins are not separately released in maven and require the consumers to build it by themselves to install in their OpenSearch cluster. The core plugins lack documentation as well.
Plugin artifact publication
Managed plugins are published in multiple repositories:
Previous discussion
reta published a RFC in 2021 to migrate the plugins out of the core repository #1754. He did a PoC as well where he moved the plugins out of the core repository into a single repository as well. In Issue 7962 It was called out that moving the plugins out of core repository would removed multiple 3P dependencies from the core repo.
Problem Statement
The current inclusion of 28 plugins within the OpenSearch core repository creates several operational challenges. These plugins lack active maintenance, proper documentation, and Maven publication, requiring users to build them manually. Updates to these plugins, primarily dependency version bumps, unnecessarily burden core maintainers due to their tight coupling with the core repository, which also prevents independent versioning and release management. Additionally, the presence of plugin-specific third-party dependencies bloats the core repository. This RFC proposes migrating these plugins to dedicated repositories to improve maintainability, documentation, and release processes while reducing complexity in the core repository.
Proposed Approach
We propose migrating the all the plugins from the core repository to their own repository. The migration process will begin by identifying owners for each plugin who will be responsible for their respective repositories. New dedicated repositories will be created following the naming convention 'opensearch-project/opensearch-' and will include standard components such as Apache 2.0 LICENSE, Code of Conduct, CONTRIBUTING.md, GitHub Actions CI for tests and scanning, and comprehensive README documentation. The code migration will preserve Git history using git subtree split, replace existing plugin folders in the core repository with redirecting READMEs, and update official documentation accordingly. Each repository will have its own CI/CD infrastructure for running integration tests, enabling independent releases that align with core major versions, and maintaining plugin-specific documentation. This migration can proceed independently of the OpenSearch 3.0 release timeline, starting with a single plugin to establish a standard operating procedure for subsequent migrations.
Pros compared to the status quo:
Cons:
Alternatively, we can just migrate the plugins to a single separate repository as reta proposed. This will remove the bloatware from the core repository
FAQ
Q. What will the plugins folder in core repository be used for once these plugins are migrated out?
A. It can be used as a step in migrating features from plugins to core opensearch (like security), it can also contain example and temples for custom plugins.
Q. How will this affect the release process for the core OpenSearch distribution?
A. This will not impact the standard distribution as none of the core repo plugins are shipped with standard distribution
The text was updated successfully, but these errors were encountered: