Edgehog provides an OTA update mechanism that allows remotely updating devices. The OTA update
mechanism is not tied to a specific platform and can be used on any Edgehog
runtime which implements the
OTA Update concepts are detailed in the dedicated page, this guide demonstrates the usage of an OTA update mechanism.
Managed OTA Updates
To push updates towards Devices, an Update Campaign must be created. It's important to note that an Update Campaign can only send updates for the same Base Image Collection. Special operations, such as converting a Device from one System Model to another, must always be done with a Manual OTA Update.
Once created, the Update Campaign will start rolling out updates towards the devices, and its progress can be checked from the Edgehog Dashboard or through Edgehog GraphQL API.
Note that the campaign will "snapshot" the Devices belonging to the Update Channel when it's started, and will target only those.
Once started, the Update Campaign waits for device to come online, at which point it initiates the OTA Update.
Roll-out mechanim properties can affect this process.
Max Pending Operations setting may postpone some OTA Operations.
Before actual push to the Device corresponding Update Target is verified for fulfillment of Base Image and Roll-out mechanism criteria. For example:
- Devices having same Base Image version will be silently marked as successful.
- Devices with Base Images that don't meet Version Requirement
of distributed Base Image will be marked as failed, unless the
Force Downgradeoption of Push Roll-out mechanism is enabled.
Manual OTA Updates
As an escape hatch, it's always possible to manually update a Device from its page on the Edgehog dashboard (or using the Edgehog GraphQL API).
Note that Manual OTA Updates do not perform any check on the System Model, so they can effectively be used to change the System Model of a Device. This also means that the user must exercise particular attention to avoid bricking a Device, if the Device does not implement the necessary safety checks.