Weekly status #141


Weekly status for the week of the 23rd March to the 29th of March.

Introduction

The highlight of this past week was the release of LXC 4.0 LTS!

On the LXD side of things, several new features and a breaking change were added:

  • As part of getting ready for the LXD 4.0 release, we have dropped support for the deprecated container-only flag from the CLI .
  • We now support exporting and importing virtual machine instances, for both generic and optimised formats (where supported by the underlying storage driver). As part of this there have been improvements to the index file generated in the tarball to allow faster restorations for containers as well.
  • The instance disk state report will now report disk usage for snapshots and custom volumes. This also includes a fix for reporting BTRFS usage correctly.
  • The ability to edit clustering roles of a node has been added.
  • The routed NIC type has always allowed multiple IPs to be added to a single device interface. Recently however we added support for allowing multiple routed NIC devices to be attached to an instance. This was achieved by adding the ipv4.gateway and ipv6.gateway config keys, which default to auto but can also be set to none which will prevent the automatic default gateway route from being added inside the instance. This past week we have expanded on that by adding the ability to specify host-side veth interface IP addresses, so that additional devices can have a well-know next-hop address on the host to use with custom routes added inside the container. This can be controlled using the ipv4.host_address and ipv6.host_address device config keys.
  • The ipvlan NIC type has also gained support for multiple NICs being attached to same instance using the same ipv4.gateway and ipv6.gateway config keys as routed NIC type being set to none, thus preventing the automatic default gateway being added on additional NICs.

Several bugs were also fixed:

  • Emit a lifecycle event on user shutdown.
  • Fixes ZFS deleted image block volume restoration which was preventing VM creation in certain circumstances.
  • Fixes custom volume project rename patch which was preventing LXD start when custom volumes had snapshots.
  • The API exec route has added protection against client reconnect using old token which could crash LXD previously.
  • Container exec rework to fix cgroupv2 issues.

LXC has also seen a lot of work going into getting exec working reliably on cgroupv2 and various kernels, compilers and C libraries.

In addition to that, an issue that was preventing containers being destroyed that contained immutable files has been fixed. A fix was read only bind mounts was also added.

On the distrobuilder side, several improvements have been added to make the VM lxd-agent more resilient during VM start up.

Contribute to LXD

Ever wanted to contribute to LXD but not sure where to start?
We’ve recently gone through some effort to properly tag issues suitable for new contributors on Github: https://github.com/lxc/lxd/labels/Easy

You can also find a slightly longer, more detailed list here: Contributing to LXD

Ongoing projects

The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.

  • Virtual machine support
  • Distrobuilder virtual machine support
  • Storage database cleanup/rework
  • Various kernel work
  • Stable release work for LXC, LXCFS and LXD

Upstream changes

The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.

LXD

LXC

LXCFS

Distrobuilder

Distribution work

This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.

Ubuntu

  • LXCFS 4.0.1 has been uploaded to Ubuntu 20.04
  • The LXD agent loader package is now included in server and cloud images

Snap

  • Released LXD 3.23 to stable
  • Updated to LXC 4.0 LTS
  • Cherry-picked a number of LXC and LXD bugfixes