Plugins are commands which work with Juju, but which are not part of the core code. Some plugins are provided with your Juju install (e.g.
juju-metadata) and others are tools created by the community. The community tools are collected by the Juju Plugins GitHub project.
Running a plugin
A plugin is any executable code in your
$PATH which begins
juju-. Although you can run these independently of the Juju command line, Juju will also wrap these commands so they can be run within Juju. For example:
The above can be executed within Juju in this way:
juju metadata generate
Switches, flags, and arguments
There is potential confusion when a plugin accepts a switch or flag. Juju needs to be able to differentiate between options intended for Juju and ones intended for the plugin. In this case any options for the plugin should be preceded by ’ – '. For example:
juju foo -- -bar --baz qux