I’m trying to figure out what happens when an application is to be updated, can you please check my assumptions are correct ?
1- Build app docker image (maybe several, if your app is multi-container)
2- Push them to registry.
3- Make a new release out of it
4- If VPN enabled notify supervisor there is a new app release (which supervisor API?), else just wait for it to check for updates
5- supervisor checks for update and fetches new desired “state” from api. (which API?)
6- supervisor pulls new images and restarts containers as required
All these steps seem very tied together (can be done with a single CLI command), I understand this simplifies user workflow but this also has the usual drawback of limiting possibilities. Why choosing to implement the supervisor as an application supervisor and not a “container list” supervisor (letting knowledge of the applications/services/releases at a higher level, most probably in the server) ? Can you explain how you ended up choosing this way of doing it ?
Thank you very much!