Weekly status for the week of 10th July to 16th July.
Introduction
This past week LXD received a bunch of fixes regarding storage recovery, and also introduced the --refresh
flag to profile copy
.
LXD highlights
Features
- The
profile copy
command has gained a new--refresh
flag which allows refreshing a profile instead of having to delete and copy it.
Improvements
- Updated Go client
ExecInstance
function to make it more convenient to get the command’s output when run in non-interactive mode. Now whenRecordOutput: true
is specified and either or bothStdOut
andStdErr
are non-nil handles, the output of the command is streamed to them as required and the command log files created on the server are cleaned up automatically. - The firewall rules generated for network forwards on
bridge
networks have been optimized to be more efficient and require fewer rules.
Bug fixes
- Fix recovery issues for storage buckets, custom ISO volumes, and block-mode enabled custom volumes (ZFS only).
- Fixed an issue where
lxc-to-lxd
andlxd-migrate
would hang indefinitely. - Fixed an issue where project permissions were ignored when importing an instance from backup.
- Fixed an issue where imported VMs would have the same IP address by detecting MAC address conflicts correctly.
- Fixed Go routine leak when starting commands using the
subprocess
package. - Fixed issue when starting multiple VMs concurrently that was causing conflicts in the vsock ID assignment logic. Now LXD binds to an available vsock ID and then passes the file descriptor to QEMU to prevent it from being used by another process after it has been assigned by LXD.
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
- Add support for storage bucket recovery
- Fix lxc-to-lxd
- Doc fixes stable 5.0
- Doc fixes stable 4.0
- client: If
ExecInstance
is called withRecordOutput
enabled send output toStdOut
andStdErr
if streams if provided - Replace links
- lxd: Check project permissions when importing from backup
- VM: Skip every other vsock syscall error except ENODEV
- doc/metadata: Drop now unused file
- Rename LXD go module (stable-5.0)
- Optimize network forwards
- Added the headings in multiple functions of the config.go file
- Instance: Prevent MAC/address conflict for imported instances
- doc/storage: clarify when to specify storage volume type
- lxc/profile: add --refresh flag to lxc profile copy
- lxd/storage/drivers/zfs: Fix content type detection for custom block volumes
- doc: use
systemctl reload
instead ofsnap restart
- QEMU: Occupy vsock Context ID through syscall
- github: Remove builds workflow
- gomod: Update dependencies
- lxd: Fix go routine leaks
- gomod: Updates dependencies
- doc: update to use the ubuntu: image server
- doc/storage/zfs: clarify ZFS block mode
- doc: update information about provided/supported images
- Suffix custom ISO volumes with “.iso”
- test: Backport test fixes for github runners (stable-5.0)
- lxd-migrate: Fix hang when performing rsync over websocket
- test/storage_buckets: replace which by command -v
- doc: Add busybox-static requirement for running test suite
- test: Fix flaky clustering image refresh
- Ensures golangci-lint is latest release version in CI
LXD Charm
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.
Snap
- Nothing to report.