Skip to content

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