LXD 2.17 has been released

The changes in this release include

New features:

  • Add support for specifying the ceph user (using the “ceph.user.name” property)
  • Implement “instance types” as an easy way to specify limits (e.g. “lxc launch ubuntu:16.04 -t t2.micro”)
  • Add a new “lxc query” command as a low level query tool for the LXD API (similar to curl but with LXD knowledge)
  • Filesystem ACLs are now rewritten when the container changes uid/gid map
  • LXD now supports using binary deltas when refreshing daily images
  • “lxc image info” now shows whether an image was automatically cached by LXD

Bugfixes:

  • client: Cleanup code duplication in image download function
  • client: Remove deprecated client code
  • client: Simplify ConnectPublicLXD logic
  • doc: Add storage documentation for volatile.pool.pristine
  • doc: Add the volatile.initial_source key
  • doc: Fix bad JSON in rest-api.md (Issue #3654)
  • doc: Properly escape path params
  • extra/lxc-to-lxd: Ignore capabilities that are dropped by default
  • extra/lxc-to-lxd: Ignore sysfs/proc mounts
  • extra/lxc-to-lxd: Properly handle lxc.seccomp
  • i18n: Update translations from weblate
  • lxc: Fix race in progress reporter
  • lxc: Re-introduce remote protocol migration
  • lxc/config: Expose extra certificate functions (Issue #3606)
  • lxc/image: Fix copy of image aliases
  • lxc/image: Wait for the refresh to complete
  • lxc/remote: Don’t require a crt for public remotes (Issue #3627)
  • lxd: Move lxd/util.go into its own lxd/util/ sub-package
  • lxd/containers: Allow passing disk devices with the LXD snap (Issue #3660)
  • lxd/containers: Another LXC 2.1 key rename, lxc.idmap
  • lxd/containers: Fix a typo: now -> know
  • lxd/containers: Fix gpu attach when mixing GPU vendors (Issue #3642)
  • lxd/containers: Fix sorting order of devices (Issue #2895)
  • lxd/containers: Fix support for isolcpu in CPU scheduler (Issue #3624)
  • lxd/containers: Make stateful snapshot restores work again
  • lxd/daemon: Add initial lxd/sys sub-package and OperatingSystem structure
  • lxd/daemon: d.os.Init must be run after all paths are created
  • lxd/daemon: Extract Daemon.ExpireLogs into a standalone function
  • lxd/daemon: Extract Daemon.GetListeners into a standalone function
  • lxd/daemon: Extract Daemon.httpClient into a standalone HTTPClient function
  • lxd/daemon: Extract Daemon.ListenAddresses into a standalone function
  • lxd/daemon: Extract Daemon.PasswordCheck into a standalone function
  • lxd/daemon: Extract Daemon.SetupStorageDriver into a standalone function
  • lxd/daemon: Log a warning for unknown config keys instead of crashing
  • lxd/daemon: Move Daemon.BackingFs to the OS struct
  • lxd/daemon: Move Daemon.IdmapSet to OS.IdmapSet
  • lxd/daemon: Move Daemon.isRecursionRequest to the lxd/util sub-package
  • lxd/daemon: Move Daemon.lxcpath to OS.LxcPath
  • lxd/daemon: Move Daemon.MockMode to OS.MockMode
  • lxd/daemon: Move Deamon.CheckTrustState and Deamon.isTrustedClient to lxd/util
  • lxd/daemon: Move filesystemDetect function into lxd/util subpackage
  • lxd/daemon: Replace Daemon with State in all model entities
  • lxd/daemon: Use select and save a few goroutines
  • lxd/daemon: Use sql.DB or sys.OS instead of Daemon where possible
  • lxd/db: Drop dependencies on Daemon in db.go
  • lxd/db: Move db*.go files into their own db/ sub-package
  • lxd/images: Carry old “cached” value on refresh (Issue #3698)
  • lxd/import: Don’t use un-initialized structs
  • lxd/networks: Allow starting LXD without dnsmasq (Issue #3678)
  • lxd/networks: Fix networkIptablesClear with missing ip{6}tables (Issue #3688)
  • lxd/networks: Make “dev” work as a network name
  • lxd/networks: Set dnsmasq.raw to be 0644 (Issue #3652)
  • lxd/networks: Stop networks on clean shutdown
  • lxd/patches: Fix canmount=noauto patch (Issue #3594)
  • lxd/patches: Unset “size” for ZFS containers + images (Issue #3679)
  • lxd/storage: Count custom volumes in pool UsedBy
  • lxd/storage: Enable “volume.size” for {btrfs,zfs}
  • lxd/storage: Fix “size” property
  • lxd/storage: Fix wrong driver name for log output
  • lxd/storage: Non-functional changes
  • lxd/storage/ceph: Fix double –cluster
  • lxd/storage/ceph: Unmap until EINVAL
  • lxd/storage/ceph: Use “/dev/rbd” via sysfs
  • lxd/storage/ceph: Use minimal image feature set for clones
  • lxd/storage/dir: Check if directory is empty (Issue #3680)
  • lxd/storage/zfs: Always require existing datasets to be empty (Issue #3657)
  • lxd/storage/zfs: Refactoring
  • shared: Add wrapper to translate host paths
  • shared: Move GetRemoteCertificate from lxc/remote (Issue #3606)
  • tests: function to include storage backends helpers
  • tests: Refactor cleanup functions
  • tests: Split out lxc and lxd related helper functions
  • tests: Split out network-related helper functions
  • tests: Split out storage-related helper functions
  • tests: Split out test setup related helper functions
  • tests: Use $storage_backends variable

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.

This article was originally featured at discuss.linuxcontainers.org

About the author

Stéphane's photo

Stéphane Graber is the technical lead for LXD at Canonical Ltd. He is the upstream project leader of LXC and LXD and is deeply involved in the container world. Stéphane has been involved with Ubuntu for years and currently sits on the Ubuntu Technical Board and Ubuntu Developer Membership board. He is a member of the Ubuntu Release team as well as an Ubuntu Archive administrator and Ubuntu Stable Release team member. Outside of his work on containers, Stéphane also has very strong networking knowledge as the former maintainer of the Ubuntu networking stack and large scale system administration knowledge from previous jobs. Stéphane is one of the organizers of the Containers mini-summit during the Linux Plumbers Conference, a regular presenter at LinuxCon and has been involved in many other Ubuntu and container specific events and hackfests.

More articles by Stéphane

Posted in: