Weekly status for the week of the 18th November to the 24th of November.
Introduction
This past week has seen continued focus on getting the virtual machine and storage layer rework ready for the next release.
On the VM side basic state information has been added to the lxc ls
and lxc info
commands to show IPv4 address and packet statistics when the VM’s lxd-agent is not running by extracting the information from the LXD DHCP leases file and host-side network interfaces. This feature will only work when using bridged
NIC, and the IP info will only show when bridged to a managed LXD network. Due to the way IPv6 SLAAC and DHCPv6 don’t use MAC addresses in the leases file this will not be able to show IPv6 addresses. So for full state information the lxd-agent
running inside the VM is still the preferred option.
The documentation structure has been updated to refer to “instances” rather than “containers” to accommodate future VM specific documentation.
The OVMF path containing the NVRAM files for EFI on the host has been made configurable using the LXD_OVMF_PATH
environment variable. This is to support snap packaging.
Support for aarch64 VMs has also been added.
On the storage layer rework project, support for copying and refreshing instances has been added, as well as laying the groundwork for supporting multiple storage drivers for VMs by ensuring the storage volumes are mounted during relevant stages in the VM life-cycle.
Several bugs in the storage system have been fixed, including fixing migration when using zfs 0.6, and supporting root path mounts when using cephfs.
On the distrobuilder front support for custom flags being passed to the package installer has been added. This allows specific behaviour in the package manager to be requested, for instance using --no-install-recommends
in apt
. Support for adding custom repositories (in the yaml file) for the apk
package manager in Alpine Linux has also been added.
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: https://github.com/lxc/lxd/labels/Easy
You can also find a slightly longer, more detailed list here: Contributing to LXD
FOSDEM 2020 - containers devroom
We will once again be running the containers devroom at the upcoming FOSDEM conference in Brussels, Belgium. This year it’s going to be over the weekend of the 1st and 2nd of February.
The detailed call for papers can be found here: FOSDEM 2020 containers devroom: Call for papers
Upcoming events
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.
- Virtual machine support
- Rework of internal LXD storage handling
- Distrobuilder 1.0 release
- 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
- Ceph clean
- lxd/vm: Make OVMF path configurable
- VM remove storage volume record on creation fail
- lxd/storage/backend/lxd: Adds same pool optimisation to CreateCustomVolumeFromCopy
- Storage createFromCopy instance rename
- scripts/bash: Refresh list of commands
- Storage CreateInstanceFromCopy
- lxd/storage/zfs: Fix migration on zfs 0.6
- When no agent, use DHCP leases for VM IP address
- Instance interface into instance package
- Instance Delete ordering
- Use the node ID from the nodes ID table, not the raft one
- lxd/vm: Reverse interface counters
- lxd/storage: Fix DeleteImage return value
- lxd/storage/cephfs: Properly handle root path
- Device: Moves RunConfig to device/config package
- Storage RefreshInstance
- lxd/vm/qemu: Adds storage pool Mount/Unmount calls
- lxd/device/disk: Prevents error logs about unsupported disk drive on VM stop
- Add support for aarch64 VMs
- shared: Rename some functions
- Cleanup documentation for instances
- doc: Add new pages to metadata
LXC
- tests: use /dev/null instead of /dev/network_latency
- Typo in a comment
- fix wrong order of bridge/nic in error message
LXCFS
- Nothing to report this week
Distrobuilder
- Add support “flags” in package sets
- Don’t attempt to re-install packages that were installed early
- managers/apk: Add repo handler
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
- Reworked shutdown logic to prevent hangs on system shutdown.