Weekly status for the week of the 6th of November to the 12th of November 2017.
Introduction
The main focus this past week has been on merging a pretty large refactoring branch on top of LXD. This moves a lot of code around to make it more testable and easier to plug in a new database implementation in preparation for some clustering features.
We’ve done a few minor improvements like adding a new “lxc operation” command, letting users peak into what LXD is currently doing in the background. And have been expanding our static analysis tests to catch typos and a number of potential issues (unchecked variables).
We’re also excited to see a number of students from the University of Texas get involved in LXC and LXD. We’ve already included a small change to LXC coming from them and expect to see more contributions coming from them very soon!
On the LXC front, a bunch of work has been done to improve the console handling, supporting an in-memory ringbuffer to show the console backlog, new API functions to query and reset that backlog and a number of cleanup around the detach key binding and associated messages.
And that’s before the usual set of bugfixes and stable release work for all projects!
This week, we’re going to be releasing LXD 2.20 and do quite a bit of work on the LXD stable branch following that big refactoring we did this past week.
Upcoming conferences and events
- FOSDEM 2018 (Brussels, February 2018)
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.
- Console attach in LXD
- Distributed database for LXD clustering
- 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
- Merged a large set of refactoring ahead of adding support for dqlite.
- Added code to attempt a “zpool import” if a ZFS storage pool appears missing.
- Added a new “lxc operation” command.
- Fixed a bug which allowed removing the currently used LXC logfile.
- Updated API extension header for AuthMethods.
- Fixed a number of typos and unchecked variables.
- Added static checking for typos and unchecked variables.
- Switched over to our own copy of log15 to avoid a number of recent upstream issues.
LXC
- Added support for an in-memory console ringbuffer.
- Improved cgroupv2 support.
- Added handling code for namespace inheritance in attach.
- Switched from ext3 to ext4 as the default filesystem.
- Added support for cgroupv2 delegation.
- Updated overlayfs mount options in lxc-test-unpriv to set the workdir.
- Fixed lxc-attach to work against a container with no config.
- Refactored some of the tools code.
- Fixed the lxc-oci template to properly handled --url.
- Fixed the rendering of the console attach message.
- Updated console attach to only show the detach message if a key has been set.
- Added support for daemonized command execution.
- Fixed a bug in the console detach message.
- Changed the console handling code to properly detach on SIGTERM.
- Fixed UUID handling for xfs/btrfs, re-generating on copy.
LXCFS
- Fixed some issues with cgroupv2 hierarchies.
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
- LXD 2.19-0ubuntu1 was finally released to 18.04 users
- LXCFS 2.0.8-1ubuntu2 was uploaded to 18.04, fixing an upgrade issue
- The pending SRUs for LXCFS have all been updated to fix an upgrade issue
Snap
- The LXD snap is now built using Go 1.9.2