Weekly status for the week of the 22nd to 28th of November.
Introduction
Last week LXD gained first-class cloud-init support as well as improvements to custom storage volume copy and move features, along with some fixes for OVN networks.
LXD
@stgraber has added a new video on using Ceph with LXD:
https://www.youtube.com/watch?v=kVLGbvRU98A
New features:
- First class cloud-init support using the new instance config keys:
cloud-init.vendor-data
,cloud-init.user-data
, andcloud-init.network-config
. For more information please see [LXD] First class cloud-init support. - Custom storage volumes can now be copied/moved to a particular target cluster member using the
--destination-target
flag. It is also possible to specify the source cluster member that has the custom volume using the--target
flag.
Improvements:
- Surface instance unmount errors during instance stop sequence, and allow more time for ZFS unmount process to succeed (as sometimes it can take the ZFS subsystem a while to flush the data back to the storage device).
Bug fixes:
- Fixes using project
restricted.devices.disk.paths
withdisk
devices when running LXD via the SNAP package. - Ensure OVN networks only consider compatible networks for use as uplink candidate. Avoids needing to manually specify the uplink network when creating a new OVN network if there is only one compatible uplink candidate network available.
- Fix OVN peer routing bug when setting up instance NIC routes on peer networks. These were previously being directed to the incorrect logical port.
- Moves the readonly VM config drive bind-mount out of the config drive path itself and into the devices path. This is to fix an issue that was preventing VM snapshots taken on
dir
storage pools from being started due to incorrectly copying the bind-mount contents into the snapshot. - Fix the DB generator to support sql.NullTime fields.
- Remove the need for cgo in the
shared/termios
package which enables the use of the Go race detector.
Distrobuilder
Bug fixes:
- Cloud-init fixes.
- Allow cancelling downloads.
- Fix downloads with multiple hashes.
Dqlite (RAFT library)
Bug fixes:
- Fixes issue where candidate could count the vote in a pre-vote RequestVoteResult RPC as a real vote.
- Fix memory leak when crc check failed.
- Add original error code to uv_writer errmsg.
LXD Charm
Improvements:
- Don’t warn on upgrade for
lxd-listen-*
keys.
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
- First class cloud-init support
- Support for lxc storage volume {copy,move} --target and --destination-target flag
- VM: Add raw.idmap support for running disk device proxy processes in user namespace
- Allow passing context to DownloadFileHash
- Simple doc fixes
- Instance: Improve and unify stop and shutdown error handling
- Instance: Reset operation lock timeout when unmounting instance and increase ZFS unmount wait
- VM: Move readonly config mount out of config directory and into devices directory
- Network: Ensures OVN networks only consider only compatible networks for use as uplink
- doc: Initial sphinx build
- forkusernsexec: use unix.Stderr as standard --keep-fd-up-to value
- Network: OVN instance peer route bug fix
- lxd/device/disk: Support snap packages when opening restricted disk paths
- Generator: Accept sql.NullTime as a valid type in the generator
- doc: Fix typo in ToC entry
- NIC: Routed test tweaks
- NIC: Routed NIC rework and VM support backport (stable-4.0)
- shared/termios: manually copy termios settings between Go and C
- shared/termios: actually copy the values not the index
- doc: add a cheat sheet for documentation
- Shared: Revert recent termios fixes
- Shared: Remove requirement on cgo when setting raw mode
LXC
- Nothing to report this week
LXCFS
- Nothing to report this week
Distrobuilder
- cloud-init fixes
- managers: Add missing context to struct
- Allow cancelling downloads
- sources: Fix downloads with multiple hashes
- .github/workflows: Drop Go 1.13
Dqlite (RAFT library)
- Include pre_vote field in RequestVoteResponse
- Fix memory leak when crc check failed.
- uv_writer: Add original error code to errmsg
- LICENSE: Add SPDX identifier
- test/lib/aio: Don’t assert racy io_setup call
Dqlite (database)
- Nothing to report this week
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
- edk2: Only build on aarch64 and x86_64