Weekly status for the week of 2nd September to 8th September.
Introduction
Summarizing a week full of complex bugfixes and exciting new features. From fixing races during a cluster recovery process to reworking firmware detection for VMs. The introduction of many shell completion features, support for creating many different resources from YAML strings and newly introduced API metrics as a part of a Disaster Recovery Framework for MicroCloud were some of the main changes introduced this past week. Once again featuring some contributions cherry picked from Incus. Thanks to all the contributors!
API request metrics for disaster recovery
Added API failure detection metrics as part of a disaster recovery framework in MicroCloud. This feature introduces metrics containing the number of completed and ongoing requests on a LXD server.
These can be use for detecting failures on each LXD server in a cluster. The new metrics are accessible through the /1.0/metrics
endpoint on each LXD server along with the existing metrics and can be consumed by Canonical Observability Stack (COS) or other third-party solutions.
The full public spec can be found here
Documentation: API rates metrics
Cluster recovery improvements
The cluster recovery process has been reworked to fix an issue with how LXD uses Dqlite during a cluster recover in order to avoid potential inconsistencies between the different LXD databases. Please see Cluster Recovery Process misuses dqlite Ā· Issue #13524 Ā· canonical/lxd Ā· GitHub for more details on the issue.
Documentation How to recover a cluster
Improved CLI completions (from Incus)
Added improved shell completion for lxc
commands for bash
, zsh
, fish
and powershell
. This includes shell completions for:
- Remotes
- Projects
- Storage pools and volumes
- Image names
- Networks, ACLs, zones, peers and forwards
- Load balancers
- Profiles
- Instance names
- Clusters, cluster groups and roles
- Instance configuration keys
- Instance configuration templates
- Devices
Completion profiles can be generated through lxc completion [shell]
.
Documentation: Shell completions
Support creation of various resources from YAML (from Incus)
Added support to create the following entities from YAML strings:
- Cluster Groups
- Storage Pools
- Storage Volumes
- Instance snapshots
- Storage volume snapshots
As an example, here is how one can create a storage pool from a YAML string:
$ lxc storage create storage-pool-name dir << EOF
description: foo
config:
source: /path/to/source/dir
EOF
Firmware detection rework for VMs (from Incus)
There are several fixes and improvements related to VM firmware detection. The main highlights under this topic were:
- Support for Ubuntu 24.04 OVMF
- Support OVMF filenames on arm64 (from Incus)
- Recognize ArchLinux x86_64 OVMF paths (from Incus)
- Support both
LXD_QEMU_FW_PATH
andLXD_OVMF_PATH
environmental variables
Bugfixes and minor improvements
-
Fixed bypassing
limits.instances
thresholds on a project in a LXD cluster (from Incus). -
Allow managed volumes if the projectās
restricted.devices.disk
is set toallow
(from Incus). -
Made the LXD agent compatible with SELinux by reworking the access to
/run/*
in those systems (from Incus). -
Fixed incompatibility of the
lxd-agent
install script with SUSE due tosystemd
andudev
path differences. -
Fixed having wrong values for projects instance limits accounting when using the PowerFlex storage driver.
LXD UI
-
Instance export now lets users download backup files from the UI.
-
Support for GPUs and all other device types has been added to the configuration forms of instances and profiles.
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
-
Project: Add
lxd/project/limits
and fix PowerFlex instance size limits -
lxc: allow creation of various resources from YAML (from Incus)
-
lxc/publish: clarify that public means accessible to unauthāed clients
-
lxd/instances: Donāt bypass instance limit check (from Incus)
-
lxd/project: Allow managed volumes under āallowā (from Incus)
-
Tests: Check cluster member names cannot be ānoneā (stable-5.21)
-
build(deps): bump github.com/go-acme/lego/v4 from 4.17.4 to 4.18.0
-
build(deps): bump github.com/go-acme/lego/v4 from 4.17.4 to 4.18.0
-
doc: Add shell completions instructions to LXD installation docs
-
Rework manual install instructions for LXD agent (from Incus)
LXD UI
-
Show permissions in navigation also without oidc.audience being set.
-
Add devices section to bundle all related entries in instance and profile form menu
-
delay clearing instance cache when an instance state change fails
-
chore(deps): update dependency @canonical/react-components to v1.2.2
LXD Charm
- Nothing to report this week
Ubuntu
- Nothing to report this week.