Open didier-wenzek opened 3 weeks ago
Though just a comment, it is highly advised that when using a firmware image (e.g. using Rugpi or Yocto) that the thin-edge.io version is only updated via a firmware operation as the operation support rolling back incase of any unexpected errors (such as invalid workflows). I'm fairly confident that upgrading devices across thin-edge.io 1.0.1 -> 1.2.0 version is supported as the firmware_update.toml workflow is actually a symlink enabling the syntax to change across the firmware images (but I'll double check the update to be sure).
I'm fairly confident that upgrading devices across thin-edge.io 1.0.1 -> 1.2.0 version is supported as the firmware_update.toml workflow is actually a symlink enabling the syntax to change across the firmware images (but I'll double check the update to be sure).
I'm confident of that too. The current issue has been observed in a case where thin-edge has been updated manually:
Describe the bug
Updating thin-edge on a device breaks any workflow which definition contains deprecated definition.
Notably, the
restart
action has been deprecated with the introduction of sub-operation workflows and this change has been reported in the rugpi firmware update workflow:Then updating tedge-agent on a device running a firmware that is older than this change, will break firmware updates. Subsequent firmware updates will stay in the init state for ever, being ignored by the update agent which ignores the old syntax.
To Reproduce
tedge mqtt sub te/device/main///cmd/firmware_update/#
te/device/main///cmd/firmware_update/#
is not updated.Expected behavior
The firmware command should proceed from init to scheduled, executing ... as defined by the
/etc/tedge/operations/firmware_update.toml
workflow.Upgrading thin-edge must not invalidate previously valid operation workflows
Screenshots
Environment (please complete the following information):
Additional context