Open pdcastro opened 2 years ago
Connects-to: #70
[pdcastro] This issue has attached support thread https://jel.ly.fish/ce70c1de-e821-4f10-8912-d55af99bbcab
Hello, any progress on this?
@pdcastro I'm also in need for an air-gapped deployment. In our case I have a fixed number of fleets that are effectively mirroring a hosted non-open balena fleet. I guess a workaround would be to either run the balena fleet create
while the server is temporarily connected to the internet or to deploy a fully preconfigured openBalena installation including all DB,S3 etc docker volumes.
It looks as if it shouldn't be too hard to patch the API to load supported devices and version from a file. I guess one could use the SDK logic to generate that file from the official s3 bucket and deploy it with the openBalena deployment.
Just to share that this seems to be fixed.
balena fleet create
only tries to make selectDeviceType()
call if option.type
is not passed as an argument as can be seen here:
That means that in our air-gapped environment one can still create a fleet using:
balena fleet create myFleet --type raspberry-pi
Still relevant in 2024? Perhaps someone can pick up the new guide and see if it works in air-gapped environments (especially given Docker's improvements in this space recently)?
I think this is still relevant but is not a limitation of openBalena specifically, it also applies to balenaMachine. It’s due to the way device types (and images) are loaded into the instance.
We have a working air-gapped configuration which I would like to upstream. I'm not quite sure how to best integrate it. I'll make a DRAFT merge request and would appreciate feedback.
See here https://github.com/balena-io/open-balena/pull/241
I need to clean it up a little and move a couple of things out of our proprietary repo into there. CiCD was easier for me there (gitlab CICD).
As originally reported in:
When users run the balena CLI command
balena fleet create
, regardless of whether or not they specify the device type with the--type
flag, I understand that the CLI calls the balena SDK's models.application.create() method that retrieves the device manifest from S3 as coded in the following lines:In turn, the SDK queries the
/device-types/v1
endpoint fromopenbalena-api
:Where the S3 bucket URL / hostname comes from environment variable
IMAGE_STORAGE_BUCKET
which, as I understand,open-balena
hardcodes ass3.amazonaws.com
:Hence accessing the internet.