Weekly status #127


Weekly status for the week of the 2nd December to the 8th of December.

Introduction

This past week we have continued our focus on preparing for the LXD 3.19 release by continuing work on the virtual machine feature and the storage layer refactor to support it.

On the VM front we have now improved the background state monitor that was added last week to detect when a VM is shutdown or rebooted and take the appropriate action. This has allowed us to add power state tracking so that if a VM is running when the host is shutdown, LXD will be able to start it backup again automatically once the host has rebooted.

Internally the VM implementation has now been moved to its own instance/qemu package as part of our ongoing effort to split the LXD base into more modular packages. We have also removed the default GPU device that was briefly added to the VM instance, in preference for an optional GPU device that will be added in the future using LXD’s normal device management API.

On the storage front, almost all of the hook points for the old storage layer have been updated to detect whether the storage pool related to the action being performed supports the new storage package and to use the new storage layer instead. This means that our reference implementation for the new storage layer, the directory back end, is now very nearly finished.

We have also had a feature contributed to LXD that allows one to specify the default profile(s) used when creating an instance from a specific image. This can be achieved by editing the profiles property on an image using the lxc image edit <fingerprint> command.

Also related to image management, the ARCH column in the lxc image list output has been renamed to ARCHITECTURE.

Several small improvements to LXD’s shiftfs integration have been added, firstly LXD will now detect shiftfs support in the kernel, even if it is built-in rather than using a kernel module. Secondly, an environment variable has been added LXD_SHIFTFS_DISABLE that will allow LXD to start and disable shiftfs support even if the kernel does support it. This is useful for when you need to use the non-shiftfs UID/GID shifting approach.

A fix to LXD’s forkdns was added due to a change in the upstream DNS package we use which broke DNS forwarding.

On the LXC front a change to some licensing headers was made which fixes a number of file that are part of liblxc but were improperly licensed under GPLv2+, in most cases due to bad copy/paste of licensing headers. This was treated as re-licensing so all affected files were analysed to get a list of current potential copyright holders and all of them were contacted to confirm the change. LXC was also switched over to use SPDX format licensing headers.

There was also a continued focus on our cgroupv2 support.

In addition several bugs were fixed related to config handling, including a memory leak and an issue passing mount options.

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

FOSDEM 2020 - containers devroom

We will once again be running the containers devroom at the upcoming FOSDEM conference in Brussels, Belgium. This year it’s going to be over the weekend of the 1st and 2nd of February.

The detailed call for papers can be found here: FOSDEM 2020 containers devroom: Call for papers

Upcoming events

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
  • Rework of internal LXD storage handling
  • Distrobuilder virtual machine support
  • 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

  • Nothing to report this week

Distrobuilder

  • Nothing to report this week

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

  • Updated shiftfs handling in edge following change to master