Weekly status for the week of 29th April to 19th May.
Introduction
In the past few weeks the LXD team was in Madrid for the Product and Engineering sprints. This involved planning for the next 6 month development cycle. Therefore, it was a rather quiet period from a development perspective. However, some important changes have landed into LXD.
Automatic allocation of external addresses for OVN load balancers and forwards
When creating a load-balancer or network forward in an OVN network, previously the listen address had to be specified manually from the pool of available addresses defined by the uplink network. However, uplink networks are always created in the default project, whereas OVN networks can be defined in projects with features.networks
enabled, such that the network exists only for that specific project. This means users who don’t have access to the default project, but do have access to the project where the OVN network was defined are prevented from seeing the external addresses that are available or in use when considering which listen address to specify for their network forward or load-balancer.
It was also inconvenient to have to figure out an available listen address when you were not concerned about having a specific one.
To address these shortcomings it is now possible to use --allocate=ipv{4,6}
flag when creating a network load-balancer or forward. This instructs LXD to select an address from the available pool of addresses defined on the associated uplink network.
Documentation: How to configure network forwards and How to configure network load balancers
Allow specific USB ports to be passed through to VMs (from Incus)
New selector config keys serial
, busnum
and devnum
have been introduced for device type usb
. This makes it possible to distinguish between USB devices with identical vendorid
and productid
.
Documentation: USB Device
PyLXD 2.3.3 client SDK release
- A new version
2.3.3
of pylxd has been released. Changes can be seen on canonical/pylxd release page.
Bug fixes
- Fixed issue when calling
lxc storage volume attach <pool> <volume_name> <instance_name> [device_name] [device_path]
where the block volume device could not be given a custom name when attaching it to the virtual machine. We now consider the third argument (either [device_name] or [device_path]) to be adevice_path
only if the volume content type isfilesystem
, else this is considered a device name. - Fixed a locking issue in the LXD daemon where occasionally a mutex could be unintentionally unlocked a second time, causing a panic.
- Fixed
source.wipe
in the LVM storage driver, as it was given the wrong parameter (logical volume name instead of the device path). - Fixed issue in the BTRFS storage driver, it would incorrectly create a default loop device instead of using source when source is an empty raw block device or MBR/GPT.
All changes
The items listed below is all of the work which happened over the past week and which will be included in the next release.
LXD
- lxc: Differentiate a storage device name from a storage device path
- lxd_metadata: annotate remaining network properties
- Config: Remove concept of hidden config entries and consistently use strings
- Storage: Fix
source.wipe
for lvm and correctly detect raw disks in btrfs - Automatic allocation of external addresses for OVN load balancers and forwards
- Add
lxd
group creation to installation process - Replace Ubuntu 22.04 by 24.04
- fix(deps): update github.com/dustinkirkland/golang-petname digest to eebcea0
- fix(deps): update github.com/openfga/api/proto digest to 619029c
- doc: unpin version of myst-parser
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.69 to 7.0.70
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.69 to 7.0.70
- doc/ovn: update OVN networking diagrams to work on dark background
- Add page describing lxc show and info
- doc: fix topical build
- test/README: Document LXD_VERBOSE
- doc/requirements: mention that HW support is required for running VMs
- Add reference page for complete preseed YAML fields
- Doc: Add reference to device override cmd in how to instance conf
- Device: Allow specific USB ports to be passed through to instances (from Incus)
- Doc: add UI instructions to instance how-tos
- doc/api-extensions: link config options
- Grafana/Loki fixes from Incus
- Device: Don’t require
usb
devices to have aserial
- doc/networking: add back table that went missing
- fix(deps): update module github.com/openfga/api/proto to v0.0.0-20240501220219-2b164f5813a7
- fix(deps): update module github.com/openfga/language/pkg/go to v0.0.0-20240429103126-f3e71ca3287d
- fix(deps): update module k8s.io/utils to v0.0.0-20240502163921-fe8a2dddb1d0
- fix(deps): update module github.com/osrg/gobgp/v3 to v3.26.0
- build(deps): bump golang.org/x/term from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/text from 0.14.0 to 0.15.0
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0
- build(deps): bump golang.org/x/oauth2 from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/text from 0.14.0 to 0.15.0
- build(deps): bump github.com/osrg/gobgp/v3 from 3.25.0 to 3.26.0
- build(deps): bump golang.org/x/oauth2 from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/term from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/text from 0.14.0 to 0.15.0
- build(deps): bump golang.org/x/oauth2 from 0.19.0 to 0.20.0
- build(deps): bump golang.org/x/term from 0.19.0 to 0.20.0
- build(deps): bump github.com/osrg/gobgp/v3 from 3.25.0 to 3.26.0
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (stable-5.0)
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (stable-5.21)
- doc: configure cloud-init from a file
- Update network_increase_bandwidth.md document with details for u18.04+
- doc/images: add UI instructions for dealing with images
- Finer grain builds
- doc/howto/instances_troubleshoot: add instructions for debugging systemd
- fix(deps): update module github.com/openfga/language/pkg/go to v0.0.0-20240513164614-7d0da9bc9c63
- build(deps): bump golang.org/x/crypto from 0.22.0 to 0.23.0
- build(deps): bump golang.org/x/crypto from 0.22.0 to 0.23.0
- build(deps): bump golang.org/x/crypto from 0.22.0 to 0.23.0
- build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1
- Config: Add int conversion upper bound check
- doc/contributing: remove note about configuration options
- doc: Add network list-leases to IPAM How-to
- test/lint: Reintroduce --whole-files linter flag.
- github: run the doc link checker on PRs only
- lxd/daemon: Fix task mutex double unlock
LXD Charm
- Nothing to report this week
Distribution work
This section is used to track the work done in downstream Linux distributions to ship the latest LXD as well as work to get various software to work properly inside containers.
Ubuntu
- Nothing to report this week.