After publishing Agama 3 a month ago, it is time for a new release. Among other things, this new version fixes several issues in the startup process, allows the use of a network proxy, adds (partial) support for IPv6, includes a few improvements in the web UI and features a new tool to extract Agama-related logs.

But as important as those changes, we did some internal work that will serve as the base for other features, like proper i18n support and more flexible storage management. Some of those features will land sooner than later, but meanwhile, let’s focus on what Agama 4 brings.

Agama startup issues

Our QA team is testing Agama through several scenarios and in different architectures. Those tests helped identify some issues with Agama’s startup process: D-Bus activation errors, time-outs and even potential crashes.

Working closely with QA, we have identified and (hopefully) fixed most of those problems. In a nutshell, you should not see the “Cannot connect to D-Bus” error message anymore. And if that’s not the case, please open a bug report attaching the logs :wink:

If you are interested in the technical details, there is a bunch of fixes you might want to check: #729, #732, #747, #749, #753.

Installing through a proxy

Many users and customers are used to deploy their systems with no direct access to Internet, just using a proxy. So it did not come as a surprise that it was one of the most requested features. Agama 4 includes support for specifying a proxy at boot time using the option proxy= when the installation requires to use a HTTP(S) or FTP source. The supported proxy URL format is: protocol://[user[:password]@]host[:port].

Of course, the proxy configuration is copied to the target system at the end of the installation.

The nitty-gritty details are available in #696 and #711.

IPv6 support in the automated installation

In Agama 4 it is possible to specify the IPv6 configuration when using the automated installation. To accommodate this feature, we decided to introduce some changes in the profile definition. Here is an example that sets up IPv4 and IPv6 addresses.

  "network": {
    "connections": [
      {
        "id": "Ethernet network device 1",
        "method4": "manual",
        "method6": "manual",
        "addresses": [
          "192.168.122.100/24",
          "::ffff:c0a8:7ac7/64"
        ],
        "gateway4": "192.168.122.1",
        "gateway6": "::ffff:c0a8:7a01",
        "nameservers": [
          "192.168.122.1",
          "2001:4860:4860::8888"
        ]
      }
    ]
  }

Matching specific network devices

In previous versions of Agama, it was not possible specify which interface to use for a given network connection when using the auto-installation mechanism: Agama just delegated on NetworkManager to decide. Now you can associate a network connection with an specific interface by using its name or more complex conditions. See #723 for further details.

  "network": {
    "connections": [
      {
        "id": "Ethernet network device 1",
        "method4": "auto",
        "interface": "enp1s0"
      }
    ]
  }

Agama specific storage settings

Agama reads the information about the products offered for installation from a configuration (/etc/agama.yaml). Such a file contains a storage section which indicates the options (whether to use LVM, encryption, etc.) and the volumes (file systems) to create in the target system.

Since both Agama and YaST use the same mechanism to calculate the storage layout (known as the Guided Setup in YaST), the configuration for Agama was a direct translation of the YaST settings. But although the internal components and algorithms are the same, Agama’s approach for tweaking their behavior is actually different in several aspects from YaST. For that reason, Agama now implements its own storage settings, making the product configuration more straightforward and less error-prone.

This change has a direct impact in Agama’s auto-installation profiles.

storage: {
  bootDevice: "/dev/vda",
  lvm: true,
  encryptionPassword: "123456"
}

Interested in the implementation? Feel free to check: #721, #738 and #748.

Better logging support

As the project evolves and more people try Agama, we need to make the debugging process easier. Recently, we introduced a new command that gathers all the information we need to debug the problems you face when using Agama (similar to the venerable save_y2logs for YaST). Typing agama logs store creates a tarball you can attach to your bug reports.

This first version (#757) is rather basic but we are already working on additional features to have a pleasant debugging process :bug:.

Polishing the web user interface

Balsa Asanovic has become a regular contributor of Agama. For example, he implemented the “show password” feature (#750) and improved the error reporting in the iSCSI form (#699). But not only that, he is actively involved in our discussions in GitHub. Thank you, Balsa!

Moreover, a bug that prevented to download YaST2 logs through the web UI has been fixed (#746).

i18n support is coming to Agama

If you follow the project closely enough, you might already know that we are working on i18n support. Many of the pieces are already in place but we did not make it for this version. However, we trust that our next major version will feature a translated web interface. Actually, our translators are already working on that.

Trying Agama 4

The easiest way to try Agama is to download one of the two variants (ALP or openSUSE) of the Agama Live devel ISO. This image is built in the systemsmanagement:Agama:Devel OBS project and is updated each time we release a new version.

If you are interested in the bleeding edge, try the ISO in the systemsmanagement:Agama:Staging OBS project. It is built automatically and contains the code from Agama’s Git repository, so it might get broken occassionally.

What to expect

We expect to be able to ship a translated Agama interface and better handling of the storage settings in the next release. But, meanwhile, we are already working on other important features like software patterns selection or support for the SUSE Customer Center.

Of course, we appreciate opinions and feedback. As usual, feel free to contact the YaST team at the YaST Development mailing list, our #yast channel at Libera.chat or even the Agama project at GitHub.

Stay tuned!