Weekly News #393

Weekly status for the week of 21st April to 27th April.

Introduction

The star of the week was the improvement of volume metadata for backups, moving LXD’s Disaster Recovery framework another important step forward . Additionally, we had important updates to documentation for network ACLs, and further expanded the support for all-projects across LXD entities as well as fixes to reported bugs.

Storage: Improve volume metadata

Improvements to the export metadata format lays the groundwork for supporting lxd recover on more storage drivers and the ability to consistently restore custom volumes along with buckets.

On the API side, a new field version has been added when exporting instances and custom storage volumes to define the backup file format.

In case the field is omitted, the server’s default version is used. The most recent CLI can set this field when exporting backups using lxc export or lxc storage volume export by providing the flag --export-version=(1|2).

API extension: backup_metadata_version

Expand all-projects support to more entities (from Incus)

A series of contributions from Incus, each with its own API extension, that adds support for an all-projects query parameter in GET endpoints for many new entity types. This parameter allows a requester to get entities for all projects in a LXD daemon at once. The entities included here are:

  • Network ACLs: Endpoint being GET /1.0/network-acls and API extension network_acls_all_projects
  • Networks: Endpoint being GET /1.0/networks and API extension networks_all_projects
  • Storage Buckets: Endpoint being GET /1.0/storage-pools/POOL/buckets and API extension storage_buckets_all_projects

doc: improve network ACLs docs

This includes many improvements to network ACLs docs, such as:

  • Document the ability to provide a YAML file to create an ACL (previously only in man page)
  • Clarify that the only arguments accepted for CLI-based ACL creation (aside from a YAML file) are the ACL name and the custom user keys
  • Add missing sections for listing, showing, renaming, and deleting ACLs
  • Add API instruction counterparts to all CLI instructions
  • Add links to relevant parts of API reference
  • Add command syntax examples
  • Improve descriptions of ACL and ACL rule properties
  • Detailed information about how to edit the ACL via the API, where and how to use PATCH and POST
  • Clarify how logging works

Bug Fixes

  • When pushing a file into a container that is owned by a user with a high UID outside of the container’s UID map, the file was successfully pushed, but the CLI returned an error: Error: sftp: "chown /root/test-file-1: invalid argument" (SSH_FX_FAILURE). Subsequent pushes to the same destination did not produce an error. To fix this, we now only change uid/gid if it fits within uidmap range.

  • Fixed a bug where a container failed to start if it had more than one GPU CDI device.

  • In some cases the cluster.https_address can become unset in the local database, and this caused LXD to try to start in standalone mode and enter a startup loop that could not be easily stopped. Proper checks were added to detect this situation and fail when starting a clustered LXD with cluster.https_address unset.

  • Improve network validation to check that listen addresses of network forwards and load balancers do not overlap with OVN ranges.

All changes

The items listed below are all of the work which happened over the past week and which will be included in the next release.

LXD

LXD UI

LXD Charm

  • Nothing to report this week

LXD Terraform provider

  • Nothing to report this week

PyLXD

  • Nothing to report this week

LXD snap

4 Likes