Weekly status for the weeks of the 15th to the 21st of April.
Introduction
Releasing this a day late due to the long Easter weekend which had all of us mostly away for the past 4 days.
This past week we welcomed @tomp on the LXD team and @stgraber spent a few days in London to get him up to speed and get his first LXD contributions merged.
It was also the release week of Ubuntu 19.04 which ships with LXD 3.12 and a 5.0 kernel which includes various features and improvements we’ve been working on, including shiftfs (currently soft-disabled in LXD), binderfs and improvements to network information retrieval.
Highlights for this week are a number of improvements to network devices in LXD, including better error handling for limits and support for adding routes directly to containers rather than the parent bridge.
On the LXC side, a number of small bugfixes got merged this past week, including fixing support for 32bit SPARC.
We’ve also kept working on the LXD RBAC branch, the internal storage refactoring and started working on syscall interception in liblxc ahead of adding support for it in LXD.
On the distrobuilder side, the focus has mostly been on improving reliability of our daily builds to reduce the number of retries needed to get all images building.
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.
- Rework of internal LXD storage handling
- External RBAC support for LXD
- Syscall interception in LXC/LXD
- Dqlite 1.0
- 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
- Fixed forkproxy to retry epoll on EINTR
- Switched network limits to running on LXC hook
- Updated documentation to cover SNAT addresses
- Added support for nic device host routes
- Removed unused argument from network limits function
- Cleaned up the forkproxy CGo logic
- Fixed unsetting container and device config keys
- Fixed console handling of progress when message exceeds terminal width
- Fixed network interface state retrieval
- Updated forkproxy to only attach to the namespaces it needs
- Added missing network_nat_address API extension
- Fixed container copies between two local LXD servers
- Added additional validation for proxy addresses
- Fixed volume copies to include config and description
- Changed cluster hearbeats to be better spread over time
- Tweaked forkproxy namespace logic for abstract unix sockets
- Updated netns_getifaddrs for kernel changes
- Cleaned up config handling for candid
LXC
- Fixed lxc_raw_clone() to work on 32bit SPARC
- Moved lxc.mount.entry mounts to run right after lxc.mount.fstab
- Fixed nvidia hook to handle spaces in NVIDIA_REQUIRE
- Fixed bad variable name in configure script
- Updated netns_getifaddrs for kernel changes
- Removed some bad help from lxc-start
LXCFS
- Updated to current coding style
Distrobuilder
- Fixed bad mirror selection for Sabayon
- Added logic to re-try gpg key download
- Fixed error handling during chroot setup
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
- Released LXC 2.0.11 to xenial-updates.
Snap
- Cherry-picked upstream fixes
- Added logic to disable shiftfs