Weekly status for the week of the 22nd August to the 28th August.
Introduction
The past week saw continued progress on the new object storage buckets feature as we work towards adding local storage pool support. In addition there were a few bug fixes and improvements across most of our projects.
LXD
Improvements:
- Added new
lxd_cpu_effective_total
metric to metrics exporter. Which reports the total number of effective CPUs. - Added
storage-pool
name to theinstance-created
lifecycle event. - Added automatic admin credential generation when creating an object storage bucket using
lxc storage bucket create
. The generated credentials will be displayed at the end of the command and can also be managed using thelxc storage bucket key
commands. - ZFS storage pool top-level datasets are now initialized at storage pool mount time. This means any missing datasets are created as needed and LXD specified properties are applied to both new and existing datasets.
Bug fixes:
- Fixed a typo in the
cephobject.radosgw.endpoint*
setting names, and added a patch to automatically convert any existing usage of the old settings with the new correct ones. - The data type used for
lxd_cpu_seconds_total
metrics field in the metrics exporter has been changed from int to float.
LXCFS
Improvements:
- Set
oom_score_adj
oflxcfs
process to -1000 in the LXCFS init scripts to avoid the process being killed in an out of memory situation, as if the LXCFS process is killed it will require all containers to be restarted.
Distrobuilder
Improvements:
- Added support for using templates in actions.
- Improvements to logging output.
- Improvements to Alpine image building to always download from latest point release and handle edge release.
- Improvements to Oracle image building to aid finding the latest release version.
Dqlite (RAFT library)
Bug fixes:
- Fixed memory leak in
uvLoadClosedSegment
caused when one killed node rejoins the cluster.
Dqlite (database)
Bug fixes:
- Fixed non-dqlite return codes that were returned from some functions in the public API in certain circumstances.
- Unify address parsing and fix IPv6 support.
Dqlite (Go bindings)
Bug fixes:
- If dqlite_node_create fails, don’t try and de-reference NULL struct dqlite_node argument.
- Normalize error string capitalization.
YouTube videos
The LXD team is running a YouTube channel with live streams covering LXD releases and weekly videos on different aspects of LXD. 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 planned currently.
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.
- Stable release work for LXC, LXCFS and LXD
- [LXD] Object storage (S3 API)
- Infiniband support for VMs
- Dqlite disk-only operation mode
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
- Doc: Uses more backquotes in documents
- Adds storage pool to instance-created lifecycle context
- Doc fixes buckets
- Storage: Fix typo in
cephobject.radosgw.endpoint*
settings - doc: Note AIO requirement
- Generator: Use variadic filter structs
- api: metric: lxd_cpu_seconds_total: fix help text, floats
- Storage: Create initial admin credentials on bucket creation
- lxd-generate Allow Type field in filter struct
- DB: Apply schema patch version for bucket config typo fix
- Doc: several fixes
- lxd/db/generate/db/method: Fix external package support
- lxd/db/generate/db/stmt: Add joinon tag
- lxd-generate join config
- lxd/db/generate/db/stmt: Use joinon tag for ID query generation
- Project rename response docs
- New lxd_cpu_effective_total metric
- Storage: Use
Volume
to represent buckets with a new VolumeType - doc/requirements: correct statement about AIO
- Storage: Precursor changes before local bucket support
- doc: improve systemd-resolved integration by adding stop command
LXC
- Nothing to report this week
LXCFS
Distrobuilder
- Drop deprecated io/ioutil package
- Support templating in actions
- sources/alpine: Always download latest point release
- source/alpine: Properly handle latest release when using edge
- Update logging
- sources/oracle: Find updates through iteration
Dqlite (RAFT library)
Dqlite (database)
- README: note AIO requirement
- Fix non-dqlite return codes in public API
- README: fix statement about AIO
- Replace #define groups with enums
- Unify address parsing and support IPv6
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