Files you upload are expected to be a zip file. Also, you need to choose whether your uploaded file should be treated as a plugin or as a bundle.
A plugin is a zip file that is installable as a plugin using Elasticsearch’s plugin tool. When configuring the node of your cluster, that is exactly what we do. We invoke the
install-tool with the URL of the uploaded zip file. This makes it easy for you to test that your uploaded zip file works locally: just see if you can run
bin/plugin --url file:///path/to/plugin --install plugin-name yourself.
Elasticsearch’s plugin tool assumes that the uploaded zip file contains binaries. If it finds any source code, it will fail with an error message, causing provisioning to fail. Make sure you upload binaries, and not source code.
A bundle’s entire content is made available to the node. This is useful to make custom dictionaries, scripts, etc. available.
Bundles are not installed as plugins. If you need to upload both a custom plugin and custom dictionaries, you will need to upload the plugin and dictionary separately.