Improving reusability and composability of ublue-os images #93
Replies: 9 comments 8 replies
-
Ok let me write some out so we can see what the final things look like. Am I getting this right?
and so on ... then for nvidia:
and then for people's individual spins:
|
Beta Was this translation helpful? Give feedback.
-
Ok this looks fine to me and future-proof, unless there's any objections I say we go for it, the longer we wait the more people will need to rebase. |
Beta Was this translation helpful? Give feedback.
-
I made a simple graph based on what I understand to be the direction we’re heading! https://www.figma.com/file/XgA7qbJ5f9ZvodGipR5L0c/Ublue-structure-draft Feel free to correct any mistakes, etc. I can make one for the final decided upon structure too for use on the website. |
Beta Was this translation helpful? Give feedback.
-
I like this proposal - thanks for taking time to document this. I'm against
Would each |
Beta Was this translation helpful? Give feedback.
-
The other thing I like in @EinoHR image is it very much aligns with the docker base image -> buildpackdeps -> language pipeline. Where you have a Debian base image, then the buildpack-deps for Debian (that makes the Debian container actually useable) and others OS bases, then a Python container derived from the buildpack-deps. This project effectively becomes buildpack-deps for upstream silverblue, etc. That image of |
Beta Was this translation helpful? Give feedback.
-
One thing I'm curious about in terms of maintenance is how ublue/main will be layered on top of upstream Fedora images. ublue/main is based directly off Silverblue, right? So then is it as simple as swapping out the |
Beta Was this translation helpful? Give feedback.
-
Quick update to everyone on this, I've made the repos. The line of thinking was that this would be a good time to split things that make more logical sense. The Once we're done we'll tell people to rebase and give them a nice migration period. We have 90 days of image reaping in the registry, so whenever we freeze it + 90 days. On day 91 we archive |
Beta Was this translation helpful? Give feedback.
-
Just as a slight note: you could actually put |
Beta Was this translation helpful? Give feedback.
-
Also forgot to ask, since this is a soft-reboot should we consider linting/shellcheck-style actions from the getgo? EDIT: set up super-linter (slim) in the experimental repo if anyone wants to try it: https://github.com/ublue-os/experimental |
Beta Was this translation helpful? Give feedback.
-
As more ublue-os images are added, it's becoming increasingly clear that we should reorganize our images to reduce duplication of work and increase sharing of commonly used packages and patterns into standardized base images. This will give users "upstream" images that have generally useful features and enhancements that one would otherwise end up layering after a fresh Silverblue install. Such images would include:
These images in turn would be useful for consuming in specialized derivative images. Take the Nvidia image for example, which currently includes many additions that aren't related to Nvidia support. These additions could be separated into a common upstream image definition:
Which leaves Nvidia-specific functionality:
In theory this will improve clarity for where to file feature requests and bug reports. A request to add a specific package to the base image would lead to all derivative images benefiting by automatically including it on the next rebuild.
I believe what remains the biggest hurdle is how to name these base images on our registry when numerous names have already been reserved and it's not clear how many different base images we'd want to support. Current name proposals include:
ghcr.io/ublue-os/${FLAVOR}-main
ghcr.io/ublue-os/${FLAVOR}-mainline
ghcr.io/ublue-os/${FLAVOR}-common
ghcr.io/ublue-os/${FLAVOR}-comm
Beta Was this translation helpful? Give feedback.
All reactions