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 agents should receive which plugins.
- Agents request their plugin list from the manager.
- The manager responds based on the agent’s identity and configured patterns.
- Agents 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 agents.
Plugin configuration
The manager uses a YAML configuration file located at <config-dir>/plugins.yaml to determine which plugins to sync to which agents:
"*":
- worker-tools
"db-*":
- database-toolsThe configuration uses agent name patterns (with glob syntax) as keys and lists of plugin names as values.
Agent plugin sync
Automatic sync
Not yet implemented.
Manual sync
To manually trigger plugin synchronization on an agent:
jack run agent1 plugins:syncThis sync is using by default an exclusive lock.
Troubleshooting
If a plugin isn’t being loaded by an agent:
- Check if the agent matches any patterns in the
plugins.yamlfile. - Verify the plugin binary exists in the manager’s plugin directory.
- Check the agent logs for download or loading errors.
- Execute the plugin binary manually with
--describeand check for any errors. - Manually trigger a sync:
jack run agent1 plugins:sync.