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 present to that 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 type (this is the Unwired default for newly created devices and will always use the last stable version available for that specific device type)

  • version: set a single specific version (for fully externally controlled version selections)

  • branch: follow the latest release of a specific branch (this is useful for acceptance testing and early integration to discover issues with new releases as early as possible, and not intended for production deployments)

Basically the null option provides the biggest automation and any kind of custom policies or workflows can be implemented by setting the version style target selector.

Updates to Unwired Edge Cloud OS

Updates are published regularly and frequently to include:

  • security updates

  • improvments to baseband firmwares of supported modems

  • improvments to basebind firmwares of wireless chipsets

  • maintenance updates of important Linux networking packages

  • Unwired features and improvments

  • Container runtime and orchestration features

  • Modem handling improvements

  • Networking improvements

  • and many more

Unwired Edge Cloud OS is tested for compatibility to 30+ industrial devices and 20+ modems.

default: null target selector (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:

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 every deployment that seeks to control all device versions. A specific version can be selected for each device and this versio will be maintained all the 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:

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 actual version. You can control when those updates happen on a device level by setting a time window.

This time window is in UTC and applies to all days.

mutation set_update_window {
  DM_update_node_rollout_config(macs: ["4A000102030405"], time_span: {value: {start: "22:30:00", end: "23:59:59"}})
}