Weekly status for the week of the 20th of September to the 26th of September.
Introduction
This past week LXD has gained a Prometheus compatible metrics exporter , which is one of our roadmap items. As well as the usual mix of improvements and fixes across several subsystems.
In addition to that Distrobuilder gained extended templating support, although its worth pointing out that this has broken backward compatibility with some keys.
LXD
New features:
- Prometheus compatible metrics exporter was added that allows scraping metrics for instances on a particular LXD server for graphing/alerting in Prometheus (or similar). For more information please see the design and documentation.
Improvements:
- Add CPU usage metric support for cgroup v2 systems.
- Improve API request/response debug logging to include more context (including HTTP code).
- Adds
lxc network forward get
command. - Updates
lxc cluster list
to show the server role rather than just a boolean database column. - Updates API
errorResponse.Render
to return a JSON encodedapi.ResponseRaw
struct, to bring inline with other response types.
Bug fixes:
- Only require the
path
config key fortpm
devices when attached to a container. - Fixed filesystem detection when running on 32bit architectures.
- Fix regression that prevented the use of
raw.lxc
during container stop. - Added missing syscalls mappings for riscv64.
- Several storage unmount bug fixes to improve clean LXD daemon shutdown:
- Skip unmounting LVM storage pools (as this cannot be safely done right now, for more info see https://github.com/lxc/lxd/issues/9278).
- Stop instances before trying to unmount storage pools.
- Add VMs to running instances detection before shutting down.
Distrobuilder
Improvements:
- Extended templating support. Source, Path, and Content can be templated. Note: This breaks backward compatability as some yaml keys are renamed. That is because pongo2 doesn’t support hyphens in key names.
- Adds retry mechanism when downloading external assets.
Bug fixes:
- Detect LXD snap socket when importing images.
Dqlite (Go bindings)
Improvements:
- Adds additional busy err codes to aid with additional Jepsen testing.
Youtube channel
We’ve started a Youtube channel with live streams covering LXD releases and its use in the wider ecosystem.
You may want to give it a watch and/or subscribe for more content in the coming weeks.
Contribute to LXD
Ever wanted to contribute to LXD but not sure where to start?
We’ve recently gone through some effort to properly tag issues suitable for new contributors on Github: Easy issues for new contributors
Upcoming events
- Nothing to report this week
Ongoing projects
The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.
- Distrobuilder Windows support
- Virtual networks in LXD
- Various kernel work
- Stable release work for LXC, LXCFS and LXD
Upstream changes
The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.
LXD
- Add metrics
- Cleanup LXD client imports
- Update lxc cluster list to show roles instead of boolean database column
- Storage: Fix LVM unmount pool bug
- doc: update link to rest-api.yaml
- Typo
- lxd/device/tpm: Require
path
only for containers - Fix some swagger inconsistencies
- Add missing syscall mappings for riscv64, and fix missing docs
- Fix documented HTTP return code in console POST
- Daemon: Shutdown storage fixes
- lxd/instance/drivers: Fix raw.lxc handling for shutdown/stop
- doc/rest-api: Add missing entry for 112 (error)
- Storage: Remove unmount functionality from LVM driver
- Storage: Fix filesystem detection to work on 32bit platforms
- lxd/cgroup: Implement CPU usage for cgroup v2
- lxd: Improves API request/response debug logging
- LXD: Modifes errorResponse.Render function to JSON encode a api.ResponseRaw struct
- lxd/cgroup: Fix logging in cgroup init
- Network: Forwards fixes
- Handle VMs in instancesOnDisk
- Network: Add lxc network forward get command
LXC
LXCFS
Distrobuilder
- main: Check for snap when importing LXD image
- Extend templating support
- doc: Mention
source
key and general pongo2 support - Add Retry function
Dqlite (RAFT library)
- Nothing to report this week
Dqlite (database)
- Nothing to report this week
Dqlite (Go bindings)
LXD Charm
Distribution work
This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.
Ubuntu
- Nothing to report this week
Snap
- Nothing to report this week