https://fedoraproject.org/wiki/Changes/FedoraWorkstationImageBuilder

This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.



== 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 switch the
build tool for Fedora Workstation live ISO from livemedia-creator to
Image Builder.

== Owner ==
* Name: [[User:obudai|Ondřej Budai]]
* Email: obu...@redhat.com
* Name: [[User:Supakeen|Simon de Vlieger]]
* Email: supak...@redhat.com
* Name: [[User:jkonecny|Jiří Konečný]]
* Email: jkone...@redhat.com



== 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 instead of the
currently used livemedia one.

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 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 ==

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 ==
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 ==
* 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: [https://pagure.io/releng/issue/11500 #11500]
Provide ppc64le machines to Image Builder. Switch the pungi config to
use Image Builder.

* 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 that the old tooling is
used instead.

* Contingency deadline: Final freeze (the change is trivially revertible)

* Blocks release? No


== Documentation ==
N/A

== Release Notes ==
Fedora Workstations ISOs are now built using Image Builder instead of
the legacy tooling used before.



-- 
Aoife Moloney

Product Owner

Community Platform Engineering Team

Red Hat EMEA

Communications House

Cork Road

Waterford
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to