Weekly status for the week of the 1st to 7th of November.
Introduction
The highlight of the past week was the release of LXD 4.20 which includes several features from our roadmap (OVN network peering and SR-IOV acceleration, an authoritative DNS server, and VM stateful migration). For more information please see the release notes and the release video.
LXD
Over the past week we have been working on a variety of smaller issues to polish the LXD 4.20 release, and @stgraber has added another video, this time on using LXD with Ansible:
New features:
- Adds ACL integration for OVN peer connection. You can now reference OVN peer connections in ACL rules using
@<network_name>/<peer_name>
see Linux Containers - LXD - Has been moved to Canonical for more info.
Improvements:
- Added the ability for
lxc import
to read from STDIN using the-
argument. - Added support for go-dqlite v1.10.1 which supports NULLable fields by using
sql.NullTime
where needed. - Added support for pre-existing empty
ceph
storage pools. - Added support for VM SMT (Hyper Threading) on x86_64 platforms by passing through the
topoext
CPUID. - Add support for NixOS path.
Bug fixes:
- Fixed uevents for USB devices.
- Fixed an issue when using external text editors for config changes from the snap, caused by the incorrect use of the
HostPath()
helper function on LXD generated temp files. It shouldn’t be used to access files that are generated within LXD’s environment. - Prevent modification of
cluster.https_address
when clustered. - Fixed an issue that caused ongoing operations shown in
lxc operation ls
to be duplicated in a cluster environment where thecore.https_address
was different to thecluster.https_address
. - Fixed EOF API response during self-removal of non-leader cluster member.
- Fixed crash during LXD start up caused by fsmonitor during filesystem walk errors.
- Fixed occasional crash when running
lxd shutdown
by waiting for daemon to finish starting up before starting clean shutdown sequence.
LXC
Bug fixes:
- Fixed a regression that broke handling of
lxc.proc.*
andlxc.sysctl.*
configuration settings.
Distrobuilder
Bug fixes:
- Fixed an issue with RHEL common build directories that was causing the rootfs to be larger than needed.
Dqlite (RAFT library)
Improvements:
- Setup automatic PPA package builds which will generate source package builds every time something is merged in master. These will then be automatically signed and uploaded to Packages in “Development builds” : Development builds : “dqlite” team.
- Make changes to remove build warnings on gcc-10 and gcc-11.
- PPC64le build fixes.
Dqlite (database)
Improvements:
- Add automatic PPA package builds that are uploaded to Packages in “Development builds” : Development builds : “dqlite” team.
- Make changes to remove build warnings on gcc-11.
Dqlite (Go bindings)
Improvements:
- Add automatic PPA package builds that are uploaded to Packages in “Development builds” : Development builds : “dqlite” team.
LXD Charm
Improvements:
- Default to ceph snap builtin tools/configs.
- Add additional packages that should allow building pyca/cryptography.
- Interface with ceph-mon to allow pool creation.
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.
https://www.youtube.com/lxd-videos
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
- bash-completion: Add restore snapshots
- cleanup: remove subtest
- Daemon: Fix shutdown panic
- forkuevent: fixes
- Fixes for VM CPU topology
lxc import
- read from stdin- Remove the last ‘which’ occurence.
- lxc/file: Don’t use HostPath on temp files
- lxd/cluster: Log leader address on failure
- Network: Add ACL integration for OVN peer connections
- lxd/api/cluster: Sleep for 100ms to allow http.Flush to render
- lxd/fsmonitor: Don’t crash on Walk errors
- Improve file access operations and add NixOS path
- Container: Release liblxc cache when stopping or shutting down
- gomod tweaks
- lxd/storage/ceph: Properly support pre-existing empty pools
- Cluster: Fix self-removal of non-leader member from cluster
- DB: Support go-dqlite v1.10.1 NULLable fields using sql.NullTime
- Operations: Don’t duplicate local operations in operationsGet when running in single member cluster
- API: Prevent update of cluster.https_address in doApi10Update
- Cluster: Join leader address validation improvements
- Doc: fix typo for hardware offload
- Doc: fix remove non-existent anchor in link to network-peers.md
LXC
LXCFS
Distrobuilder
Dqlite (RAFT library)
- Setup package builds
- uv_segment: Replace strncpy
- 32bit test fixes
- Fix gcc11 build warnings
- test_compress: Allocate INT_MAX buffer on arm 32-bit
- github: Tweak git describe call
- Ppc64le build fixes
Dqlite (database)
Dqlite (Go bindings)
LXD Charm
- lxd: default to ceph builtin tools/configs
- Readme update
- Add additional packages that should allow building pyca/cryptography …
- Add python3-dev to build deps
- readme: Mention the charm won’t duplicate LXD functionality
- Interface with ceph-mon
- Force Python colors for pytest output
- Highlight that the “ceph” interface is optional
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
- lxc: Cherry-pick upstream bugfixes
- lxd: Bump to 4.20
- ovs: Bump to 2.16.1