-
Notifications
You must be signed in to change notification settings - Fork 87
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
Build system organization #1035
Comments
Thanks for creating this issue @katexochen. Personally I feel all the goals that you mentioned are important - isolation, reproducibility, usability |
We likely should agree on what those goals mean to us. Like, when we are talking about reproducible builds, are we talking about bit-by-bit reproducibility? Do we want to archive this for all components? Should be easy for binaries. More effort will be needed for the container images, but doable. Reproducible podvm image? I don't think this is possible with packer. |
I'm adding this to the agenda of the next peerpod meeting. :) |
Related issue regarding the organization of podvm files/templates: #899 |
I've created #1057 which is one way to pin the versions used in the podvm build process. But this is more of a PoC at this point |
Reviving this thread. With merging #1388 we have the ability to start using the versions.yaml instead of having hard coded values everywhere. Good step 1. I'd like to discuss what we do next. Points of discussion:
Thoughts? |
Thanks for picking this up. To make this actionable, I would suggest to untangle as much as possible.
|
We have made good experience with mkosi. We recently upstreamed some patches an are now able to build bit-by-bit reproducible OS images for fedora and ubuntu. Builds are highly configurable and config can include conditionals to support different distros in one config.
Would say to do this and replace both builder and binaries stages with directly importing the right prebuilt artifacts.
Agreed. |
Just a quick add that I have tried using |
I use @katexochen does mkosi allow building of cloud provider specific images ? A quick search didn't help. |
mkosi produced a plain image.raw. Upload to the cloud provider needs to be done via the cloud provider CLI (we use a small Go tool and the cloud provider SDKs to facilitate this at Edgeless). Sounds like a drawback, but it is much better this way, no need for CSP credentials in that process. I think you could even build the image fully offline in case you prefetch the packages that should be installed. |
I see.. So the workflow is similar to the qcow2 images we create with packer (we can switch to mkosi) and then use the cloud provider specific methods to create native images from the raw image. |
@katexochen does |
|
I didn't try yet, but there is
in the docs: https://github.com/systemd/mkosi/blob/main/mkosi/resources/mkosi.md#distribution-section |
I did some experiments today, but couldn't get cross-builds working yet. There are definitely some smaller upstream fixes needed. Will investigate further tomorrow. |
There is currently quite some movement in the build system:
to only name a few.
I propose we discuss the goals we want to reach with the build system (isolation, reproducibility, usability, etc.) and the tools to reach these goals as well as the greater organization of our build in this thread.
The text was updated successfully, but these errors were encountered: