Introduction
LXD 3.1 is the first feature release following our last LTS release (3.0).
As a feature release, it will only be supported until LXD 3.2 is released next month.
We recommend critical production environments stick to the LTS branch instead.
If you’re using the snap, you can enforce that with snap refresh lxd --channel=3.0
.
Note that LXD does not support downgrades, so a system that’s upgraded to LXD 3.1 will not be able to go back to LXD 3.0.0.
Note for Ubuntu users
LXD 3.1 will only be made available as a snap package. We will not be uploading it as a deb to Ubuntu 18.10 or through backports to previous releases. Moving forward all feature releases of LXD will only be available through the snap.
Note that this does NOT affect users of LXD 3.0.x as present in Ubuntu 18.04 where further bugfix/security releases will be uploaded as debs until Ubuntu 18.04 reaches end of life.
The changes in this release include
Features:
- Introduced a new backup API and ability to export/import containers using it.
In the CLI those are newlxc export
andlxc import
commands:
- Made it possible to override the LXD socket path with
LXD_SOCKET
- Made it possible to disable the use of privileges containers through a new
LXD_UNPRIVILEGED_ONLY
environment variable. - Improved the
lxd sql
command to support interacting with both databases, support making database and schema dumps, run multiple queries an read from a script. - Added a new
lxc cluster enable
command to easily convert an existing LXD server into an initial cluster node - Extended
lxd init
to offer setting up a Fan overlay for clustering users - Extended
lxd init --auto
to also auto-configure an initial network
Bugfixes:
- client: Expose http URL in ConnectionInfo
- client: Improve remote operation errors
- doc: Document how to dump the content or schema of databases
- doc: Fix example in userns-idmap (Issue #4437)
- doc: Fix some typos and wording
- doc: s/status command/info command/ (Issue #4527)
- doc: Tweak
backup.md
- doc: Update
database.md
with information about lxd sql and patch.*.sql - doc: Update snap path in
backup.md
- global: Make new gofmt happy
- global: Replace juju/idmclient with CanonicalLtd/candidclient
- i18n: Update translations from weblate
- lxc: Add version subcommand (Issue #4381, Issue #4382)
- lxc: Consistent naming of clustering terms
- lxc: Fix mistakenly hidden commands (Issue #4380)
- lxc/action: Fix pause
- lxc/alias: Fix example in help message (Issue #4424)
- lxc/config: Fix adding trust cert on snap (Issue #4418)
- lxc/copy: Consider a copy to be local only when not clustered
- lxc/file: Allow using -r to follow symlinks (Issue #4411)
- lxc/file: Fix pull target logic
- lxc/file: Fix pushing files to remote (Issue #4394)
- lxc/help: Make help respect --all too (Issue #4406)
- lxc/image: Fix crash due to bad arg parsing
- lxc/init: Add missing --no-profiles
- lxc/list: Reduce number of API calls
- lxc/main: Fix remote caching
- lxc/network: Fix typo in help message
- lxc/query: Add support for non-JSON endpoints (Issue #4452)
- lxc/query: Fix -d and -X (Issue #4406)
- lxc/remote: Add format option to list
- lxc/rename: Deal with remote renames (Issue #4486)
- lxc/storage_volumes: Various fixes
- lxd: Add missing limits.h include
- lxd: Add version subcommand
- lxd: Increase logging during startup
- lxd: Log the error that made Daemon.Init() fail
- lxd: Make the interaction betwean lxd daemon and waitready non-blocking
- lxd: Make Unavailable accept an error parameter
- lxd/cluster: Add new cluster.Promote function
- lxd/cluster: Add new cluster.Rebalance function
- lxd/cluster: Notify the leader after a node removal, so it can rebalance
- lxd/cluster: Pass a logger to raft-http
- lxd/cluster: Properly filter node-level storage configs by pool ID
- lxd/containers: Allow configuration of mount-propagation
- lxd/containers: Allow sending progress (Issue #4447)
- lxd/containers: Fix broken unix hotplug logic (Issue #4495)
- lxd/containers: Fix lxc.net check (Issue #4466)
- lxd/containers: Fix optional property for disk devs (Issue #4538)
- lxd/containers: Fix snapshot deletion (Issue #4431)
- lxd/database: Add a new Schema.File() method to load extra queries from disk
- lxd/database: Add db.ContainersNodeList
- lxd/database: Add query.Dump helper to dump schema and data
- lxd/database: Add support for patch.local.sql and patch.global.sql
- lxd/database: Backup global database on upgrade if non-clustered
- lxd/database: Rename database files
- lxd/database: Take raft snapshots more frequently and at shutdown
- lxd/db: Don’t crash on empty queries
- lxd/devices: Clone mode of source device (Issue #4534)
- lxd/devices: Fail if Nvidia device minor is missing (Issue #4441)
- lxd/forkfile: Only open O_RDWR if necessary (Issue #4552)
- lxd/init: Don’t setup a remote storage pool by default
- lxd/init: Explain passwordless behavior (Issue #4524)
- lxd/init: Fix --auto with network config
- lxd/init: Fix interactive cluster join with an existing ZFS (Issue #4404)
- lxd/init: Fix maas.api.url check when setting up existing bridge
- lxd/init: Make questions more consistent
- lxd/init: Require root for interactive cluster join (Issue #4451)
- lxd/migration: Fix btrfs live migration (Issue #4475)
- lxd/migration: Pre-validate profiles (Issue #4379)
- lxd/network: Fix fan subnet calculation logic
- lxd/patches: Add “storage_api_path_permissions” patch
- lxd/sql: Drop custom table renderer
- lxd/sql: Handle empty query strings
- lxd/storage: Also set zfs.pool_name on upgrade (Issue #4489)
- lxd/storage/btrfs: Add doContainerCreate()
- lxd/storage/btrfs: Add doContainerSnapshotCreate()
- lxd/storage/ceph: Add doContainerCreate()
- lxd/storage/ceph: Add doContainerMount()
- lxd/storage/ceph: Ensure fs consistency when restoring
- lxd/storage/ceph: Ensure fs consistency when snapshotting
- lxd/storage: createContainerMountpoint() fix perms
- lxd/storage: Handle ContainerDelete() correctly
- lxd/storage: Handle ContainerRename() correctly
- lxd/storage/lvm: Add doContainerMount()
- lxd/storage/zfs: Add doContainerMount()
- lxd/storage/zfs: Add do*() helpers
- lxd/sys/fs: s/MkdirAll/Mkdir/g (Issue #4433)
- Makefile: Add a manifest (Issue #4421)
- shared: Support empty values in xattr
- tests: Add extra cleanup code
- tests: Fix busybox image
Try it for yourself
This new LXD release is already available for you to try on our demo service.
Downloads
The release tarballs can be found on our download page.