Synchronizing deployments for multiple devices

Hi all,

I am currently trialing Hosted Mender as a release deployment platform for our project and had a question regarding the availability of a sync mechanism for devices whose updates are tightly coupled/need to happen in a particular order.

Our platform has two separate Linux devices onboard and our ideal OS update process looks like this:

  1. Device A is updated (Download and Install stages)
  2. Device B is updated (Download and Install stages)
  3. Device A is rebooted (only after B is finished)
  4. Device B is rebooted
  5. Pre-commit scripts perform the necessary update checks on both devices
  6. Update is either committed on both (order is not so important here) or, if any of the two updates fails,
    • Both A and B updates are rolled back

The reason for the reboot ordering constraint is mainly because device B is connected to the Internet (and thus Hosted Mender) through device A.
I created a deployment group for my two test devices and observed that if I currently try to deploy an update to this group, A will often finish first and trigger a reboot, which then leaves B hanging in the “Installing…” stage.

As we’re using mender 4.0.6 (from the Yocto scarthgap branch), I believe the Synchronized Updates feature has already been deprecated/removed. If I try to add a pause before reboot from the Hosted Mender UI, I get the “Device does not support update control map” error upon deployment.

So from here my questions would be:

  • Is there still a way to use synchronized updates in a higher/paid Mender plan, such that I can still have devices pause before reboot?
  • Or is there an easier way to achieve the described flow through other mechanisms? Maybe a way to explicitly tell Hosted Mender: A needs to be updated before B?
  • Alternatively, even if A reboots first, should the update not just continue on B upon connection resumption? I get the feeling I’m missing some config somewhere and that’s why I get the hanging behaviour upon “Installing…”
  • Are atomic i.e. “all or nothing” updates supported for deployment groups? Or would we have to script it ourselves?

Thank you for your time and I look forward to your advice.

Best,
Andreea

Hi @AndreeaL,

Thanks for reaching out! Unfortunately there is no straightforward way to implement such an installation flow. The “Synchronized Updates” feature also wouldn’t have helped here, as it did not offer any correlation between a number of devices, it was merely a way to enforce a specific timeframe.

When we are talking about such a device combo A&B (or possible more), are they both “created equal”? Means none is like a main/controller node, one or more are sub/leaf nodes? Then it is really a very challenging setup.

If you happen to have one form or head or privileged node, then there might be ways to find a form of coordination. However I can’t really judge ad hoc, this would definitely need more discussion.

Greetz,
Josef