Using balenaEngine with Supervisor and balenaCloud without balenaOS

I have a requirement that restricts me to build on Ubuntu 16 as the operating system. However, I would love to still use balenaCloud, along with balenaEngine and the Supervisor. Is this possible?

Is there good documentation for using the Supervisor with my own containers on my own os while still leveraging all the goodies that come with the balenaCloud and dashboard?

2 Likes

Heya ! Maybe using a custom base image would be a solution for you ?

This does not give me very much information. Are you saying that the custom base image is needed to interact with the Supervisor?

Hi @cnr,

I suspect there was some confusion on our part with regards to your question. If I understand you correctly, you need the hostOS to be Ubuntu 16 exactly. Are you able to share more about that restriction, such that we can help think of ways to accommodate you? I am unaware of any easy way to reconstruct balenaOS on a different hostOS, but I am asking around internally as well.

Thanks!

I have a similar question. In my case I would like to use balenaCloud to deploy my applications to devices like an edge gateway or switch where I don’t have any chance to change the OS, but I can install docker. So it would be great if I can deploy the balena supervisor container to be able to manage my multicontainer application from balenCloud.

Hi

I don’t think there is going to be an easy way to do this, because afaik the supervisor also has some specific dependencies to the underlying OS. I’ll raise this for an internal discussion.

1 Like

Hi,

is there anything new on this topic?
In my case Debian Linux is the OS.

I have found some information on balenalib being a possible solution for this.
Does anybody know more about balenalib and can jude if its a good solution even to run in prod environments?

Hi

  • One option is to run balenaOS in a container - but this is an experimental solution right now, and not supported for production env like you need it. See more about it on this GitHub repo here.
  • We are thinking of how we could make this possible going forward, but I don’t have a concrete answer or timeline of this.
  • Are you sure that a custom image won’t work for you? You can build custom images of balenaOS for one of our supported boards quite easily. See our documentation for that here. If you can share more details about what in Ubuntu you are dependent on, maybe we can help you figure how to get balenaOS working for you.

I love this idea. Especially if by running balenaOS in a container we could also change things that were in the read-only partition of balenaOS. Right now we have to manually change things like the modemmanager cellular config system connection.

Would this mean that we can run balenaOS in a container on a system running balenaOS? That would be kinda amazing.

Right now we have to manually change things like the modemmanager cellular config system connection.

Isn’t DBus interface exposed by modemmanager sufficient to manage its configuration from your own application?

I wonder what are the other reasons why balenaOS does not seem to be a good choice for the host OS you choose.

I now do use balenaOS, been happily using it for the last 6 months or so. Hmm, perhaps I can switch to using that. I seem to remember there was a reason why modemmanager was insufficient. I can try to find out.

Hi

Problem is we are only allowed to put scripts and programs on the host OS because there are important other programs on the board running which we aren´t allowed to touch (its a dispenser calculator tbh).
I did some testing with the balenaos-in-container repo and it worked with my RPi3 wiht a RPi3 Balena App but not with a RPi4 Balena APP (balenaOS in a docker container won´t connect to balenacloud). What would be the risk to use this solution in prod environment?

Hi @knaps97 , I suspect the reason the Pi4 app doesnt run on your rpi3 is because we made the pi4 apps aarch64 by default and the pi3 being armv7 is not able to run that executable.

The risks to running this solution in production currently is that it is still somewhat experimental and will undoubtably change behaviour wise going forward. For instance some of the functionality provided by balenaOS are not yet available from the container, like rebooting, OS upgrades (in this case would just be a container update) and access to some hardware is still not readily available.

@shaunmulligan thanks for the quick answer.
Ok, I will give that information on the risks to my developers an let them reconsider if this is the best solution (at the moment they think it is).
So if I would like to run this set up on a conga-QA3 with a 3rd Gen Intel Atom I´d have to build a custom image of balenaOS which works for the Hardware to then run in a Docker container, right?

Shaun’s main point is that balenaOS and your app should be of the same architecture as the underlying hardware. The reason you can’t run the RPi4 application on the RPi3 is because they’re of different architectures – RPi4 is 64-bit. I’d try bundling up the RPi4 as an RPi3 application and retry.

Same for the Atom, which is x86, you’d have to get hold of a balenaOS image of the same arch and make sure the app you deploy on it is of the same arch as well.