Improvement proposal
Closed this issue · 6 comments
Hi, dear Razikus!
I'm currently working with openBalena and implement parts of its solutions by myself.
Your dashboard is stunning and must be clear - so helpful for me.
Currently, I`m trying to solve the problem of pushing data to openBalena registry via GitHub actions using the custom scenario.
OpenBalenaCLI GithubAction
But for this moment have no idea about the next steps.
If you need so - I have an idea of how to ensure the main openBalena to use with your dashboard builtin.
So underline my main proposal:
- Integrate your dashboard as part of openBalena server
- Automate development of apps, and image creation using Github Actions
- Customize Quzar with new styles to make it more user-friendly
Waiting for your response!
Hello Mark!
It's very good idea to make something like this.
I would prefer to make more "agnostic" balena builder schema
Something like Git Hook (https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)
So scenario here can be like balena cloud - push to special open-balena-git repository -> hook executing balena build -> logs streamed to terminal
But then we are losing the power of Github Actions and build-in server. But anyway it can be still integrated to Open Balena.
We have working solution with GitlabCI that is building and pushing data over registry. It can even pull images from private repo.
It uses also my other repo that is logging in before any action specified
https://github.com/Razikus/balena-dockerized-cli
It's very simple here
docker-deploy-master:
image: razikus/balena-dockerized-cli:11.35.5
services:
- docker:dind
script:
- >
echo -e "'registry.gitlab.com':" >> /registry-secrets.yml
- >
echo -e " username: '$BASEIMAGELOGIN'" >> /registry-secrets.yml
- >
echo -e " password: '$BASEIMAGEPASSWORD'" >> /registry-secrets.yml
- DEBUG=1 balena deploy blabla --source . --emulated --build --nocache -h docker -p 2375 --logs --registry-secrets /registry-secrets.yml --buildArg BLABLA=$BLABLA"
We should think about it and make some decision
Hello Mark!
It's very good idea to make something like this.
I would prefer to make more "agnostic" balena builder schema
Something like Git Hook (https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)
So scenario here can be like balena cloud - push to special open-balena-git repository -> hook executing balena build -> logs streamed to terminalBut then we are losing the power of Github Actions and build-in server. But anyway it can be still integrated to Open Balena.
We have working solution with GitlabCI that is building and pushing data over registry. It can even pull images from private repo.
It uses also my other repo that is logging in before any action specified
https://github.com/Razikus/balena-dockerized-cliIt's very simple here
docker-deploy-master: image: razikus/balena-dockerized-cli:11.35.5 services: - docker:dind script: - > echo -e "'registry.gitlab.com':" >> /registry-secrets.yml - > echo -e " username: '$BASEIMAGELOGIN'" >> /registry-secrets.yml - > echo -e " password: '$BASEIMAGEPASSWORD'" >> /registry-secrets.yml - DEBUG=1 balena deploy blabla --source . --emulated --build --nocache -h docker -p 2375 --logs --registry-secrets /registry-secrets.yml --buildArg BLABLA=$BLABLA"We should think about it and make some decision
It is here https://docs.solar-control.tech/openbalena/open-balena-push-analog.
Commit in master repo is actions which is signalize that your code is need to be builded and push widely to all devices.
Dividing by profiles/branches is also good practice in development flow, like:
master -> production
develop -> develop application
feature/* -> your feature envs.
Using my action you are have possibility to execute os configure, or preload command, to upload your customized images as artifacts directly in repo with project.
Images will be with root certs, in cause it was configured for this flow.
Using ignore certs
not the best way to secure comunication.
Details described here: https://forums.balena.io/t/balena-push-openbalena-alternative/271050/9
Wow it looks very nice.
Sorry i'm not very familiar with Github actions but it looks like Gitlab CICD
Is it 100% free? Any running worker is free or there are some free running hours available?
With super-nice scenario we can even integrate open-balena-dashboard with automatically creation of your actions within it
https://docs.github.com/en/rest/reference/actions#enable-a-selected-repository-for-github-actions-in-an-organization
To-check if it is possible, but then we can also add some metadata to repository, and maybe check if balena-sdk offers some metadata to applications itself, so we can associate application with repository
Maybe the good solution will be also considering Github app https://docs.github.com/en/developers/apps/about-apps
@Razikus
It has default worker limits, like 72 hours for one build, and 1000 API requests in an hour - so limits so low.
It is 100% free of the cause of self-hosting.
And it is possible to add SHA to the application variables for checking release versions too)
Github allows to use API, so we can integrate it directly into the dashboard to provide BalenaCloud functionality in OpenSouce project :) With some sort of instructions, but my main idea - is create something like openBalenaDashboard backend - like a proxy between OpenBalena api, and your solution. With dividing to roles, and so on, and so on :)
Hello fork should be simple as normal github forking