API for firmware rollout configuration
One of the most important features in managing fleets of devices is managing the software lifecycle. Various different lifecycle policies are available.
The basic functionality is that a specific version target selector is set for a device and the rollout service with automatically upgrade from whatever version is running to the specified target version. This is also the correct way to downgrade versions or switch to different testing versions for acceptance and compliance testing.
The current policies for version target selectors include:
null
: follow the default for a given device typeThis is the Unwired default for newly created devices and will always use the latest stable version available for that specific device type.
See null target selector (default, following the device type) for details.
version
: set a specific versionFor fully externally controlled version selections)
See version target selector (specific version) for details.
branch
: follow the latest release of a specific branchThis is useful for acceptance testing and early integration to discover issues with new releases as early as possible. It is not intended for production deployments
See branch target selector (specific branch) for details.
Hint
In general, the null
target selector provides the biggest automation,
whereas custom policies or workflows can be implemented by setting the version
target selector.
Unwired Edge Cloud OS Updates
Unwired Edge Cloud OS Updates are published regularly and frequently to include security updates as well as various new features and improvements
Hint
See Firmware Updates for details.
Available target selectors
null
target selector (default, following the device type)
This rollout mode selects the latest and best stable firmware. All these release have gone through thorough QA and have been reviewed to modern software development standards.
With this mode you will get the latest firmware available for the respective device type including all new features and bug and stability fixes.
API call to set the null
target selector:
# device level configuration
mutation set_specific_version {
DM_update_node_rollout_config(macs: ["4A000102030405"], version_target_selector: null)
}
version
target selector (specific version)
This is the preferred mode for deployments that seeks to control all device versions. A specific version can be selected for each device and this version will be maintained all time until changed.
All kinds of 3rd party workflows and processes for version updates and lifecycle management can be implemented on top of this feature.
API call to set the version target selector:
# device level configuration
mutation set_specific_version {
DM_update_node_rollout_config(macs: ["4A000102030405"], version_target_selector: {value: "version:19.07-233"})
}
Caution
Please note that the respective version can be derived from Unwired Edge Cloud OS release notes that are published to the respective release channels. The available firmware versions depend on the device type.
branch
target selector (specific branch)
This is mainly used for testing, acceptance and compliance testing and early availability of new features. Please contact support@unwired.at if interested.
Setting update time windows
Updates are typically done in a rolling manner whenever a device has a different target than the running version. You can control when those updates happen by setting a time window on a
device level
group level (see Group based update configuration more details)
This time window is in UTC and applies to all days.
# device level configuration
mutation set_update_window {
DM_update_node_rollout_config(macs: ["4A000102030405"], time_span: {value: {start: "22:30:00", end: "23:59:59"}})
}
# group level configuration
mutation set_update_window {
DM_update_node_rollout_config(group_ids: ["12345"], time_span: {value: {start: "22:30:00", end: "23:59:59"}})
}
Group based update configuration
Update time windows can also be set on group level. This might be useful if groups of devices need to be updated at the same time or need similar update windows. One caveat is that you cannot set a firmware version target selector on group level, as devices in the group might need different version branches.
When using DM_update_node_rollout_config
with a group, you are not allowed to set a version target selector.
Also, you can only set a time window for a group which is having a own configuration, meaning it’s not inheriting from a parent group. Please see details in the GraphQL API documentation.