No edit summary |
(add release note ticket) |
||
(16 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
= Build Fedora Workstation live ISO with | = Build Fedora Workstation live ISO with Image Builder = | ||
== Summary == | == Summary == | ||
Image | Image Builder is a set of modern tools for building operating system images. Its goal is to make the builds reliable and reproducible. Moreover, it's designed to give the end users a simple workflow to build their own custom images. The aim of this change is to create an additional, non-blocking Fedora Workstation live ISO using Image Builder. | ||
== Owner == | == Owner == | ||
* Name: [[User:obudai|Ondřej Budai]] | * Name: [[User:obudai|Ondřej Budai]] | ||
* Email: obudai@redhat.com | * Email: obudai@redhat.com | ||
* Name: [[User:Supakeen|Simon de Vlieger]] | |||
* Email: supakeen@redhat.com | |||
* Name: [[User:jkonecny|Jiří Konečný]] | * Name: [[User:jkonecny|Jiří Konečný]] | ||
* Email: jkonecny@redhat.com | * Email: jkonecny@redhat.com | ||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeAcceptedF40]] | ||
<!-- 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 24: | Line 22: | ||
[[Category:SystemWideChange]] | [[Category:SystemWideChange]] | ||
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/ | * Targeted release: [https://docs.fedoraproject.org/en-US/releases/f40/ Fedora Linux 40] | ||
* Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | * Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | ||
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | <!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | ||
Line 32: | Line 30: | ||
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/QI3M2RW6CF6OWIQML2EOIZDOSHAQOVYU/ devel thread] | ||
* FESCo issue: | * FESCo issue: [https://pagure.io/fesco/issue/3030 #3030] | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2233273 #2233273] | ||
* Release notes tracker: | * Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/1034 #1034] | ||
== Detailed Description == | == Detailed Description == | ||
Image builder is currently getting support for building [https://github.com/osbuild/osbuild-composer/pull/3440 live ISOs]. Once the PR implementing the new image type is merged, [https://pagure.io/pungi-fedora/blob/8b2c85799cce5c096484cdebe1dbe521eaf7fe92/f/fedora.conf#_530 the pungi-fedora configuration] needs to be updated. This change will ensure that pungi creates an osbuildImage task in koji | Image builder is currently getting support for building [https://github.com/osbuild/osbuild-composer/pull/3440 live ISOs]. Once the PR implementing the new image type is merged, [https://pagure.io/pungi-fedora/blob/8b2c85799cce5c096484cdebe1dbe521eaf7fe92/f/fedora.conf#_530 the pungi-fedora configuration] needs to be updated. This change will ensure that pungi creates an osbuildImage task in koji as well as the currently used livemedia one. | ||
Pungi and Koji already support | Pungi and Koji already support Image Builder, so no additional work is required there (refer to the [https://docs.pagure.org/pungi/configuration.html#osbuild-composer-for-building-images pungi] and [https://github.com/osbuild/koji-osbuild/ koji] documentation). The only missing part in terms of infrastructure is provisioning ppc64le worker machines for Image Builder, see the relevant [https://pagure.io/fedora-infrastructure/issue/11243 fedora-infra ticket]. | ||
Note that | Note that Image Builder is already used for [https://fedoraproject.org/wiki/Changes/IoTArtifactsWithOSBuild building ISOs and raw disks of Fedora IoT]. Therefore, this proposal does not introduce a new tool to the Fedora build pipeline. | ||
== Feedback == | == Feedback == | ||
<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. --> | <!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. --> | ||
Currently, Image Builder does not populate the DNF database correctly, leading to all RPMs installed on the target system being marked as user-installed. This is [https://github.com/osbuild/osbuild/issues/455 a known issue] that the team is planning to address as soon as the initial support for live ISOs is merged. | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
The maintainer team of | The maintainer team of Image Builder believes that the project undergoes more comprehensive testing compared to lorax/livemedia-creator. Thus, by switching to Image Builder, Fedora should experience fewer issues with the image building pipeline. | ||
Another advantage is the project's emphasis on making Image Builder more user-friendly. End users can easily build their own customized version of the live ISO using a simple [https://www.osbuild.org/guides/image-builder-on-premises/blueprint-reference.html TOML blueprint file] and a [https://www.osbuild.org/guides/image-builder-on-premises/building-an-image-from-cli.html CLI interface]. This approach, utilizing well-known file formats, is a positive step compared to livemedia-creator's kickstart files. More information about building customized images can found on [https://major.io/p/build-custom-centos-stream-cloud-image/ Major Hayden's blog] or in [https://www.youtube.com/watch?v=PsQySAEOeFs&t=17001s a conference talk] given by Ondřej Budai, one of the proposal owners. Moreover, Image Builder provides [https://github.com/osbuild/cockpit-composer/ a graphical interface] for visually defining blueprints, further simplifying the workflow. | |||
We believe that Image Builder can also be beneficial to the [https://fedoraproject.org/wiki/Respins-SIG Respins SIG] as it nicely aligns with their objective of providing a simple method for building up-to-date, customizable images. | |||
== Scope == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
Finishing implementing support for the live ISO upstream and collaborate with release engineering to switch the pungi config to use | Finishing implementing support for the live ISO upstream and collaborate with release engineering to switch the pungi config to use Image Builder. | ||
* Other developers: | * Other developers: | ||
Our focus for this change is specifically on Fedora Workstation. Nevertheless, we are open to collaborating with all spins/SIG to transition their build pipelines to | Our focus for this change is specifically on Fedora Workstation. Nevertheless, we are open to collaborating with all spins/SIG to transition their build pipelines to Image Builder. However, for the initial switch, we aim to minimize the impact by focusing on a single artifact. We anticipate that more artifacts will be transitioned in subsequent releases of Fedora Linux. | ||
* Release engineering: [https://pagure.io/releng/issue/11500 #11500] <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | |||
Provide ppc64le machines to Image Builder. Update the pungi config to build an image with Image Builder as well as livemedia-creator. | |||
* Policies and guidelines: N/A (not needed for this Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Policies and guidelines: N/A (not needed for this Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
Line 80: | Line 77: | ||
== How To Test == | == How To Test == | ||
Once the pungi config is changed, grab the ISO built by | Once the pungi config is changed, grab the ISO built by Image Builder and test if there are any unexpected changes. | ||
Line 87: | Line 84: | ||
== Dependencies == | == Dependencies == | ||
The Workstation SIG and the installer team are working on a change to use the new installer web UI for the Workstation live ISO. We are fully aware of this change and have the capability to build ISOs with and without the new UI. As a result, these changes should be independent of each other. Furthermore, the installer and | The Workstation SIG and the installer team are working on a change to use the new installer web UI for the Workstation live ISO. We are fully aware of this change and have the capability to build ISOs with and without the new UI. As a result, these changes should be independent of each other. Furthermore, the installer and Image Builder teams are closely collaborating, ensuring that any issues that may arise can be addressed with high priority. | ||
== Contingency Plan == | == Contingency Plan == | ||
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | <!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | ||
* Contingency mechanism: (What to do? Who will do it?) Release engineering to revert the change in pungi, so | * Contingency mechanism: (What to do? Who will do it?) Release engineering to revert the change in pungi, so the image is not generated. | ||
<!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | <!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | ||
* Contingency deadline: Final freeze (the change is trivially revertable) | * Contingency deadline: Final freeze (the change is trivially revertable) | ||
Line 103: | Line 100: | ||
== Release Notes == | == Release Notes == | ||
An alternative Fedora Workstation live ISO is now built using Image Builder. The official Fedora Workstation live ISO is still built using livemedia-creator for now. | |||
<!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are at https://docs.fedoraproject.org/en-US/fedora/latest/release-notes/ --> | <!-- The Fedora Release Notes inform end-users about what is new in the release. Examples of past release notes are at https://docs.fedoraproject.org/en-US/fedora/latest/release-notes/ --> | ||
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this change, indicate them here. A link to upstream documentation will often satisfy this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. | <!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this change, indicate them here. A link to upstream documentation will often satisfy this need. This information forms the basis of the release notes edited by the documentation team and shipped with the release. |
Latest revision as of 21:20, 28 September 2023
Build Fedora Workstation live ISO with Image Builder
Summary
Image Builder is a set of modern tools for building operating system images. Its goal is to make the builds reliable and reproducible. Moreover, it's designed to give the end users a simple workflow to build their own custom images. The aim of this change is to create an additional, non-blocking Fedora Workstation live ISO using Image Builder.
Owner
- Name: Ondřej Budai
- Email: obudai@redhat.com
- Name: Simon de Vlieger
- Email: supakeen@redhat.com
- Name: Jiří Konečný
- Email: jkonecny@redhat.com
Current status
- Targeted release: Fedora Linux 40
- Last updated: 2023-09-28
- devel thread
- FESCo issue: #3030
- Tracker bug: #2233273
- Release notes tracker: #1034
Detailed Description
Image builder is currently getting support for building live ISOs. Once the PR implementing the new image type is merged, the pungi-fedora configuration needs to be updated. This change will ensure that pungi creates an osbuildImage task in koji as well as the currently used livemedia one.
Pungi and Koji already support Image Builder, so no additional work is required there (refer to the pungi and koji documentation). The only missing part in terms of infrastructure is provisioning ppc64le worker machines for Image Builder, see the relevant fedora-infra ticket.
Note that Image Builder is already used for building ISOs and raw disks of Fedora IoT. Therefore, this proposal does not introduce a new tool to the Fedora build pipeline.
Feedback
Currently, Image Builder does not populate the DNF database correctly, leading to all RPMs installed on the target system being marked as user-installed. This is a known issue that the team is planning to address as soon as the initial support for live ISOs is merged.
Benefit to Fedora
The maintainer team of Image Builder believes that the project undergoes more comprehensive testing compared to lorax/livemedia-creator. Thus, by switching to Image Builder, Fedora should experience fewer issues with the image building pipeline.
Another advantage is the project's emphasis on making Image Builder more user-friendly. End users can easily build their own customized version of the live ISO using a simple TOML blueprint file and a CLI interface. This approach, utilizing well-known file formats, is a positive step compared to livemedia-creator's kickstart files. More information about building customized images can found on Major Hayden's blog or in a conference talk given by Ondřej Budai, one of the proposal owners. Moreover, Image Builder provides a graphical interface for visually defining blueprints, further simplifying the workflow.
We believe that Image Builder can also be beneficial to the Respins SIG as it nicely aligns with their objective of providing a simple method for building up-to-date, customizable images.
Scope
- Proposal owners:
Finishing implementing support for the live ISO upstream and collaborate with release engineering to switch the pungi config to use Image Builder.
- Other developers:
Our focus for this change is specifically on Fedora Workstation. Nevertheless, we are open to collaborating with all spins/SIG to transition their build pipelines to Image Builder. However, for the initial switch, we aim to minimize the impact by focusing on a single artifact. We anticipate that more artifacts will be transitioned in subsequent releases of Fedora Linux.
- Release engineering: #11500
Provide ppc64le machines to Image Builder. Update the pungi config to build an image with Image Builder as well as livemedia-creator.
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with Community Initiatives:
Upgrade/compatibility impact
There shouldn't be any. The goal of this proposal is to build the same images as livemedia-creator does, just using a different tooling.
How To Test
Once the pungi config is changed, grab the ISO built by Image Builder and test if there are any unexpected changes.
User Experience
No change is expected.
Dependencies
The Workstation SIG and the installer team are working on a change to use the new installer web UI for the Workstation live ISO. We are fully aware of this change and have the capability to build ISOs with and without the new UI. As a result, these changes should be independent of each other. Furthermore, the installer and Image Builder teams are closely collaborating, ensuring that any issues that may arise can be addressed with high priority.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) Release engineering to revert the change in pungi, so the image is not generated.
- Contingency deadline: Final freeze (the change is trivially revertable)
- Blocks release? No
Documentation
N/A
Release Notes
An alternative Fedora Workstation live ISO is now built using Image Builder. The official Fedora Workstation live ISO is still built using livemedia-creator for now.