-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DRAFT: Enable Air-gapped open-balena deployment #241
base: master
Are you sure you want to change the base?
Conversation
c1a1da8
to
ad88753
Compare
@@ -59,6 +59,14 @@ up: config ## Start all services | |||
@$(MAKE) showenv | |||
@$(MAKE) showpass | |||
|
|||
.PHONY: agup |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we parameterise up
and down
instead, along the lines of https://stackoverflow.com/a/2214793/1559300:
(e.g. make up composition=docker-compose-ag.yml
and the default if not provided being docker-compose.yml
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial quick pass through the PR and some comments/actions..
@@ -0,0 +1,462 @@ | |||
--- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am hesitant to keep a separate composition - can the original and AG compositions be a single file, with any changes being passed via environment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure how to do that. Have you got any pointers?
What I can certainly see is turning the docker-compose-airgapped.yml
into an "overlay" that just modifies the original docker-compose.yml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI I'm working on using the docker compose profiles
to keep it a single file.
3df502e
to
7d809cd
Compare
…MEOUT and DEVICE_TYPES_CACHE_TIMEOUT, mount contracts into api for air-gapped
81c7d96
to
9003ff2
Compare
DRAFT This MR enables air-gapped installation of open-balena
This very much builds on https://forums.balena.io/t/supported-devices-in-open-balena/357665
We have this working in production. I would appreciate feedback on how to best integrate this into open-balena. I expect there a changes to be made. My bandwidth is limited, so don't expect this to go fast.
Overview of changes:
docker-compose-airgapped.yml
apk add
or equivalent during runtimedocker compose build
api-contracts
container which contains the contracts github repo and bind mounts into theapi
container as aCONTRACTS_PRIVATE_REPO_...
s3-device-types
which contains a subset of the s3 bucket and pushes this into the s3 container (this is still on our repo solely for cicd ease of use, will move in here)env.tmpl
file used by theapi
container to respect a few more env set in docker-compose (e.g.DEVICE_TYPES_CACHE_LOCAL_TIMEOUT
to fix a caching problem)