Selectively download and run containers per device

We are quite quickly growing our fleet of Balena devices and can I say we have been nothing short of impressed with the service!

Where we’re starting to hit friction now is our application is a base of approximately 5 services, and then depending on the customer’s requirements, we might have to start a range of another 5 (and growing) services. The issue that we’re facing at the moment is we don’t want every device in the fleet to download this catalogue of extra services, as sometimes they’re large and never required at a customer’s site. Currently we’re doing this by running docker-in-docker, our own docker registry and then only pulling images on startup as and when required. As you can imagine, its not a very ‘balena’ way of doing things! (Plus, we don’t get the benefits of seeing the service state or managing it from the console)

Is there any support, or planned support in future for us to be able to selectively control what services a device downloads? Supervisor hooks could be cool? Or is there a better way that you think we should be doing this? We’ve seen the ‘exit-if-not-required’ strategy and started doing that, but we quickly realised we’d be deploying GB worth of applications to lots of devices unnecessarily. We also cant have separate applications as the number required to support x ways of starting y services would be very hard to manage.

Thanks!

1 Like

Hi, unfortunately the only way currently to accomplish this is to have different applications, but I strongly agree that this is nice feature. I have raised internal issue about this and we will get back to you once it’s resolved.

+1 for this idea!

Thanks for raising it internally! When you say once it’s resolved, do you mean after its discussed internally? Do you have an ETA on that?

Cheers

Yes, that is correct. I will bring it to the attention of the Product team tomorrow, and as soon as they discuss, I will let you know the outcome. If it becomes an accepted feature, then, of course that could take time to build. But to start, after having an intro dialogue with the team, I will update you on where we stand. :slight_smile: