[Extensions]Versioning support for plugin extension points #2283
Labels
Build Libraries & Interfaces
enhancement
Enhancement or improvement to existing feature or request
extensions
Meta
Meta issue, not directly linked to a PR
Plugins
Priority-High
Plugins are rigid in terms of compatibility and have to be built with a specific x.y.z version of OpenSearch during compile time. This tight coupling reduces the velocity of software development lifecycle for OpenSearch and plugins because it requires all plug-ins to release at the same time when a version number is raised.
Ref: #1707
The underlying problem is lack of versioning support for extension points (https://opensearch.org/blog/technical-post/2021/12/plugins-intro/) on which plugins are extended.
We would like to see OpenSearch being compatible with different versions of plugins/extensions.
This would need modularization of opensearch starting with all the extension points.
Ref: Extension Points:
getFeature
- Implement a custom feature and respond to cluster state API.createModules
- Implement node level dependency injection modules via Guice.getGuiceServiceClasses
- Node level services which will be automatically called with node state changes.createComponents
- Custom component implemented and its lifecycle being managed by OpenSearch.additionalSettings
- Implement additional node level settings.getNamedWriteables
- Custom parsers the plugin would use for transport messaging.getNamedXContent
- Custom parsers the plugin would use for NamedObjects.onIndexModule
- Index level extension point, called before an index is created.getSettings
- Implement additional cluster level settings.getSettingsFilter
- Implement additional cluster level settings filter.getSettingUpgraders
- Implement setting upgraders.getIndexTemplateMetadataUpgrader
- An extension to modify index template metadata on startup.getExecutorBuilders
- Implement custom thread pools for executions.getBootstrapChecks
- Add additional bootstrap checks when OpenSearch node initializes.getRoles
- Implement additional DiscoveryNodeRole’s.getAdditionalIndexSettingProviders
- Implement additional index level settings for newly created indices.The text was updated successfully, but these errors were encountered: