We have an application that has differences in the containers deployed between different groups of devices.
These differences consist of more than just environment variables within the container, but instead vary the version of the container used and in some cases, require extra containers to be deployed.
The fundamental goals of the application remain the same in all its diversity, and the majority of the application is always the same. The difference could be a desire to use pre-built containers with specific ML model variations embedded, for example.
At the moment, the only way I can see to manage this diversity is to have every different permutation hardcoded and set to its own specific application in Balena.
Is there any way to put conditional logic into the docker-compose to drive the version of the container itself?
I see contracts and
io.balena.features.optional can be used to drop containers altogether in certain circumstances, but the contract types are very specific and can’t be driven by things such as device variables.
Any suggestions or guidance is appreciated! Thanks