Weekly status for the week of 4th September to 10th September.
Introduction
The past week, LXD added two new API endpoints. The first is /documentation/
which, if LXD is exposed to the network, will show the entire LXD documentation (if using the snap package and using the latest/edge
channel). The second is /1.0/metadata/configuration/
which shows the metadata configuration in a JSON format. Aside from that, a couple of improvements were added, and several bugs were fixed.
LXD highlights
Features
- The LXD documentation is now accessible at the
/documentation/
endpoint of your local LXD server. For this to work, you need to be using the snap package with thelatest/edge
channel and the LXD server needs to be exposed to the network. - The
/1.0/metadata/configuration/
endpoint has been added which can be used to retrieve the generated metadata configuration in a JSON format.
Improvements
- Use information from
lshw
command if/sys/class/dmi
is not available. This seems to be the case on PPC machines. - When querying
/1.0/metrics
, loop devices are now ignored in the IO stats as these aren’t useful to users. - Add
ubuntu-minimal
andubuntu-minimal-daily
remotes by default. - If the btrfs driver fails to detect the btrfs filesystem, the error message now includes what was detected instead.
Bug fixes
- Fixed a bug where it was possible to set
block.*
settings for regular custom block volumes. - Fixed an issue where calling
/1.0/operations/<id>
and/1.0/operations/<id>/wait
would return different status/error codes if the instance was stopped. - Fixed a bug where constraints in
/1.0/instances/<instance>/exec
weren’t checked. LXD will now return an error ifrecord-output
andwait-for-websocket
, orinteractive
andrecord-output
are used in combination. - Fixed issues when attempting to hot-plug and hot-unplug filesystem volumes to/from VMs. Both actions are not possible, and will now return reasonable error messages.
- Fixed an issue where LXD would potentially delete a ceph pool if the check for an existing pool failed due to a communications issue with the cluster. Now it differentiates between a missing pool result and an error to check whether the pool exists or not.
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
- lxd: expose a documentation server to LXD
- lxd: Add generated configuration options to API
- Doc: PoC for adding API instructions
- lxd/resources: Use
lshw
if DMI is not available - zfs: Disallow block.* settings for regular custom block volumes
- doc: Updates routed nic how-to to use pass netplan config via stdin.
- Skip loop devices from IO stats
- Add Ubuntu Minimal remote image servers
- Reduce doc size
- lxd/resources: Use RunCommandCLocale when calling
lshw
- drivers: Use StatusError to ensure error code consistency
- instance_exec: Add constraint validation
- doc/zfs: remove limitation
- Makefile: fix “tags” target and don’t make it PHONY
- Fix metadata-up-to-date lint script
- Update storage_volumes.md
- btrfs: Mention detected FS on detection error
- Device: Fix disk hot-plug validation for VMs
- storage/drivers/ceph: Differentiate between a true non-existent OSD pool and a Ceph internal issue
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.
Snap
- Add
lshw
as a runtime dependency. - Build embedded documentation.
- Disable SMM_REQUIRE in EDK2 as it was seen to be causing issues booting VMs with many CPUs.
- Disable EFI memory attributes protocol in EDK2 as that leads to
Synchronous Exception
when booting VMs on Arm64 with standard Ubuntu images.