Weekly status for the week of the 3rd to the 9th of July 2017.
Introduction
This has been another very busy week for us!
We’ve finally landed support for “push” and “relay” migration in LXD, allowing people to work around firewalls and NAT.
The Ceph storage backend is also now working the way it should in our tests with work being now focused on the corner cases and on sorting out testing for it.
Our snap package is getting quite a bit of attention lately and is much closer to a state that we feel is ready for production environments.
And that’s on top of a whole lot of bugfixes, refactoring and work on LXC and LXFS.
Conferences
Part of the LXD team will be in Montreal this summer for Debconf17.
We’ve also announced the CFP for the containers micro-conference at Linux Plumbers 2017.
Website
Our website got a few updates this week, most prominently the LXD part of it which has been refreshed to match the current state of things as well as offer installation instructions for a wider range of Linux distributions.
Our website is available on Github and we very much welcome improvements and translations for its content!
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.
- External authentication support for LXD servers
- Ceph as a LXD storage backend
- Delta download for LXD daily images
- Snap package for LXD 2.0.x
- Preparation for LXC 2.1
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
- LXD now follows the best practices from the Core Infrastructure Initiative.
- Implemented push and relay mode for container copy/move.
- Fixed pulling/pushing paths containing special characters.
- Completely reworked our README.
- Expanded the lxd import documentation.
- Ensured that –columns and --fast for lxc list are mutually exclusive.
- Fixed a number of issues found by goreport.
- Removed extraneous backslashes in our documentation.
- Fixed broken links in our README.
- Improved our relay and migration code.
- Setup a custom error type for
shared.RunCommand()
andshared.TryRunCommand()
. - Added code to detect LVM thin provisioning tools.
- Added a check for the static version of busybox is present.
- When no AppArmor support is present in the kernel we now skip AppArmor tests.
- Fixed a potential race in the progress reporting code.
- Fixed some spaces, tabs, and commas in our documentation.
- Updated our ISSUE_TEMPLATE.
- Fixed our signal handler for Windows.
- Converted all remaining direct calls to
exec.Command().*
withshared.RunCommand()
andshared.TryRunCommand()
.
LXC
- LXC now follows the best practices from the Core Infrastructure Initiative.
- Renamed more configuration keys in preparation for LXC 2.1.
- Allowed running containers in AppArmor namespaces.
- Daemonized startup now uses a separate internal socket.
- Use
access()
instead of multiplestat()
calls in various functions. - Removed some obsolete comments.
- Close parent end of pipe after fork.
- Removed obsolete code in the abstract socket API.
- Removed obsolete function declaration.
- Removed unnecessary
unlink()
operation in the abstract socket API. - Removed temporary files created by the tests.
- Unified our header declarations.
- Improved lxc-init.
- Improved logging for
lxc_execute()
. - Updated our README.
- Improved logging and errno handling in our lxc locking code.
LXCFS
- Made it possible to configure the libdir when building
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.15-0ubuntu5 was uploaded with most pending upstream fixes.
- LXD 2.15-0ubuntu6 was uploaded to fix issues with “lxc file push/pull” and paths containing special characters.
- LXD 2.15 has now been uploaded to the backports pocket of Ubuntu 16.04, 16.10 and 17.04.
- An updated LXCFS for Ubuntu 16.04, 16.10 and 17.04 is currently in the proposed pocket, this fixes issues with process timestamp reporting and should be avaialble to everyone by the end of the week.
Snap
- The wrapper script was updated to fix an issue on Linux distributions using the CGroupV2 unified hierarchy.
- The snap was updated to match the fixes in the 2.15-0ubuntu5 package.
- Systemd timeouts have been raised to allow for more time for container shutdown.