Update Strategy for microservices, download all, then kill?

I have a microservices balena application, and have found the current update strategies painful. My microservices depend on communicating with each other and restarting each of them as they download causes all of them to restart multiple times.

According to the documentation, update strategies can only be applied at a service level via labels, but I would like to have all updates downloaded before killing any containers.

Am I missing something, or is this not currently an option?

Hi @aferm

I’d like to confirm the behavior you’re experiencing. Although the update strategies are, as you mention, specified per container, if you’re using the download-then-kill strategy the supervisor downloads all images and then proceeds to kill the services. Refs: the PR ( Wait for images to be ready before moving between releases by pipex · Pull Request #1824 · balena-os/balena-supervisor · GitHub ) and the original issue ( Implement update strategies which take the entire application into acount · Issue #1103 · balena-os/balena-supervisor · GitHub )

On your message you mention that the services restart and take some time to stabilize, if I understand correctly. Do some services restart while the rest are still downloading ( which would be unexpected ) or is there any other issue like you want to specify a specific restart order? The later could be solved using the depends_on docker compose feature.

Regards
Ramiro

Thank you for bringing this to my attention, most of my devices are running supervisor v12.10.3, which was released before this change was merged. One more reason to upgrade.

Glad it helped. Let us know if you have any further issues!