Weekly status #208


Weekly status for the week of the 19th of July to the 25th of July.

Introduction

This past week we continued on the ongoing project work and also landed several improvements and fixes in LXD.

In addition to that the release notes for the 3 LTS releases that were made the previous week have been published:

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

New features:

  • Added --format and --all-projects additional flags to the lxc monitor command.

Improvements:

  • Improve bridged NIC duplicate MAC & IP assignment check logic (to take into account parent, network and vlan properties).
  • Improve the swappiness calculation with regards to limits.memory.swap.priority so that maximum priority should be default swappiness (60).
  • Improve daemon startup logging to use contextual logging more and to increase the log level of cluster start up upgrade wait loops to make it visible that LXD is waiting for another cluster member to be upgraded in the default log level.
  • Improved lxc default config file handling so that if ~/.config/lxc/config.yml exists, but is empty, then use default remote, rather than providing no default remotes.
  • Instance config validation is now validated based on instance type, meaning that certain instance type specific config keys cannot be set on an instance of a different type.

Bug fixes:

  • Fixed a regression in the recent change to cluster.https_address. It has now been relaxed to allow DNS names again, as this was checked and is supported by the underlying dqlite library.
  • Fix rare crash when querying PCI devices in a VM during VM initialisation.
  • Fix possibility of file handles leaking into QEMU VM process from LXD’s process if an unrelated container’s filesystem is being UID remapped during VM start. This was detected in our tests as it was causing device cleanup issues when the container was stopped before the VM.
  • VM volatile keys for UUID and Vsock ID are now written to the backup file at start up to ensure backup file accurately represents last-start config.

LXC

Improvements:

  • Simplify detection of whether BPF is supported.
  • When setting up a TTY LXC now handles an existing ttyN file without an underlying device.

Bug fixes:

  • Fix regression of legacy cgroup handling.

Distrobuilder

New features:

  • Added busybox image support.

Improvements:

  • Newer systemd support and refactoring.

Dqlite (Go bindings)

Improvements:

  • The time it takes to output rows from the shell command has been reduced 120x by using Go’s strings.Builder rather than inefficient concatenation of strings.

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

  • Nothing to report this week

Distrobuilder

Dqlite (RAFT library)

  • Nothing to report this week

Dqlite (database)

  • Nothing to report this week

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

  • hooks: Added cleanup for snap.lxd.workaround on removal
1 Like