I guess this is a possibility and something I’ll have to look into, but ideally, I just want to be able to write the source code and commit it and have everything else automated. I also want as little data as possible to be sent over the network since our Pis are connected via cellular networks, and the solution we use does incremental updates based on changes to the images deployed to the Pis which are built automatically with no human interaction on a third party service.
My gut tells me that if I prebuild an image, rather than this third party service doing it, any time the image changes the whole image will need to be downloaded to the Pi. I may be wrong about this (at least partially) and be able to find a solution, but as I said, ideally, I just deploy source code to the cloud builder which builds (including building the legato toolchain) the image to be deployed to the Pis and only transfers the image differences.
Surely, if there was just somewhere a pre accepted license could be stored this would eliminate any developer headaches and would be much easier to implement than anything you or I might have to do to make our use case work. There must be something that the legato installer checks to see if the license has been accepted, why can’t someone just tell us where and what this is so we can pre-populate it before installation?
FYI, it is the same image for all of the Pis, it gets built in the cloud and then only the image differences from the previous build get distributed over the air to all of the devices associated with the same application. Anything that is device specific is managed with another process using environment variables that don’t need to be included in the application image at build time.
In case anyone is interested, I’m using Balena OS and Balena Cloud for this fleet management and software/firmware distribution process.