Define Elemental Toolkit Scope (obsolete) #1625
Replies: 4 comments 7 replies
-
Not sure about this. the current implementation where you have everything on a repo is very nice. I would keep the CI on both as getting the CI to run on a tag is very nice and at that point we are not in a hurry to publish. The good thing about pushing to the repo both on main merge and tag is that:
This sounds nice but it was a nightmare. Workers run out of space when building everything and just the build step took over 1 hour, sometimes 1:30. If we vastly reduce the number of packages this would be ok, but the build.go code was done to avoid rebuilding everything which was pretty time-consuming (not counting the running out of space during the full build)
agree on all
Sounds good but we also had issues with the docker builds and we had to disable them, cant remember why, sorry. But good for me to re-test this.
Packer was mostly due to having a "installed" machine ready for testing with the exact artifacts generated during the CI build. As long as we can reproduce the same thing Im ok with this. Do you mean with this to use the Also dont forget that the packer calling the installation has been instrumental in finding issues with the installs. We kind of use it as an end2end install testing for elemental-cli lol
Nice, agreed.
Well...if we drop the mostly-distro-dependent packages like grub and kernel crap maybe. Not sure how difficult would this be
Isnt /usr/local the persistent partition? |
Beta Was this translation helpful? Give feedback.
-
@mudler I'd be happy to get you feedback in here too, would be nice if the toolkit is arranged in a way that could eventually be a clean playground for different projects and products. |
Beta Was this translation helpful? Give feedback.
-
So far from the discussion I believe we kind of agree on few aspects which could be all translated into actionable cards. Here they are:
I believe with these three changes we could already make the elemental-toolkit way easier to be consumed for any project based on these bits. Hopefully also easier to maintain. @Itxaka @mudler @bk201 @rancher/elemental if you agree I'd create these three cards and try to further elaborate one by one |
Beta Was this translation helpful? Give feedback.
-
@bk201 WE can see that one of the packages we want to deprecate (rancherd) is still being maintained from the harvester and according to the messages on teh readme, plans to be used by rancherd. Do we need to keep it in the toolkit? or we can just remove it directly? |
Beta Was this translation helpful? Give feedback.
-
Elemental Toolkit repository deserves some attention if we ever consider growing a community around this project. For that a clear scope should be defined and the repository should be maintainable for an eventual small upstream community.
What if we focus Elemental Toolkit on providing the very basic essentials that could be added on top a Linux distro to turn it into an immutable OS built and delivered from OCI images? So no actual OS is built as an outcome of this repository, probably just few examples are required to show case how the Elemental Toolkit utilities could be applied on top of the base OCI image of common distros. Those could also be used in CI just for testing purposes.
On that regard these are few draft ideas about how we could re arrange and hopefully simplify the project:
Define Elemental core packages: properly state what a release means and what is actually supported and expected to remain stable
Try to reduce the maintainability overhead of the repository:
What if we assume three repository types
elemental install
, it is not a coding effortRearrange project structure to define a set of core packages and rearrange the repository in way to make obvious these are the relevant and stable bits
<root>/packages/core
: core packages that must remain stable and likely to be required on any Elemental based OS<root>/packages/toolchain
: packages only used at build time<root>/packages/misc
: all other non core and non build time packages, no stability commitmentLast but not least, something I have been thinking about is trying to make core packages really distro agnostic, so no need to build them for different flavors. The same build should work and makes sense for all (green, orange, blue and probably others). Also would it make sense installing everything under
/usr/local
to be respectful with the underlaying distro? In any case this would be an idea for a next iteration.Beta Was this translation helpful? Give feedback.
All reactions