Weekly status for the week of the 30th of August to the 5th of September.
Introduction
The highlight of the past week was the release of LXD 4.18 which includes several new features from our roadmap including floating IPs, BGP support and OVN NAT address customisation. For more information please see the release notes and the release video.
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
As well as the features included in LXD 4.18 this last week has seen several bug fixes and improvements:
Improvements:
- When using the
lxc copy
command we no longer allow the combined use of the--refresh
and--no-profiles
flags. Previously the--no-profiles
flag was ignored when used with the--refresh
flag and this was misleading. - Error and dropped packet counters have been added to the network counters.
- Log and CLI messages warning about the missing
br_netfilter
kernel module have been improved to clarify what is required. - A mutex has been added to the cluster join token creation API endpoint to prevent concurrent creation attempts that could race each other.
Bug fixes:
- There has been a focus on improving the validation and setup of port listeners for the HTTPS API endpoints and the HTTP pprof debug endpoints so that various edge cases (mostly involving IPv6 addresses) have been fixed.
- When running
lxc ''
the command would panic due to a bug in the argument parser, this has now been fixed. - A regression introduced the previous week in the
proxy
device when usingnat=true
with thextables
firewall driver has been fixed and additional tests added.
LXC
Improvements:
- Sanitizer flags have been added to LDFLAGS.
Bug fixes:
- A fix to the
-c
flag of thelxc-attach
command so that it overrides the SELinux context specified in the config file.
LXCFS
Improvements:
- Meson support has been added.
Bug fixes:
- A mutex lock was not released in all error paths in
proc_cpuview
.
Distrobuilder
Improvements:
- Added the viogpudo driver to the Windows image build.
- There was further work done on the Plamo Linux image build.
- Replace custom rsync commands with a single wrapped function called
RsyncLocal
. - Switch to errors without stack traces.
Dqlite (Go bindings)
Bug fixes:
- Check if servers file exists in CLI when using
-s
flag.
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
- Add support to enable custom storage volume refreshment
- Network: Adds OVN address forwards
- Network: Adds bridge address forwards
- Cluster Address bug fixes
- Docs: Update build instructions
- Network: Forward improvements
- add ‘lxd cluster edit’ documentation
- LXC: Fix panic when empty argument passed to lxc command
- Device: Improve proxy device tests
- Add Errors to network counters
- Device: Fix proxy listen port bug
- Device: Unifies br_netfilter checks and improves error messages for proxy devices
- Add dropped packets to network counters
- Remove mkdocs.yml
- .github/workflows: Update go versions
- lxc/copy: Prevent --refresh with --no-profiles
- Cluster: Add mutex to cluster join token creation
- lxd/init: Allow preseeding cluster_token (stable-4.0)
- Cluster: More IPv6 listener bug fixes
- doc: Adds network forwards to left hand nav
- doc/server: Fix incorrect default for routerid
- More listener bugfixes
LXC
- attach: Fix -c option v2
- conf: port more types to new list type
- configure: add sanitizer flags to LDFLAGS as well
- tree-wide: build fixes
LXCFS
Distrobuilder
- sources/plamolinux: more fix related to pkgtools8
- Fix overlay on zfs and tidy up error log messages
- Update gomod
- *: Replace RunCommand with RsyncLocal
- windows: Add viogpudo driver
- utils: Fix error handling in RsyncLocal
- Update mkdocs.yml
- main: Add support for Windows Server 2022
- *: Switch to errors without stack traces
Dqlite (RAFT library)
- Nothing to report this week
Dqlite (database)
- Nothing to report this week
Dqlite (Go bindings)
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
- snapcraft: Set cohort key
- lxd-migrate: Move to gomod
- lxd: Move to gomod
- snapcraft: Fix snap-query
- lxd: Bump to 4.18
- edk2: Bump to 20108
- seccomp: Bump to 2.5.2
- libtpms: Bump to 0.8.5
- nftables: Bump to 1.0.0
- nvidia-container: Bump to 1.5.0
- ovs: Bump to 2.16.0
- squashfs: Bump to 1.1.3