Weekly status for the week of the 5th of July to the 11th of July.
Introduction
The highlight of the past week was the release of LXD 4.16, please see the release notes for more details.
In preparation for that release, quite a few improvements to the lifecycle API were landed. There was also a round of improvement around race conditions in SR-IOV device handling as well as improving VM startup.
Additionally, there was some preparation work for the upcoming LTS bugfix releases which are due later this week.
Moving our IRC presence to Libera Chat
Our IRC (live chat) channels have moved from Freenode over to Libera Chat.
You can now find us in #lxc
and #lxc-dev
on irc.libera.chat
.
A web chat client can be found here: Kiwi IRC
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
New features:
- When using a managed
bridge
network with DNS enabled, LXD now adds a DNS record for the host/gateway IP under the name_gateway.<domain>
, e.g._gateway.lxd
. - Supported storage drivers are now returned in
lxc info
output, and used forlxd init
.
Improvements:
- Improved lifecycle events.
- Duplicate NIC
ipv{n}.address
and MAC setting detection. - Records last used VSOCK ID when starting VMs (which will allow
lxd-agent
to work in the forthcoming recovery feature when a running VM is recovered).
Bug fixes:
- Instance related persistent warnings are now removed when an instance is deleted.
- Fix SR-IOV NIC race condition when selecting a free virtual function when starting multiple instances concurrently.
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
- Storage volume, snapshot, and backup lifecycle events
- lxd/daemon: Warn if warnings cannot be created/resolved
- lxd/db/warnings: Improve context in warning unknown entity errors
- VM: Improve force stop readability
- Warnings: Delete instance related warnings when instance deleted
- NIC: Check static IPs are not defined on other NIC on same network and cluster member
- lxd/networks: Add DNS record for gateway
- NIC: Add detection of duplicate bridged NIC MAC address assignments
- test: fix copy and paste error in duplicate static DHCP assignment
- lxd/main/cluster: fix the link in the “recover-from-quorum-loss” prompt
- NIC: Add mutex to SRIOVFindFreeVirtualFunction to prevent concurrent start races
- Info: Return supported storage driver info in /1.0
- small improvements to production-setup doc
- api: Adds server_instance_driver_operational extension
- doc/production-setup: ulimits tuning doesn’t apply to snap users
- Network ACL lifecycle events
- Certificate lifecycle events
- Server config lifecycle event
- Warning lifecycle events
- Instance log lifecycle events
- Instance Metadata & template lifecycle events
- Operation cancelled lifecycle events
- instance console retrieved & reset lifecycle events
- Update api-extensions.md
- Events documentation
- Lifecycles: Fix Created source urls.
- Add address field to lifecycle requestor
- API: Wait until LXD fully started before applying API changes in doApi10UpdateTriggers
- Fix bad format string
- Daemon: Remove duplicate VM monitor re-connection on start up
- VM: Introduce volatile.last_state.vsock_id key
- Instance: Add clearLogDir argument to CreateInternal
- Extra static analysis fixes
- VM: Renames volatile.last_state.vsock_id to volatile.vsock_id
LXC
- Update Japanese lxc.container.conf(5)
- RFC: conf: userns.conf: include userns.conf.d
- lxc-unshare: fixes
- file_utils: surface ENOENT when falling back to openat()
LXCFS
- Nothing to report this week
Distrobuilder
- Add ability to make Openwrt 21.02 images
- systemd: Mask hwdb-update
- Drop Ubuntu 14.04 and 16.04
- sources/gentoo: Support arm64 and more flavors
- systemd: Fix typo in unit name
- generators: Drop upstart-tty
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
- lxd: Cherry-pick upstream bugfixes
- zfs: Added 2.1 support
- lxd: Bumped to 4.16
- libtpms: Bump to 0.8.4
- ovs: Bump to 2.15.1
- ovn: Bump to 21.06.0
- swtpm: Bump to 0.6.0
- sqlite: Bump to 3.36.0
- squashfs: Bump to 1.1.2