(Created page with "<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> = Change Proposal Name <!-- The name of your change proposal --> = {{Change_Proposal_Banner}} == Summary == <!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the chang...") |
mNo edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
= | = Koji uses Red Hat Image Builder locally = | ||
{{Change_Proposal_Banner}} | {{Change_Proposal_Banner}} | ||
== Summary == | == Summary == | ||
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". --> | <!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". --> | ||
Switch Image Builder-built images in Koji to not build through a service, but locally. | Switch the [https://osbuild.org/ Red Hat Image Builder]-built images in Koji to not build through a service, but locally. | ||
== Owner == | == Owner == | ||
* Name: [[User:supakeen| Simon de Vlieger]] | * Name: [[User:supakeen| Simon de Vlieger]] | ||
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. --> | <!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. --> | ||
* Email: cmdr@supakeen | * Email: cmdr@supakeen.com | ||
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | <!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | ||
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address> | * FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address> | ||
== Current status == | |||
[[Category:ChangeAnnounced]] | |||
[[Category: | [[Category:SystemWideChange]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | ||
Line 31: | Line 29: | ||
<!-- Select proper category, default is Self Contained Change --> | <!-- Select proper category, default is Self Contained Change --> | ||
[[Category: | [[Category:ChangeAnnounced]] | ||
<!-- [[Category:SystemWideChange]] --> | <!-- [[Category:SystemWideChange]] --> | ||
Line 42: | Line 40: | ||
ON_QA -> change is fully code complete | ON_QA -> change is fully code complete | ||
--> | --> | ||
* [ | * [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/CRFY5SYNAWALWBNRMUIW5DEGXAWZBVGS/ Announced] | ||
* [ | * [https://discussion.fedoraproject.org/t/f42-change-proposal-koji-uses-red-hat-image-builder-locally-system-wide/142031 Discussion thread] | ||
* FESCo issue: <will be assigned by the Wrangler> | * FESCo issue: <will be assigned by the Wrangler> | ||
* Tracker bug: <will be assigned by the Wrangler> | * Tracker bug: <will be assigned by the Wrangler> | ||
Line 50: | Line 48: | ||
== Detailed Description == | == Detailed Description == | ||
Several Fedora images are being built by the Image Builder service (Fedora IoT, Fedora Minimal). Image Builder acts as a [https://docs.pagure.org/koji/content_generators/ content generator] in Koji. Images are built external to Fedora infrastructure as requested by Koji and then delivered back. | Several Fedora images are being built by the Red Hat Image Builder service (Fedora IoT, Fedora Minimal). Image Builder acts as a [https://docs.pagure.org/koji/content_generators/ content generator] in Koji. Images are built external to Fedora infrastructure as requested by Koji and then delivered back. | ||
This has led to | This has led to of issues over time. Amongst them instability and the inability of Fedora release engineering and infrastructure teams to intervene and the inability to freeze the external infrastructure during a release window. | ||
I plan to replace the current approach in `koji-osbuild` with a local-only build. Image Builder machinery and definitions will still be used for the mentioned images but the build will run locally on Fedora infrastructure and builders. In the same way that `kiwi` or `livemediacreator`-images are built. | I plan to replace the current approach in `koji-osbuild` with a local-only build. Image Builder machinery and definitions will still be used for the mentioned images but the build will run locally on Fedora infrastructure and builders. In the same way that `kiwi` or `livemediacreator`-images are built. | ||
My plan is to start with adding these tasks to `koji-osbuild`, keeping them there for a cycle and if they are stable to upstream them into `koji` directly; deprecating `koji-osbuild` at that point in the future. | |||
`image-builder-cli` built images can be easily rebuilt locally from their manifests uploaded in `koji`. The images can be easily built locally and support [https://osbuild.org/docs/user-guide/blueprint-reference all end-user customizations available]. Work is ongoing in the Image Builder stack to also move the definitions of the distribution to a declarative format. | |||
== Feedback == | == Feedback == | ||
Line 69: | Line 71: | ||
* Submit the `image-builder-cli` package for inclusion in Fedora 42. | * Submit the `image-builder-cli` package for inclusion in Fedora 42. | ||
* Change the `koji-osbuild` plugin to provide a new task type that uses `image-builder-cli` | * Request a `image-builder-build` comp group for the build requirements in koji roots. | ||
* Change the `koji-osbuild` plugin to provide a new task type that uses `image-builder-cli`. | |||
* Changes to pungi to be able to schedule these tasks. | * Changes to pungi to be able to schedule these tasks. | ||
* Changes to pungi config for Fedora IoT. | * Changes to pungi config for Fedora IoT. | ||
Line 78: | Line 80: | ||
== Contingency Plan == | == Contingency Plan == | ||
Independent of where on the above tasks I get stuck | Independent of where on the above tasks I get stuck images can continue to be built with the current setup. | ||
== Release Notes == | == Release Notes == |
Latest revision as of 19:57, 10 January 2025
Koji uses Red Hat Image Builder locally
Summary
Switch the Red Hat Image Builder-built images in Koji to not build through a service, but locally.
Owner
- Name: Simon de Vlieger
- Email: cmdr@supakeen.com
- Targeted release: Fedora Linux 42
- Last updated: 2025-01-10
- Announced
- Discussion thread
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
Several Fedora images are being built by the Red Hat Image Builder service (Fedora IoT, Fedora Minimal). Image Builder acts as a content generator in Koji. Images are built external to Fedora infrastructure as requested by Koji and then delivered back.
This has led to of issues over time. Amongst them instability and the inability of Fedora release engineering and infrastructure teams to intervene and the inability to freeze the external infrastructure during a release window.
I plan to replace the current approach in koji-osbuild
with a local-only build. Image Builder machinery and definitions will still be used for the mentioned images but the build will run locally on Fedora infrastructure and builders. In the same way that kiwi
or livemediacreator
-images are built.
My plan is to start with adding these tasks to koji-osbuild
, keeping them there for a cycle and if they are stable to upstream them into koji
directly; deprecating koji-osbuild
at that point in the future.
image-builder-cli
built images can be easily rebuilt locally from their manifests uploaded in koji
. The images can be easily built locally and support all end-user customizations available. Work is ongoing in the Image Builder stack to also move the definitions of the distribution to a declarative format.
Feedback
This change proposal does not yet provide a way for the distribution definitions to be owned by, and live inside, Fedora infrastructure. I plan to address this in a later change proposal.
Benefit to Fedora
Control over Image Builder on its own infrastructure, lessen remove the need to reach out to external parties when releases are blocked.
Scope
Proposal Owners
- Submit the
image-builder-cli
package for inclusion in Fedora 42. - Request a
image-builder-build
comp group for the build requirements in koji roots. - Change the
koji-osbuild
plugin to provide a new task type that usesimage-builder-cli
.
- Changes to pungi to be able to schedule these tasks.
- Changes to pungi config for Fedora IoT.
- Changes to pungi config for Fedora Minimal.
Contingency Plan
Independent of where on the above tasks I get stuck images can continue to be built with the current setup.