[DOC] Add more information about extended plugins on the plugin installation page
What do you want to do?
In OpenSearch, its possible that some plugins can extend functionality of other plugins. When a plugin has a required dependency on another plugin, the dependency needs to be installed first before the extending plugin can be installed. Currently, the documentation on installing plugins has no mention of extended plugins.
For instance, when I try to install opensearch-index-management on a node where opensearch-job-scheduler is not present, the opensearch-plugin script exits with an error.
% ./bin/opensearch-plugin install file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
-> Installing file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
-> Downloading file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
[=================================================] 100%
-> Failed installing file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
-> Rolling back file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
-> Rolled back file:/path/to/opensearch-index-management-3.0.0.0-SNAPSHOT.zip
Exception in thread "main" java.lang.IllegalArgumentException: Missing plugin [opensearch-job-scheduler], dependency of [opensearch-index-management]
at org.opensearch.plugins.PluginsService.addSortedBundle(PluginsService.java:532)
at org.opensearch.plugins.PluginsService.sortBundles(PluginsService.java:495)
at org.opensearch.plugins.InstallPluginCommand.jarHellCheck(InstallPluginCommand.java:833)
at org.opensearch.plugins.InstallPluginCommand.loadPluginInfo(InstallPluginCommand.java:807)
at org.opensearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:852)
at org.opensearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:274)
at org.opensearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:248)
at org.opensearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:104)
at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
at org.opensearch.cli.MultiCommand.execute(MultiCommand.java:104)
at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
at org.opensearch.cli.Command.main(Command.java:101)
at org.opensearch.plugins.PluginCli.main(PluginCli.java:66)
The documentation on installing plugins should include information about plugin dependencies.
- [X] Request a change to existing documentation
- [ ] Add new documentation
- [ ] Report a technical problem with the documentation
- [ ] Other
Version: List the OpenSearch version to which this issue applies, e.g. 2.14, 2.12--2.14, or all.
All
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
Came up for discussion on https://github.com/opensearch-project/OpenSearch/pull/16909
Catch All Triage - 1, 2, 3
@cwperks Does this still require attention?
yes, this would still be nice to have. The current page on the docs website does not mention anything about dependencies between plugins.
@cwperks Could you list all the plugins and their dependencies so I can add that info to the docs? Or, if it's easier, put up a PR? 😄
Hi @kolchfa-aws you can use these as references: https://github.com/opensearch-project/opensearch-build/blob/main/manifests/3.1.0/opensearch-3.1.0.yml https://github.com/opensearch-project/opensearch-build/blob/main/manifests/3.1.0/opensearch-dashboards-3.1.0.yml
The build repo use two ways to define the building order (which was sorted out based on dependency tree):
- In above input manifest, the order of component being listed.
- Based on above order, if a component has
depends_on:key, then it must be compiled/installed after the listed dependencies
With above in mind the final order of the compilation you can find in build manifest: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/3.1.0/11187/linux/x64/tar/builds/opensearch/manifest.yml https://ci.opensearch.org/ci/dbc/distribution-build-opensearch-dashboards/3.1.0/8487/linux/x64/tar/builds/opensearch-dashboards/manifest.yml
Thanks.