-
Notifications
You must be signed in to change notification settings - Fork 97
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
🏭 Consolidate osbuilder and Auroraboot #1633
Comments
One more image describing the desired state of the various tools (osbuilder, auroraboot, enki) and the relations between them. |
We will soon be able to build Kairos container images using just Dockerfiles (no Earthly or other tools). There are 2 things missing to have the full "factory" experience:
Right now the creation of additional artifacts happens in Earthly using osbuilder-tools image. Above we describe how Autoraboot should provide both the UX and the artifact building functionality. Let's consider splitting as such:
The new suggestion above is that osbuilder doesn't use Auroraboot but enki directly. This allows us to focus the UX of Auroraboot to humans and not try to satisfy the needs of osbuilder too. |
As part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
so that it can be used as a library from Auroraboot as part of kairos-io/kairos#1633 The following anti-patterns make it very hard to re-use the enki functions: - viper is used as a global store, randomly accessing everything from anywhere - we pass around too many "configs": the BuildConfig, the embedded kairos-agent config, the BuildUKIAction (which is essentially yet another config), It's nearly impossible to construct the proper input for any function because we don't know what part of the configs available, is actually needed and used. This is a first refactoring that should at least let the caller use the BuildUKIAction without needing to populate a global "viper" object. Signed-off-by: Dimitris Karakasilis <[email protected]>
As part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
As part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
part of: kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
* Port sysext command from enki part of: kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]> * Don't use viper Signed-off-by: Dimitris Karakasilis <[email protected]> * Use global "--debug" option and some minor fixes - args that weren't used - command output was not printed Signed-off-by: Dimitris Karakasilis <[email protected]> --------- Signed-off-by: Dimitris Karakasilis <[email protected]>
as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
* Port genkey command from enki as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]> * Port genkey e2e test and don't use viper Signed-off-by: Dimitris Karakasilis <[email protected]> * Run the genkey tests in CI Signed-off-by: Dimitris Karakasilis <[email protected]> * Allow certs with negative serial numbers Not sure why the asus certs have a negative serial number but they do. If the asus box had that others might too, so we should better support it. The alternative would be to generate certs with positive serial number for the tests. https://github.com/golang/go/blob/master/src/crypto/x509/parser.go#L1014-L1018 microsoft/mssql-docker#895 (comment) Signed-off-by: Dimitris Karakasilis <[email protected]> * Remove focus Signed-off-by: Dimitris Karakasilis <[email protected]> --------- Signed-off-by: Dimitris Karakasilis <[email protected]>
New auroraboot release: https://github.com/kairos-io/AuroraBoot/releases/tag/v0.3.0 |
Cut another release which completely removes enki as a dependency: https://github.com/kairos-io/AuroraBoot/releases/tag/v0.3.1 also the enki repository is now archived. |
So we can deprecate the osbuilder-tools image in favor of this one. Part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
So we can deprecate the osbuilder-tools image in favor of this one. Part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
So we can deprecate the osbuilder-tools image in favor of this one. Part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
because it has been merged with auroraboot here: kairos-io/AuroraBoot#110 as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
because it has been merged with auroraboot here: kairos-io/AuroraBoot#110 as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]>
…110) * Copy over the osbuilder-tools image assets and merge with auroraboot So we can deprecate the osbuilder-tools image in favor of this one. Part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]> * Print command output when things fail Signed-off-by: Dimitris Karakasilis <[email protected]> * Build versioned image with earthly Signed-off-by: Dimitris Karakasilis <[email protected]> * Fix ARG being in the global scope and not visible in the stage this making the `auroraboot --version` command fail https://docs.docker.com/build/building/variables/#scoping Signed-off-by: Dimitris Karakasilis <[email protected]> * Set the correct arg in pipeline Signed-off-by: Dimitris Karakasilis <[email protected]> * Add back qemu (needed by some test) Signed-off-by: Dimitris Karakasilis <[email protected]> * Remove duplicate block in dockerfile and keep luet repos up to date Signed-off-by: Dimitris Karakasilis <[email protected]> * Support images in the form of "dir:", in build-iso Signed-off-by: Dimitris Karakasilis <[email protected]> * Let elemental handle the schema and create missing tmp dir Signed-off-by: Dimitris Karakasilis <[email protected]> * Remove not necessary flag it seems that it only fails when the user building is not the same as the owner of the .git directory: golang/go#53532 I only saw it when running: ``` docker run --rm -it -v $PWD:/work --workdir /work golang go build . ``` With `docker build` it just works (maybe that command handles the users differently?). In any case, it doesn't affect CI or anything else so I'll remove it. Signed-off-by: Dimitris Karakasilis <[email protected]> --------- Signed-off-by: Dimitris Karakasilis <[email protected]>
I extracted the last item to a separate ticket. Since it has nothing to do with consolidation of osbuilder and auroraboot, I don't think it is part of this epic. Let's close this one as soon as the other 2 items are done. |
* Remove references to osbuilder-tools image because it has been merged with auroraboot here: kairos-io/AuroraBoot#110 as part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]> * WIP Signed-off-by: Dimitris Karakasilis <[email protected]> * Fix test command Signed-off-by: Dimitris Karakasilis <[email protected]> * go mod tidy Signed-off-by: Dimitris Karakasilis <[email protected]> * Bump linting action Signed-off-by: Dimitris Karakasilis <[email protected]> * Don't look for artifacts in build/ subdir because it has been fixed here: kairos-io/AuroraBoot#115 Signed-off-by: Dimitris Karakasilis <[email protected]> --------- Signed-off-by: Dimitris Karakasilis <[email protected]>
* Use auroraboot image as tools image part of kairos-io/kairos#1633 Signed-off-by: Dimitris Karakasilis <[email protected]> * Update crds from osbuilder repo Signed-off-by: Dimitris Karakasilis <[email protected]> * Bump action Signed-off-by: Dimitris Karakasilis <[email protected]> * Bump chart version Signed-off-by: Dimitris Karakasilis <[email protected]> --------- Signed-off-by: Dimitris Karakasilis <[email protected]>
We currently have 2 different tools to build Kairos images:
Both of them have more responsibilities than building (e.g. Auroraboot handles netbooting, osbuilder handles upgrades) but they share the building part.
The current situation and the desired is described in the image above.
This is an epic to collect all the steps/issues toward the desired state.
The last item needs to be discussed and it will be more clear when we have everything consolidated in one image.
The text was updated successfully, but these errors were encountered: