Plugin¶
A Plugin is a running instance of a PluginProvider. Some plugin providers are singletons (for example BIOS Configuration) while others allow multiple named instances (for example Callback).
Each Plugin must have a unique Name and references its
Provider by name. The Params map holds configuration key-value pairs
that the provider reads at startup; which parameters are required or
optional is defined by the provider's RequiredParams and
OptionalParams fields. Runtime errors encountered by the plugin process
are recorded in the PluginErrors list, giving operators visibility into
plugin health without checking logs.
In multi-site deployments, Plugins can be specified on Endpoints and within VersionSets so that the manager can push plugin configurations to downstream DRP instances.
Fields¶
| Field | Definition |
|---|---|
| Description | Description is a string for providing a simple description |
| Documentation | Documentation is a string for providing additional in depth information. |
| Meta | Meta contains the meta data of the object. The type of this field is a key / value map/dictionary. The key type is string. The value type is also string. The general content of the field is undefined and can be an arbritary store. There are some common known keys: color - The color the UX uses when displaying icon - The icon the UX uses when displaying * title - The UX uses this for additional display information. Often the source of the object. Specific Object types use additional meta data fields. These are described at: https://docs.rackn.io/stable/redirect/?ref=rs_object_metadata |
| Name | The name of the plugin instance. THis must be unique across all plugins. required: true |
| Params | Params holds the values of parameters on the object. The field is a key / value store of the parameters. The key is the name of a parameter. The key is of type string. The value is the value of the parameter. The type of the value is defined by the parameter object. If the key doesn't reference a parameter, the type of the object can be anything. The system will enforce the named parameter's value's type. Go calls the "anything" parameters as "interface {}". Hence, the type of this field is a map[string]interface{}. |
| PluginErrors | Error unrelated to the object validity, but the execution of the plugin. |
| Provider | The plugin provider for this plugin required: true |