F35 Change: Replace the Anaconda product configuration files with profiles (Self-Contained Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

== Summary ==
In Anaconda, we would like to introduce profile configuration files
and remove the support for product configuration files.

== Owner ==
* Name: [[User:vponcova| Vendula Poncova]]
* Email: <vponcova@xxxxxxxxxx>


== Detailed Description ==
Anaconda allows to change its configuration based on a detected
product using [https://anaconda-installer.readthedocs.io/en/latest/configuration-files.html?highlight=default_partitioning#product-configuration-files
the product configuration files]. The configuration is chosen based on
the <code>inst.product</code> and <code>inst.variant</code> boot
options, or the <code>Product</code> and <code>Variant</code> options
of the <code>.buildstamp</code> file, or the <code>NAME</code> option
in the <code>os-release</code> files.

This solution has several flaws:

* The detection based on the <code>os-release</code> files will no
longer work because of
[https://fedoraproject.org/wiki/Changes/Fedora_Linux_in_os-release a
Fedora 35 change].
* The <code>.buildstamp</code> file is generated by <code>lorax</code>
when it creates is a boot.iso. Therefore, we have to rely on other
solutions during the live, dir and image installations.
* The <code>inst.product</code> and <code>inst.variant</code> boot
options are misleading. Anaconda will run with a different
configuration. That doesn't mean it will install a different product.
* The configuration has to use a fake product name for its
identification if it is not tied to a real product.

We would like to redesign the product configuration files to solve
these issues. The idea is to replace them with more general profile
configuration files:

* The profile will be identified by a unique id.
* The profile can specify additional options for the automated profile
detection.
* The profile will be chosen based on the <code>inst.profile</code>
boot option, or based on the <code>ID</code> and
<code>VARIANT_ID</code> options of the <code>os-release</code> files.

For example, Fedora Server uses a configuration from
<code>/etc/anaconda/product.d/fedora-server.conf</code>.
The configuration can be enforced with the <code>inst.product=Fedora
inst.variant=Server</code> boot options.
The file contains the following sections:

<pre>
[Product]
product_name = Fedora
variant_name = Server

[Base Product]
product_name = Fedora
</pre>

After this change, Fedora Server will use a configuration from
<code>/etc/anaconda/profile.d/fedora-server.conf</code>.
The configuration can be enforced with the
<code>inst.profile=fedora-server</code> boot option.
The file will contain the following sections:

<pre>
[Profile]
# Define the profile.
profile_id = fedora-server
base_profile = fedora

[Profile Detection]
# Match os-release values.
os_id = fedora
variant_id = server
</pre>

The full draft of the profile configuration files is provided at:
https://github.com/rhinstaller/anaconda/pull/3388

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

== Benefit to Fedora ==
* The installer will use ids instead of names. That will solve the
problem with [https://fedoraproject.org/wiki/Changes/Fedora_Linux_in_os-release
the Fedora 35 change] and prevent similar issues in the future.
* All types of installation will use <code>os-release</code> values to
identify the product. We can remove workarounds for boot.iso and Live
ISO.
* The <code>inst.profile</code> option makes more sense, because it
allows to choose a different installation profile.
* A configuration, that is not tied to a product, doesn't have to
provide a fake product name or id.

== Scope ==
* Proposal owners: Will submit a pull request for the
<code>anaconda</code> package.
* Other developers: Should be no impact. Anaconda provides
configuration files for all Fedora products and the products rely on
the automated detection of configuration files.

* Release engineering: N/A
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: None.


== Upgrade/compatibility impact ==
Test the automated profile detection:
# Download and boot the Fedora Server ISO.
# The installation is started with the Fedora Server configuration.

Test the <code>inst.profile</code> boot option:
# Download and boot the Fedora Everything ISO.
# Add the <code>inst.profile=fedora-server</code> boot option.
# The installation is started with the Fedora Server configuration.

== User Experience ==
* Users will have to use the <code>inst.profile</code> boot option
instead of <code>inst.product</code> and <code>inst.variant</code>.
* Maintainers of custom product configuration files will have to
change their files.

== Dependencies ==
None.

== Contingency Plan ==
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a
System Wide Change)
* Contingency deadline: N/A (not a System Wide Change)
* Blocks release? N/A (not a System Wide Change), Yes/No

== Documentation ==
N/A (not a System Wide Change)




-- 
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux