F42 Change Proposal: Anaconda WebUI Partitioning (System-Wide)

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

 



Wiki - https://fedoraproject.org/wiki/Changes/Anaconda_Web_UI_Partitioning
Discussion  Thread -
https://discussion.fedoraproject.org/t/feedback-anaconda-web-ui-partitioning/108995

This is a proposed Change for Fedora Linux.
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 ==

The Anaconda OS installer project needs to have a new approach for
partitioning with the new web UI. This approach needs to be easy to
control for users who don’t understand details of the Linux storage
but still allows more complex requirements.

== Owner ==

* Name: [[User:jkonecny| Jiri Konecny]]
* Email: jkonecny@xxxxxxxxxx



== Detailed Description ==

This is separation of one topic from the
[[Changes/AnacondaWebUIforFedoraWorkstation|Anaconda WebUI for Fedora
Workstation by default]] change in Fedora. The storage part of the new
installer UI was extracted here to start an open discussion of our
solution, to collect feedback and get agreement with the proposed
approach. '''Main reason for creating this change is to agree on a
solution and to find feasibility for the next Fedora delivery.'''


With the current GTK UI of Anaconda we provide users three ways of
creating partitioning.

* Automatic - select disks (optional encryption) and Anaconda will do
everything else for you.
** If disks are not empty a pop-up will show, which allows you to
select what partitions you want to remove or preserve to free up space
for the automatic installation.
* Custom -  select disks and then you will get to an advanced screen
where you design your output partitioning. This is the top-bottom
partitioning approach where you design your mount points but do not
have to care about how the final goal is reached.
* Blivet-gui - select disks and then design your storage from the
bottom (bottom-top approach) by creating a partition on it BTRFS etc…
** This solution was added later and its external tool integrated into
Anaconda, not directly maintained by the Anaconda team.

However, with web UI we need to change this because technologies are
different. When we are changing this, we would like to resolve old
pains of the current approach. The current approach is great in being
middle ground but in general, however, there are people who want to
have something extra (top-bottom approach is not specific enough) but
we also do not cover users, who don’t have much experience with Linux
partitioning (use cases as reinstall my existing system). Another
issue is that the Anaconda team size has reduced significantly from
times when the GTK solution was created, so we are looking for
solutions which are simple yet smart and easier to maintain and
extend.


Our solution:

* Guided partitioning - this is a more powerful automatic partitioning
where the user will select a goal and have additional customizations
possible. The goal here is that most users should be covered by this
guided experience.
** Currently our implementation has three possibilities:
*** Reinstall all selected disks and remove everything that is on them.
*** Install into a free space on selected disks.
*** Use existing storage and assign mount points for the installed system.
**** Good option for reusing the existing partitioning.
**** Users can also create their partitioning ahead of time with any
partitioning tool they prefer and use this option to just tell
Anaconda how to use the partitioning.
** We will extend the existing set of possibilities with the following list:
*** Reinstall existing system.
**** Users will have a list of existing systems installed on disks and
select which one they want to reinstall (remove existing system and
install to the same space).
**** Anaconda will replace root and should have a possibility to
preserve /home with user data.
*** Easy way to reclaim space from the existing disks and start
installation to the free space.
**** Similar approach to what we had on GTK UI.
**** It is simple and should cover a lot of cases in a simple way.
*** Based on the user feedback we would love to add more requested workflows.

* Cockpit storage - this is an external tool which is provided to the
user, however, thanks to the fact that web UI and Cockpit storage are
based on the same technologies, we are able to integrate Cockpit
Storage into the Anaconda web UI. '''Please note, that it is still an
external tool and shouldn’t be taken as part of the installation
workflow.''' We are trying to make this obvious in the UI.
** We have chosen the Cockpit Storage because it is using the same
PatternFly and Cockpit frameworks as the web UI, so it has a
consistent look and feel and allows us much seamless integration with
Anaconda. Also Cockpit Storage can be used with remote HTTPS
installations in the future. Users of Fedora might be familiar with
this tool because it is already used in Cockpit, it is a stable and
well maintained project.
** Cockpit storage does not support action planning which creates
controversy around this approach. All the actions done in the Cockpit
Storage are immediately applied to the disk. This is a drawback
compared to the current GTK UI, however, the approach as explained
above should be used as the secondary option when you are not
satisfied with the Guided partitioning and only for advanced users.
This shouldn't be taken as the main installation method nor part of
the installation workflow.

Based on the feedback we have decided to implement these changes:
https://discussion.fedoraproject.org/t/108995/58


== Feedback ==

We unfortunately don’t have much feedback from the community yet,
however, for that reason the FESCO decided in
https://pagure.io/fesco/issue/3169 that we should have testing for
feedback collection after Fedora 40 is released.


However, we were able to collect a bit of a feedback from FESCO members
* Cockpit storage is missing planning and immediate execution of
actions feels unsafe.
** Reply: We worked hard on notifying users that this is the case and
users could lose their data (which applies to any partitioning
method). Also this tool should be used only by the advanced users and
ideally only to a smaller number of them. The guided solution should
be the preferred one.
* What other tools can we use than Cockpit Storage?
** Reply: To our knowledge there are no other tools for partitioning
based on the same technologies as we are using for Cockpit Storage.
Which is making the Cockpit Storage an obvious choice for us and
enables us to also support this tool with remote HTTPS installations
in the future.
* Why Anaconda won’t implement their own solution.
** Reply: Reasons were already described above. Anaconda team size has
reduced a lot recently and we are looking at ways to maintain less to
be able to keep the project alive reasonably and not only for bug
fixing. Implementing our own solution would take significant resources
to implement and would increase maintenance costs.

A lot of feedback was received on
https://discussion.fedoraproject.org/t/feedback-anaconda-web-ui-partitioning/108995

== Benefit to Fedora ==

Anaconda GTK UI partitioning solution is quite complex but it also
could be limiting to advanced users. Our new solutions should simplify
the process of partitioning for Fedora users by selecting what they
want to achieve instead of how to achieve and leave the rest on
Anaconda. On the other hand we also allow users to use external
partitioning tools if they prefer.

Thanks to the fact that the Cockpit Storage project is maintained by
another team, the Anaconda team should have more capacity to focus on
other goals and priorities. As the outcome of this, Anaconda team
should have more capacity for feature work and bug fixing of issues
for the Fedora users.

The biggest benefit is the new guided partitioning. This approach
should simplify installation a lot and provide a powerful tool for
users who don't bother about details but want to achieve a specific
goal.

== Scope ==
* Proposal owners:
** Anaconda team
** Cockpit team

* Other developers: Should not have impact out of the Fedora
Workstation Live environment.

* Release engineering: [https://pagure.io/releng/issues #Releng issue number]

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

This is a change to the installer of the system - no compatibility or
upgrade issues are expected to happen.


== How To Test ==

New partitioning solution together with a new web UI which should
simplify and improve user experience.



== Dependencies ==

Cockpit and Cockpit storage packages.



== Contingency Plan ==

* Contingency mechanism: Return back to the current GTK UI by changing
packages to build the ISO.
* Contingency deadline: Beta freeze
* Blocks release? No, we can ship without the new web UI


== Documentation ==

Documentation should be extended to guide users in how to create
partitioning beforehand if that is their desire.

== Release Notes ==
-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney

-- 
_______________________________________________
devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-announce-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-announce@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
-- 
_______________________________________________
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, report it: https://pagure.io/fedora-infrastructure/new_issue




[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