Weekly status for the week of the 16th March to the 22nd of March.
The past week saw the release of LXD 3.23, so many of the changes in this week’s report are included in that release. Please see the release notes for more details.
On the LXD storage front several bugs have been fixed. The
ceph driver saw two improvements, firstly VM volumes can now be resized, secondly, when shrinking ceph volumes we no longer unmap the block device, which was preventing shrinking from working. An issue preventing removal of nodes from a cluster when using ceph volumes has also been fixed.
A bug preventing the
lvm driver from correctly reporting VM volume snapshots has been fixed, and a crash when unpacking some VM images has also been fixed.
btrfs driver no longer activates BTRFS quota system on the volume if no quota has been specified. A bug has been fixed that allowed circumvention of the BTRFS quota when using snapshots has also been fixed.
A recent database table structure change has caused some users issues with creating snapshots. This was related to the sequence number table used for generating volume IDs. A patch has been added to increase the sequence number to avoid any conflicts with existing snapshots.
We have changed how one can remove a snapshot expiry time in the API. The expiry can now be removed by simply not providing the
expires_at field. Previously, one had to explicitly set zero time to disable it.
We have added a feature to allow password-less PKI authentication when communicating between the
lxc tool and
lxd. This allows certificates generated from the same certificate authority to be trusted using the shared CA certificate rather than needing passwords.
Also in the API, a small change was made to the way the the
Etag header value was returned. It is now quoted to increase compatibility with different HTTP clients. We accept both quoted and unquoted values.
On the LXC front we have been focusing on closing outstanding issues, code hardening and fixing bugs ready for the LXC 4.0 release soon.
In addition to that, several busybox template improvements have been added.
On the LXCFS front, a new release to the 4.0 series was released addressing several bugs that were in the 4.0 release, please see the release notes for more details.
Finally, on the distrobuilder front, an issue with OpenSUSE image verification has been fixed due to an upstream change.
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
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
- Distrobuilder virtual machine support
- Storage database cleanup/rework
- Various kernel work
- Stable release work for LXC, LXCFS and LXD
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.
- Add custom volume snapshot expiry
- lxd/network/network: tell systemd-resolved we can resolve .lxd
- cgo: fixes
- Storage: Dont activate BTRFS quotas if not used
- Storage: Adds Ceph VM block resize support
- doc/security: Adds network security section
- Unexport some functions in main package
- lxd/storage: Fix crash on VM unpack
- lxd/storage/ceph: Fix ext4 shrinking
- Add scheduled volume snapshots
- lxc/remote: Better handle remotes with no name
- doc: Update requirements
- lxd/init: Don’t offer dir as a remote backend
- db/cluster: Bump the value of sqlite_sequence for storage_volumes
- Fix instance snapshot expiry
- Storage: Fixes LVM VM snapshot list
- lxd/cluster: Ignore CEPH custom volumes on removal
- lxd: Clean up logging for expired volume snapshots
- Handle immutable/append-only files on removal
- Unused code removal
- DB: Tweaks LEFT JOIN to just JOIN in NodeIsEmpty()
- lxd/sys: Don’t fail chmod on unresolvable symlinks
- Tarwriter: Renames to instancetarwriter
- Container: tar writer backup
- os.Pipe and memory stats
- lxd/containers: Add configfs and tracefs
- btrfs quota to simulate total disk size
- Passwordless PKI mode
- lxd/etag: Quote generated etag values
- lxd/apparmor: Apparently the order matters
- Trigger the mounting of shm file system
- Fix build
- Auto-create /dev/shm and /dev/mqueue
- lxc_user_nic: don’t depend on MAP_FIXED
- tools: fix -g and -u parameters for lxc-execute and lxc-attach and fix pidfd detection logic
- tree-wide: introduce and use syscall number header
- lxc-unshare: add syscall_wrappers.h to build requirements
- Makefile: fix typo
- network: fixes
- conf: flatten logic in mount_entry()
- tree-wide: logging fixes and hardening
- network: fix ovs removal
- network: use cleanup macros
- network: fixes
- start: move reading seccomp profile after pre-start hook
- log: add missing backslash
- log: fixes
- mainloop, ringbuf: cleanup
- log: fix cmd logging
- network: fixes
- overlay: rewrite
- cgroup_fuse: fix cgroupfs virtualization needed on non-cgns systems
- cgroups: remove unused function
- utils: shut up compiler
- proc_loadvg: fixes
- tree-wide: add and use must_make_path_relative()
- tree-wide: fixes
- cgroup_fuse: actually make asz check mean something
- tests: Silence build output
- tree-wide: add and use syscall_numbers.h
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.
- lxd-agent-loader has been included in the Ubuntu 20.04 archive
- lxd: Cherry-picked some bugfixes
- lxcfs: Cherry-picked some bugfixes
- lxcfs: Updated to 4.0.1
- lxd: Updated to 3.23
- lxcfs: Cherry-picked more bugfixes