Weekly status for the week of the 11th of October to the 17th of October.
Introduction
This past week has been mostly bug fixes and improvements as we continue working on our larger roadmap items. However LXD did get the ability to disable auto targetting of cluster members when creating new instances.
LXD
@stgraber has added another video, this time covering how to control resource usage of containers and virtual machines:
https://www.youtube.com/watch?v=qjWI7DTS7L8
New features:
- Added support for cluster member user configure keys (
user.*
). - Added support for disabling cluster member auto targeting via the
scheduler.instance
configuration key. Normally in a LXD cluster, when creating an instance, LXD will use auto targetting to select a cluster member to use to host the new instance. This can be overridden with the--target
flag. However by settingscheduler.instance
tomanual
you can now prevent certain cluster members from being candidates for auto targetting.
Improvements:
- Rework OVN network static route management ready for the forthcoming peer connections feature. Routes are now added to OVN via a single command rather than one command per-route. We also have switched to nexthop port hints which will be needed for peer connections.
- Removed unnecessary database lookups when checking whether a network is used by a particular NIC device.
- Use consistent JSON encoding when communicating with QEMU via QMP socket.
- Improvements to the database query generator (laying the groundwork for removing the reference table views).
- Renames
lxc cluster remove --quiet
tolxc cluster remove --yes
so that its not confused with the global--quiet
flag.
Bug fixes:
- Fix image copy between two remotes when source is not in default project.
- Fixes an issue caused by a regression in QEMU 6.1 that broke CPU pinning.
- Tries to load vfio-pci kernel module in all places needed.
- Fixes a regression in the recent re-work of network record loading to support older networks that have a NULL description field.
LXC
Improvements:
- Log terminal errors as warnings when they do not impact operation.
Bug fixes:
- Fixes a regression in handling of
lxc.cap.keep
.
LXCFS
Bug fixes:
- Fix padding for Slab entry in /proc/meminfo.
Distrobuilder
Bug fixes:
- Fix RPM/Yum issue for Oracle Linux.
Dqlite (RAFT library)
Bug fixes:
- Fix an issue that was causing assert crashes in LXD test suite.
- Fix an issue that prevents accessing a NULL pointer.
- Fix some memory segfaults.
LXD Charm
New features:
- Adds cluster setup support.
Improvements:
- Add support for metrics endpoint.
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
- Fix image copy between two remotes when source is not in default project
- Network: Rework OVN static route management
- Network: Rework isInUseByDevice to remove unnecessary DB lookups via NICType
- lxd/db/networks: Reworks GetNetworkInAnyState and its ilk to split the functionality out into separate functions
- lxd/images: properly return project name in error
- Generator: No-op changes for generator refactor
- VM: Use consistent QMP encoding
- VM: Adds workaround for QEMU 6.x regression in handling memory object host-nodes setting
- lxd/device: Make sure vfio-pci is loaded
- Add Cluster member configuration
- Rename
lxc cluster remove --quiet
tolxc cluster remove --yes
- Networks: Fixes getStoragePool to support NULL description fields
- Networks: Fixes getStoragePool to support NULL description fields (stable-4.0)
LXC
- terminal: log at warning message
- conf: improve and fix lxc.cap.keep
- tree-wide: capability tests and fixes
- criu: fix error message
- log: fixes
LXCFS
- Fix padding for Slab entry in /proc/meminfo
- cpuview: log non-fatal error in verbose mode only
- tree-wide: build fixes
- github: Drop 16.04
Distrobuilder
Dqlite (RAFT library)
- Nothing to report this week
Dqlite (database)
- gateway: Finalize stmt when
raft_barrier
fails - gateway: protect against accessing NULL pointer
- Barrier in flight segfault
Dqlite (Go bindings)
- Nothing to report this week
LXD Charm
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
- Fix some editor handling issues
- criu: Bump to 3.16.1
- lxd: Cherry-pick upstream bugfixes