LXD 3.0.1 has been released

Introduction

The LXD team is pleased to announce the release of LXD 3.0.1!

As a stable bugfix release, no major changes have been done, instead focusing on bugfixes and minor usability improvements.

Minor improvements

  • Added version subcommands to lxc and lxd
  • Reworked lxd init for clustering a bit to offer better network configuration options
  • Added a new lxc cluster enable command
  • Reworked the lxd sql subcommand to support both local and global databases
  • lxd init --auto now also configures a default bridge

Bugfixes

  • lxc: Fix mistakenly hidden commands
  • i18n: Update translation templates
  • lxd/migration: Pre-validate profiles
  • client: Improve remote operation errors
  • Fix some typos and wording.
  • Wording fix.
  • lxc/image: Fix crash due to bad arg parsing
  • lxd: add missing limits.h include
  • lxd/init: Fix --auto with network config
  • lxc: Consistent naming of clustering terms
  • i18n: Update translation templates
  • lxc/file: Fix pushing files to remote
  • lxd/init: Don’t setup a remote storage pool by default
  • Fix lxd init failing to join a cluster in interactive mode with an existing zfs dataset
  • lxc/query: Fix -d and -X
  • lxc/help: Make help respect --all too
  • Fix typo in help of “lxc network”
  • Properly filter node-level storage configs by pool ID
  • i18n: Update translation templates
  • lxd/init: Consistency
  • Make new gofmt happy
  • lxc/file: Allow using -r to follow symlinks
  • Replace juju/idmclient with CanonicalLtd/candidclient
  • lxc/config: Fix adding trust cert on snap
  • lxc/alias: Fix example in help message
  • i18n: Update translation templates
  • client: Introduce LXD_SOCKET
  • Makefile: Add a manifest
  • containers: fix snapshot deletion
  • lxc/init: Add missing --no-profiles
  • i18n: Update translations
  • lxc/file: Fix pull target logic
  • doc: Fix example in userns-idmap
  • devices: fail if Nvidia device minor is missing
  • Add db.ContainersNodeList
  • storage: createContainerMountpoint() fix perms
  • ceph: s/0755/0711/g
  • lvm: s/0755/0711/g
  • storage utils: s/0755/0711/g
  • zfs: s/0755/0711/g
  • patches: add “storage_api_path_permissions”
  • sys/fs: s/MkdirAll/Mkdir/g
  • btrfs: fix permissions
  • Pass a logger to raft-http
  • Add new cluster.Promote function to turn a non-database node into a database one
  • Add new cluster.Rebalance function to check if we need to add database nodes
  • Notify the cluster leader after a node removal, so it can rebalance
  • Add integration test
  • doc: Tweak backup.md
  • lxd/init: Require root for interactive cluster join
  • Disable flaky unit tests for now
  • Log the error that made Daemon.Init() fail
  • client: Expose http URL in ConnectionInfo
  • lxc/query: Add support for non-JSON endpoints
  • Handle empty query strings
  • Support reading queries from standard in
  • Support passing multiple queries
  • Rename database files
  • Support querying both local and global database
  • Update integration tests
  • Normalize name of images_aliases table
  • Add query.Dump helper to dump schema and data
  • Add support for dump command in lxd sql
  • lxd/containers: Fix lxc.net check
  • doc/backup.md: update snap path
  • Add lxc cluster enable command
  • Fix command description formatting
  • Update .pot files
  • Use an isolated LXD instance in integration tests
  • Start a container in the integration test
  • Address style comments
  • add LXD_UNPRIVILEGED_ONLY to disallow privileged containers.
  • lxd: tweak LXD_UNPRIVILEGED_ONLY
  • doc: add LXD_UNPRIVILEGED_ONLY
  • tests: add tests for LXD_UNPRIVILEGED_ONLY
  • Reword errors when LXD_UNPRIVILEGED_ONLY is set
  • lxd/containers: Allow sending progress
  • lxc/rename: Deal with remote renames
  • lxd/db: Don’t crash on empty queries
  • lxd/sql: Drop custom table renderer
  • lxd/network: Fix fan subnet calculation logic
  • Update translations from weblate
  • lxc/main: Fix remote caching
  • lxc/storage_volumes: Various fixes
  • tests: Add extra cleanup code
  • lxd/storage: Also set zfs.pool_name on upgrade
  • migration: fix btrfs live migration
  • lxd/containers: Fix broken unix hotplug logic
  • lxc/list: Reduce number of API calls
  • Make the interaction betwean lxd daemon and waitready non-blocking
  • Increase logging during startup
  • Remove log alias for waitready
  • Remove log alias for db.OpenCluster
  • Make Unavailable accept an error parameter
  • Add a new Schema.File() method to load extra queries from a file
  • Add support for patch.local.sql and patch.global.sql
  • Add integration tests
  • Add shared.DirCopy to recursively copy a directory.
  • Update database.md
  • Backup global database if non-clustered
  • lxd/init: Offer to setup a Fan bridge when clustered
  • lxd init: fix maas.api.url check when setting up existing bridge
  • Take raft snapshots more frequently and at shutdown
  • Add --schema flag to lxd sql to dump only the schema.
  • Update database.md with information about lxd sql and patch.*.sql
  • Document how to dump the content or schema of databases
  • Fix shell lints
  • Disable snapshot logging, as it’s too verbose now
  • Make .dump and .schema special queries, for consistency with sqlite3
  • Run make i18n
  • xattr: Support empty values
  • doc: s/status command/info command/
  • lxd/init: Explain password less behavior
  • Make waitready less verbose
  • devices: clone mode of device
  • lxd/init: Have --auto setup networkng if missing
  • container_lxc: fix optional property for disk devs
  • test: Fix busybox image
  • lxc/action: Fix pause
  • lxd/callhook: Respect LXD_SOCKET environment variable
  • forkfile: only open O_RDWR if necessary
  • Consider a copy to be local only when not clustered
  • Add integration tests
  • api: Add backup structs
  • client: Implement backup functionality
  • shared: Implement RunCommandWithFds
  • btrfs: add doContainerCreate()
  • btrfs: add doContainerSnapshotCreate()
  • ceph: ensure fs consistency when snapshotting
  • ceph: ensure fs consistency when restoring
  • ceph: add doContainerCreate()
  • ceph: add doContainerMount()
  • lvm: add doContainerMount()
  • zfs: add doContainerMount()
  • zfs: add do*() helpers
  • lvm: use internal pool name
  • lxd-p2c: Handle target URL smarter
  • lxd-p2c: Ignore missing arg errors
  • lxd-p2c: Delete containers on failure
  • lxd-p2c: Better report rsync errors
  • lxd-p2c: Allow overriding rsync args
  • Serialize reads to the cluster database
  • doc: Fix typo in api-extensions
  • Redirect container/snapshost publish API requests to the relevant node
  • gpu: fallback to default device mode
  • Improve error messages and docs about node-specific config keys for pools and networks
  • Avoid wrapping long lines
  • lxd-p2c: Add rsync version check
  • lvm: s/LXDPool/LXDThinPool/g
  • Extract expandConfigFromProfiles from expandConfig to avoid db interaction
  • Broadcast profile changes to other cluster nodes
  • lvm: use LXD pool name
  • tests: Reduce ceph pg_num down to 1
  • lxc-to-lxd: Respect LXD_SOCKET environment variable
  • Manually release the liblxc structs
  • Drop manual GC calls
  • lxd/containers: Fix fd leak in metadata

Support and upgrade

LXD 3.0.1 is supported until June 2023 and is our current LTS release, users are encouraged to update to the latest bugfix releases as they’re made available.

Downloads

2 Likes