Weekly status #201


Weekly status for the week of the 31st of May to the 6th of June.

Introduction

The highlight of the past week was the release of LXD 4.15, please see the release notes and associated release video for more details.

Also released last week was Dqlite RAFT library v0.11.1 with support for lz4 compressed snapshots.

Moving our IRC presence to Libera Chat

Our IRC (live chat) channels have moved from Freenode over to Libera Chat.
You can now find us in #lxc and #lxc-dev on irc.libera.chat.
A web chat client can be found here: Kiwi IRC

The LXD team is hiring

The LXD team at Canonical is currently looking for a Go software engineer to join our distributed team of engineers. We’re looking for candidates anywhere in Europe or the Americas!

All LXD positions are 100% remote with some travel for internal events and conferences.

LXD

Most of the changes from last week were included in LXD 4.15, these include VM NIC hotplug support, HAProxy protocol header support for the API endpoints, and the new --expire flag on the lxc publish command.

Also included were several bug fixes from last week:

  • A fix for an orphaned internal ZFS mount counter when importing an instance failed at a certain point, preventing further successful imports of the instance.
  • A bug in warnings system that was causing a previously resolved (but not yet deleted) warning from being reinstated as “new” (status change for existing warning) if the warning reoccurred has been fixed. We now set the status back to new if the status is resolved (as opposed to acknowledged).
  • An issue that could trigger a cluster heartbeat loop during an upgrade causing the cluster to believe all members were down has been fixed. This was caused because during an upgrade the leader member has cluster database access but is not fully initialised. This meant that during the periodic heartbeat round it could not ascertain what its own cluster address was and so was ending up sending heartbeats to itself. This combined with the recent changes to cancel an ongoing heartbeat round when a member notifies the leader of a state change meant that the leader was ending up cancelling its own heartbeat whilst also trigger a new heartbeat to start immediately (in a loop). The fix was to ascertain the leader’s cluster address from the local database rather than the cluster database.

Also added last week but did not quite make the 4.15 release were:

  • Support for idmapped mounts if available.
  • A new lxc cluster revoke-token command which allows clearing an unused cluster join token.
  • Exposing non-ATA drives as rotational in the resources API. These drives don’t expose their RPMs through udev, and as we don’t want to directly have to poke the drives, we instead just indicate that they are rotating by setting the RPM to 1 if it’s currently 0 and if the kernel recorded them as spinning.

LXCFS

A small fix to LXCFS was added to remove unnecessary log entries regarding an inability to calculate CPU idle time.

Distrobuilder

Improvements to the systemd-generator have been added.

Dqlite (RAFT library)

The previously mentioned lz4 snapshot compression feature was released as v0.11.1 along with several build time fixes that control the feature.

Youtube channel

We’ve started a Youtube channel with live streams covering LXD releases and its use in the wider ecosystem.

You may want to give it a watch and/or subscribe for more content in the coming weeks.

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: Easy issues for new contributors

Upcoming events

  • Nothing to report this week

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.

  • Distrobuilder Windows support
  • Virtual networks in LXD
  • 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

Dqlite (RAFT library)

Dqlite (database)

Dqlite (Go bindings)

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

  • Nothing to report this week

Snap

  • raft: Build with lz4
  • lxd: Bump to 4.15
  • squashfs-tools: Bump to 1.1.1
  • edk2: Bump to 202105
  • libnftnl: Bump to 1.2.0
  • libtpms: Bump to 0.8.3