New Agama installer development plans revealed by the openSUSE project

openSUSE project developers published development plan for the new installer Agama (formerly D-Installer), designed to replace the classic SUSE and openSUSE installation interface, and is notable for separating the user interface from the YaST internals. Agama provides the ability to use various frontends, for example, a frontend for managing the installation via a web interface. To test a new installer are being formed live builds for x86_64 and ARM64 architectures, supporting the installation of a continuously updated build openSUSE Tumbleweedas well as editions of SUSE ALP, openSUSE MicroOS and openSUSE MicroOS Desktop, built on the basis of isolated containers.

There are two significant updates to Agama scheduled for this year. The first is planned to be presented in mid-April, and the second in mid-July. The July update will focus on increasing the flexibility and functionality associated with unattended installations. The goal of the development is to bring Agama to the possibility of using it as an alternative to the toolkit AutoYaST.

Advertisement

The April update is notable for the cessation of the use of ready-made modules developed by the project Cockpit, in favor of using a more independent framework and a modernized user interface. Avoiding being tied to the Cockpit will allow eliminate additional external dependencies and get rid of restrictions that prevent the implementation of some ideas. For example, Cockpit contains Python and C language components as dependencies, while Agama uses Ruby and Rust languages. Removing the use of Cockpit will also free developers from the limitations they encountered when trying to implement automatic installation mode and recycle storage configuration interface to achieve the optimal balance of simplicity for beginners and functionality for advanced users.

At the current stage of development, the new installer already provides the capabilities necessary to solve such tasks as selecting an initial set of applications, setting up a network connection, language, keyboard, time zone and localization settings, preparing a storage device and partitioning, adding users to the system. Among the main goals of Agama development are the elimination of existing limitations of the graphical interface, expanding the ability to use YaST functionality in other applications, moving away from being tied to one programming language (the D-Bus API will allow you to create add-ons in different languages) and encouraging the creation of alternative settings by community members.

To install packages, check equipment, partition disks and other functions necessary for installation, Agama continues to use YaST libraries, on top of which layer services are implemented that abstract access to libraries through a unified D-Bus interface. The installer uses a multi-process architecture, thanks to which the user interface is not blocked while other work is being done.

Advertisement

The basic interface for managing the installation is built using web technologies and includes a handler that provides access to D-Bus calls via HTTP, and the web interface itself. The web interface is written in JavaScript using the framework React and components PatternFly. The service for linking the interface to D-Bus, as well as the built-in http server, are written in Ruby.

Thanks for reading:

Advertisement