Plugin synchronization
TODO: manage multiple version of a same plugin (using filenames, like demo-v0.0.1 and demo-v0.0.2)
Overview
The plugin synchronization process in Jackadi follows this workflow:
- Plugins are placed in the manager’s plugin directory.
- The manager maintains a configuration defining which nodes should receive which plugins.
- Nodes request their plugin list from the manager.
- The manager responds based on the node’s identity and configured patterns.
- Nodes download, install, and load the required plugins.
Manager Configuration
Plugin directory
The manager looks for plugins in its configured plugin directory:
manager --plugin-dir=/path/to/pluginsAll plugins binaries in this directory are available for distribution to nodes.
Plugin configuration
The manager uses a YAML configuration file located at <config-dir>/plugins.yaml to determine which plugins to sync to which nodes:
"*":
- worker-tools
"db-*":
- database-toolsThe configuration uses node name patterns (with glob syntax) as keys and lists of plugin names as values.
Node plugin sync
Automatic sync
Not yet implemented.
Manual sync
To manually trigger plugin synchronization on an node:
jack run node1 plugins.syncThis sync is using by default an exclusive lock.
Troubleshooting
If a plugin isn’t being loaded by an node:
- Check if the node matches any patterns in the
plugins.yamlfile. - Verify the plugin binary exists in the manager’s plugin directory.
- Check the node logs for download or loading errors.
- Execute the plugin binary manually with
--describeand check for any errors. - Manually trigger a sync:
jack run node1 plugins.sync.