| Users should be able to implement plugin hooks as tasks that are loaded from the modulepath and configure those plugins in bolt.yaml. Implementation:
- The plugin name is the same as the module name.
- Bolt should look for a task name matching the hook name to run.(ie my_plugin::inventory_targets)
- Plugins have metadata at the top level of the module bolt_plugins.json
- bolt_plugins.json has a config key that describes the schema of the plugins bolt.yaml configuration.
- If there is a config key than a configuration hash will be passed to all hooks as the metaparameter _config
- _boltdir will be passed as a metaparameter to the plugin tasks.
Hook Formats: inventory_targets: arbitrary plugin specific parameters(based on task's metadata) inventory_config: arbitrary plugin specific parameters(based on task's metadata) createkeys: no parameters encrypt: encrypted_value: encoded encrypted value ie ENC[GPG]<base64> decrypt: plaintext_value: base 64 encoded plain text value to encrypt. |