Version Set Object¶
A VersionSet defines a versioned collection of components, plugins, preferences, files, and global profile parameters that can be applied to one or more Endpoints to bring them to a desired configuration state.
The Apply flag controls whether the VersionSet should actively push
changes to its associated Endpoints. The DRPVersion and DRPUXVersion
fields specify which DRP server and UX versions to target, accepting
tip, stable, or a specific semver string. The Components list
defines content packs and plugin providers (with version targeting), while
Plugins specifies Plugin instances to configure.
Prefs sets system preferences, Files manages static file uploads
(with optional decompression), and Global defines global profile
parameters.
When multiple VersionSets are assigned to an Endpoint, they are merged in list order with the first entry taking priority. The Merge operation combines Components, Plugins, Prefs, Global parameters, and Files, with earlier entries winning on conflicts. This allows layering a base configuration with environment-specific overrides.
| Field | Definition |
|---|---|
| Apply | Apply indicates if this VersionSet should be applied to the endpoints it is attached to. |
| Components | Compnents is a list of elements that should be applied to the system. |
| Components/ActualVersion | ActualVersion is the actual catalog version referenced by this element. This is used for translating tip and stable into a real version. This is the source of the file element. This can be a relative or absolute path or an URL. |
| Components/Name | Name defines the name of the element. Normally, this is the name of the the DRP, DRPUX, filename, plugin, ContentPackage, or PluginProvider Name. For Global and Pref, these are the name of the global parameter or preference. |
| Components/ReplaceWritable | ReplaceWritable tells whether or not content packs should replace writable content Defaults to false. |
| Components/Type | Type defines the type of element This can be: DRP, DRPUX, File, Global, Plugin, Pref, PluginProvider, ContentPackage |
| Components/Version | Version defines the short or reference version of the element. e.g. tip, stable, v4.3.6 |
| DRPUXVersion | DRPUXVersion is the version of UX to apply to the system. This can be tip, stable, or a full version. |
| DRPVersion | DRPVersion is the version of DRP to apply to the system. This can be tip, stable, or a full version. |
| Description | Description is a string for providing a simple description |
| Documentation | Documentation is a string for providing additional in depth information. |
| Files | Files defines files to apply to the endpoint through the files API. |
| Files/Explode | Explode indicates if the file should be unzipped or untarred when uploaded. |
| Files/Path | Path is the path to the file. Including name e.g. files/raid/jjj |
| Files/Sha256Sum | Sha256Sum of the item |
| Files/Source | Source is a URL formatted location to get file from (http or https only) Or a path for referencing files on the system. Relative paths are relative to the server's working directory (usually /var/lib/dr-provision) |
| Global | Global defines parameters for the endpoint's global profile. |
| Id | Id is the name of the version set |
| 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 |
| Plugins | Plugins is a list of Plugin objects that should be applied to the system. |
| Plugins/Description | Description is a string for providing a simple description |
| Plugins/Documentation | Documentation is a string for providing additional in depth information. |
| Plugins/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 |
| Plugins/Name | The name of the plugin instance. THis must be unique across all plugins. required: true |
| Plugins/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{}. |
| Plugins/PluginErrors | Error unrelated to the object validity, but the execution of the plugin. |
| Plugins/Provider | The plugin provider for this plugin required: true |
| Prefs | Prefs is a map of preferences that should be applied to the system. |