Weekly status for the week of the 16th of August to the 22nd of August.
Introduction
This past week LXD has seen several a bug fixes and improvements that lay the ground work for the larger features we are currently working on.
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
Improvements:
- Reworked our API error response generator (
SmartError()
) to support detecting specific errors wrapped using Go’sfmt.Errorf("%w", err)
formatter. Also introduced a new shared error type calledapi.StatusError
which can be used on the LXD server to allow easily influencing the API response HTTP status code when returning an error and on the LXC client for accessing the API response HTTP status code, rather than having to inspect the error text itself. TheSmartError()
function was also updated to detect this error type and use the HTTP status code embedded within it for the response.
Bug fixes:
- Allow quota removal from VM config filesystem volumes when unsetting
size
property of instance disk device. - When recovering storage pools using
lxd recover
recreate the local storage pool mount directories if needed. Allows easier recovery when they have been removed. - Allow IPv6 wildcard listen address in an additional form of
::
rather than just the previous[::]
. - Fixed a recent regression in the GPU mdev UUID generation.
Distrobuilder:
Support for Windows 11 was added.
A fix was added so that systemd masks needed for containers are not added for VM images.
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
- shared/validate: Fix IPv6 wildcard handling in IsListenAddress
- lxd/device/gpu_mdev: Fix mdevUUID logic
- Response: Rework SmartError function to support stdlib errors package unwrapping
- DB: Adds ClusterTx.QueryScan function
- Storage: Allow quota removal from VM config filesystem volumes
- Add IsInRange to validate and some bugfixes
- doc/rest-api: Refresh swagger YAML
- Network: Improvements to port range checker and new SubnetContainsIP function
- API: Adds StatusError error type and updates SmartError to handle it
- Storage: Create pool mount path if needed in Mount
- lxd/cluster: Drop translated string
- Cleanups
- lxd/network/physical: Align with bridged
LXC
- cgroups: simplify offline and isolated cpumask handling
- tests: set lxc-test-automount/createconfig/snapdeps as executable
- tests: only rely on busybox template getting rid of all network dependencies; terminal: allow for tty allocation even when container did not request separate devpts instance
- seccomp: fix complication when !HAVE_DECL_SECCOMP_NOTIFY_FD
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)
- Nothing to report this week
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
- Nothing to report this week