Is there a way to be notified of an on-going update ?
In a multi-container context, I would like for our browser web-app display a message indicating that we are upgrading and that our service is currently unavailable. Of course, if the browser is also updated, we can’t do that, but we plan to pin the browser sha256 image version to avoid unnecessary updates.
I’d like to execute a script/whatever when the updates begin. This script will emit a message on our local RabbitMQ instance. Do you know if that’s possible ?
When you say:
notified of an on-going update
I assume its an app update. I am not sure if we can pin a release for one of the container. But depending on the behavior from an update, we could also look at communication between containers to relay this information.
We had an IoT clinic around that topic which might be of help: IoT Project Clinic 04 - Demystifying communications between containers, new balenaBlocks(!), and Q&A - YouTube
Yes but how can I “know” that the supervisor is going to install a release, and when it finished ?
We plan to test the following:
- Acquire the “Update Lock” as soon as our components starts
- Using the SDK, we’ll regulary check if an update has been downloading and is pending.
- When an update is available, we release the lock and put our app in “Updating in progress” mode on the display.
- Once the update has been done, we go back to normal state and re-acquire the lock.
Do you think this is fine ?
We tried this solution which worked fine regarding our requirements for updates displaying, however it locks the supervisor which prevent a lot of actions to be done: rebooting, stopping services, etc.
I can’t believe we are the only ones wanting to display an “Update in progress” message to our users… how are we supposed to do this ?