Hello everyone, I’m trying to understand what install sequence mender client will use if there are multiple pending updates of different types for a given device, but couldn’t find any information in docs. Will appreciate any information.
Disclaimer: I understand that Mender is mainly targeting atomic full-rootfs updates where the following wouldn’t be an issue, yet update-modules exist and mender artifact format seems to be designed to target this problematic.
So imagine a device was shipped out with rootfs A and was offline since. Since then, a number of updates released (but not installed as it was offline) for this device, for example:
A → A.1 → B → B.1 → C → C.1 → C.2
Let’s say that A, B, and C are full rootfs updates and .1 and .2 are patches created with Directory update module.
Considering that I haven’t used
artifact_depends and similar features of
mender-artifact, in which sequence these updates will be installed? Will the client go through every release in chronological order or will skip everything except the last one and will try to install C.2 patch on top of A? How will it behave if one of the updates have failed for any reason?
Now imagine I want to use mender-artifact features such as
depends to properly handle this scenario.
Let’s say my patches are only dependent on rootfs and not on previous patches. So when this device goes online, I would expect it to only install C and then C.2 and skip others as unnecessary. Is there a way to achieve this?
In general, any info that would help to understand how
artifact_depends work and how to use
--provides, --depends, --provides-group, --depends-groups, --augment-provide, --augment-depends arguments of
mender-artifact tool will be very welcomed. After understanding all this, I will try to contribute to the documentation. Thanks!