LXD 5.20 arrives with AGPLv3 license, improvements and more

LXD logo

LXD logo

The new version of LXD 5.20 is now released and introduces new features and highlights such as changing license from Apache 2.0 to AGPLv3, fixes boot device order, as well as bug fixes and more.

For those who do not know about LXD, you should know that this is a tool that facilitates the centralized management of containers and virtual machines in a server cluster. It comes as a background process that accepts requests over the network using the REST API. Additionally, LXD offers support for various storage backends, including directory tree, ZFS, Btrfs, and LVM.

Among the key features of LXD are snapshots with a state segment, which allow you to capture and restore the state of a container at a specific point in time. It also offers the ability to seamlessly migrate running containers from one machine to another, as well as tools to store container images.

What's new in LXD 5.20?

In this new version that is presented of LXD 5.20, lThe main novelty is that the project license changed and the introduction of the need to sign a CLA Agreement on the transfer of ownership rights to the code upon acceptance of changes to LXD.

License modification from Apache 2.0 to AGPLv3, represents a significant change in the terms of distribution and use of the project. This decision is based on Canonical's desire to unify the LXD license with other products.server s that use AGPLv3.

As a result of this change, The LXD project will be delivered under mixed terms: Some code will be under AGPLv3, while third-party code over which Canonical has no proprietary rights will remain under Apache 2.0. Importantly, Canonical does not have the ability to change the license for all LXD code, resulting in a split in the project's licensing terms.

The transition to this new license means that code from previous versions remains available under the Apache 2.0 license, but changes made to components with the new license will be released only under the AGPLv3 license.

Canonical mentions that:

It is important to note that this change does not prevent our users from using, modifying or providing LXD-based software solutions, as long as they share the source code if they modify it and make it available to others. The license conditions are designed to encourage those seeking to modify the software to contribute to the project and the community.

Although In reality this poses challenges for cooperation between projects, like Incus, since the AGPLv3 license imposes restrictions that hinder the transfer of changes from LXD to Incus and vice versa. One-way compatibility between the Apache 2.0 and AGPLv3 licenses adds complexity to collaboration between projects, since code under the Apache 2.0 license can be included in code under the AGPLv3 license, but not the other way around.

On the part of the changes that stand out of this new version of LXD 5.20 is the solution to CSM boot device order, Ya que added support to LXD snap package EDK2 firmware to respect disk configuration of the devices boot.priority when using mode security.csm. Previously, this caused a problem when importing BIOS-based virtual machines which did not boot using UEFI because the VM firmware attempted to boot the UEFI devices first, and this meant that the PXE network boot was attempted before the BIOS-based root disk, causing long periods of boot delays .

Another of the changes that stands out is the new VM boot issue debugging mode, and it is now possible to boot VM with EDK2 UEFI firmware  (boot.debug_edk2=true). The debug log is saved in the file $LXD_DIR/logs//edk2.log.

Besides that, Shiftfs support has been removed so now to assign user IDs you must use the idmapped mount, which are now supported by ZFS and Cephfs (in addition to the long-standing support for ext4, xfs and btrfs).

Furthermore, it is now possible to hot-plug and hot-unplug disk devices, as the host environment has been moved from the Incus fork codebase.

Of the other changes that stand out:

  • The authorization code has been modularized to provide OpenFGA support in addition to authorization using TLS and RBAC certificates.
  • Compiling LXD now requires at least Go 1.20.
  • Removed support for 2MB UEFI firmware (must use 4MB firmware).
  • The device identifier org.linuxcontainers.lxd has been renamed to com.canonical.lxd (the old identifier is still supported for backward compatibility).
  • Support for creating storages based on NVME technology has been moved from the Incus fork codebase.

Finally if you are interested in knowing more about it, you can check the details in the following link


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.