Weekly status for the week of 28th April to 4th May.
Introduction
This past week, a new feature landed in LXD that allows restoring a cluster member to the online state without affecting any instances. Additionally, several bugs were fixed and CLI completions were significantly improved.
Thanks to all the contributors!
Cluster restore skip
mode
LXD now supports cluster restore with skip
mode, which allows a cluster member to be restored to the online state without affecting any instances. Instances stopped during evacuation remain stopped, and migrated instances using remote storage are not returned to the original member.
lxc cluster restore <member> --action=skip
This feature is indicated by API extension clustering_restore_skip_mode
.
Bug Fixes
-
Fixed an issue where VM creation failed if the source disk did not contain a GPT partition table.
-
Fixed the timezone of snapshot expiry to consistently use UTC, similar to the snapshot creation date.
-
Improved several error messages. For example, the attempt to evacuate an offline cluster member is now clearly indicated in the error.
-
Fixed an issue where LXD UI console could be disconnected after 30 seconds. LXD now generates a server-side initiated web socket pings for remote console connections to avoid premature disconnection.
-
Improved CLI auto-completion by:
- Adding missing top-level command completions
- Enhancing file path completion
- Suppressing public remote suggestions for destructive image operations
- Filtering device configuration suggestions based on device type
- Including server configuration suggestions when no remote is explicitly specified
LXD UI
-
Enhanced instance detail metrics to include CPU usage and usage of root and additional disks.
-
Added support for configuring instance export, including options to disable compression and ignore snapshots.
LXD images
Changes on images:
simplestream remote:
- Fixed
Debian Sid/Trixie
- AppArmor failures caused the images to be temporarily unavailable.
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
- Cluster: Add
skip
mode tolxc cluster restore
command - doc/idmap: Clarify subuid/subgid configuration (from Incus)
- lxd: Allow shutdown during cluster database initialisation
- doc: Move contributing out of āGetting Startedā
- Improve parsing of USB vendor, product, class and subclass IDs
- lxc/config: Allow overriding connection arguments
- lxc/config: Make the images remote static
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.90 to 7.0.91
- lxc/completions: Generalise completions for top level API resources
- build(deps): bump github.com/NVIDIA/nvidia-container-toolkit from 1.17.5 to 1.17.6
- build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.16
- build(deps): bump github.com/NVIDIA/nvidia-container-toolkit from 1.17.5 to 1.17.6
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.90 to 7.0.91
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.16
- build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.90 to 7.0.91
- lxc/completion: Use filters when completing remotes
- lxd: No need to call /1.0 repeatedly in waitready
- lxc: Config option completion
- lxc: Image alias/fingerprint completion
- lxd: Retry improvements (from Incus)
- lxc: Refactor snapshot completions
- Update Go modules
- lxc: Refactor file completion
- lxc: Add missing completions for top level commands
- lxc/completion: Use
strings.HasPrefix
overstrings.Contains
- lxc/completion: use
strings.HasPrefix()
to check for default remote name - lxd: Make d.gateway.Cluster available even if OpenCluster returns with PreconditionFailed
- Storage: Fix snapshot expiry
- Storage: Skip GPT altāheader move on non-GPT disks (handle
sgdisk
exits 2 & 3) - Fan tests
- lxd: Use proper status for error
- lxd: Generate server-side initiated web socket pings for remote console connections
- Document
core.debug_address
- lxd: Rework waitready to use contexts and server-side timeout support
- Storage: Improve error message wording in
CreateInstanceFromConversion
- Switch to Go 1.24 and update Go modules
- Use nil payload on websocket.PingMessage
- doc: update admonitions for microcloud integrated docs
- github: Add KEV matching to security alerts
- lxd: Use uint64 for waitready timeout flag for consistency with server side
- Replace
fmt.Errorf()
byerrors.new()
- lxd/db/migration: use
%q
specifier to quoteentity
- golangci-lint: enable testifylint
- lxc/cluster: Improve error message when evacuating offline member
- Stop generating
fmt.Errorf
calls without format directives inlxd-generate
- lxd/response/swagger: annotate individual strucs for nolint:unused
- lxd/auth/oidc: Use hkdf from stdlib
- lxd/response/swagger: silence noise from
unused
linter
LXD UI
- feat(metrics) show all disk metrics and label main disk metric to root disk
- feat(instance) allow configure instance export
- feat: [WD-15524] Add target member selection for volume duplication
- chore(ClusterMemberSelector) remove duplicate and confusing setMember callback
- feat: Refactor Duplicate ā Copy for Storage Volumes and Instances
- chore(deps): update dependency vite to v6.3.4 [security]
LXD Charm
- Nothing to report this week
LXD Terraform provider
PyLXD
- build(deps): bump actions/setup-python from 5.5.0 to 5.6.0
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.16