Back to the news overview

LXD 2.0.11 release announcement

19th of October 2017
This is the eleventh bugfix release for LXD 2.0.

The changes since LXD 2.0.10 are

Minor improvements:

  • LXD 2.0.11 is now snap aware and can be installed from the "2.0" track.
  • The documentation is now available on ReadTheDocs: https://lxd.readthedocs.io/en/stable-2.0/
  • It's now possible to interrupt image downloads.
  • Added a new security.idmap.base config key (overrides the base uid/gid of the container).
  • Added support for delta image downloads.
  • Implemented instance types as a proxy for resource limits.
  • The user-agent string was expanded to include OS and kernel information.
  • The client library and related code is now kept in sync with master.
  • The command line client has been ported to the new client library.

Bugfixes:

  • client: Add CancelTarget to RemoteOperation
  • client: Add CreateContainerFromImage function
  • client: Added insecureSkipVerify flag the ConnectionArgs struct
  • client: Add extra exec option to block on I/O
  • client: Add GetServerResources()
  • client: Add GetStoragePoolResources()
  • client: Add image_create_aliases backward compat
  • client: Add RenameStoragePoolVolume()
  • client: Allow canceling image download from LXDs
  • client: Allow specifying base http client
  • client: Cleanup code duplication in image download code
  • client: Commonize error handling
  • client: Don't live migrate stopped containers
  • client: Drop experimental tag from new client
  • client: Fail if source isn't listening on network
  • client: Fix crash in operation handler
  • client: Fix crash when missing cookiejar
  • client: Fix handling of public LXD remote
  • client: Fix image copy
  • client: Fix non-interactive exec hangs
  • client: Fix potential race in event handler setup
  • client: Fix race condition in operation handling
  • client: Implement container and snapshot copy
  • client: Implement push and relay container copy
  • client: Implement remote operations
  • client: Improve error on image copy
  • client: Improve migration relay code
  • client: Keep track of protocol
  • client: Make it possible to retrieve HTTP client
  • client: Make the authentication Interactor configurable
  • client: Move CopyImage to the target server
  • client: Only set file headers if value is provided
  • client: Properly handle remote disconnections
  • client: Reduce request logging to Debug
  • client: Simplify ConnectPublicLXD logic
  • client: Support for macaroons-based authentication
  • client: Sync with master branch
  • client: Use RemoteOperation for CopyImage
  • config: Add support for CookieJar
  • config: Try to be clever about ":" in snapshots
  • doc: Add a note about blkio limits
  • doc: Add section on macvlan vs bridge
  • doc: Add SUPPORT.md
  • doc: Document instance types
  • doc: Document that squashfs images can also be used
  • doc: Document the exec control API
  • doc: Extend/rework security-related documentation.
  • doc: Fix lxd.log location in issue template
  • doc: Fix spaces, commas, quotes, brackets where needed
  • doc: Initial documentation of container env
  • doc: Refresh the issue template
  • doc: Seriously rework the content of the README
  • doc: Sort container config keys
  • doc: Sort server.md config keys
  • doc: Update containers.md
  • extra/lxc-to-lxd: Fix bad test
  • extra/lxc-to-lxd: Ignore capabilities dropped by default
  • extra/lxc-to-lxd: Ignore sysfs/proc mounts
  • extra/lxc-to-lxd: Properly handle lxc.seccomp
  • i18n: Update Japanese translation (for stable-2.0)
  • lxc: Add plumbing for operation cancellation
  • lxc: Cross-platform HOME handling
  • lxc: Fix help to provide sample that actually works
  • lxc: Fix import crash when adding properties
  • lxc: Fix race in progress reporter
  • lxc: Properly record alias source on copy
  • lxc: Re-introduce remote protocol migration
  • lxc: Respect HOME if set
  • lxc/config: Removal of multiple devices at once
  • lxc/copy: Report progress data
  • lxc/delete: Fix lxc delete --force description
  • lxc/exec: Fix signal handler for Windows
  • lxc/exec: Fix Windows port
  • lxc/file: Fix file push/pull with names containing spaces.
  • lxc/file: Read file perms from Windows FS
  • lxc/file: Use shared.HostPath for push/pull
  • lxc/image: Always use long fingerprint in exported filenames
  • lxc/image: Expose the "cached" flag
  • lxc/image: Fix aliases with simplestreams remotes
  • lxc/image: Fix "lxc image copy" not recording the source
  • lxc/image: Fix regression in exported filename
  • lxc/image: Improve filter handling
  • lxc/image: Make "lxc image copy" fast again
  • lxc/image: Update image aliases when they already exist
  • lxc/image: Use shared.HostPath for import/export
  • lxc/init: Fix failure to launch containers with random names
  • lxc/list: Error if --columns and --fast are used together
  • lxc/move: Use force on delete
  • lxc/publish: Fix fingerprint printing
  • lxc/remote: Don't require a cert for public remotes
  • lxc/utils: Avoid potential progress race condition
  • lxc/utils: Println doesn't do format strings
  • lxd-benchmark: Add CreateContainers function
  • lxd-benchmark: Add csv reporting
  • lxd-benchmark: Add freezeContainer function
  • lxd-benchmark: Add processBatch function, use it in SpawnContainers and DeleteContainers
  • lxd-benchmark: Add "spawn" as equivalent but deprecated to "launch"
  • lxd-benchmark: Add start and stop commands
  • lxd-benchmark: Add StartContainers function
  • lxd-benchmark: Add StopContainers function
  • lxd-benchmark: Change name of spawn command to launch
  • lxd-benchmark: Extract deleteContainer and copyImage functions
  • lxd-benchmark: Extract ensureImage function
  • lxd-benchmark: Extract getBatchSize function
  • lxd-benchmark: Extract GetContainers function
  • lxd-benchmark: Extract logic to separate package
  • lxd-benchmark: Extract PrintServerInfo function
  • lxd-benchmark: Extract printTestConfig function
  • lxd-benchmark: Fix ensureImage when a local alias is passed
  • lxd-benchmark: Fix local image handling
  • lxd-benchmark: Return operations duration
  • lxd-benchmark: Split private functions to separate files
  • lxd-benchmark: Use NewConfig to get a default configuration
  • lxd: Add initial lxd/sys sub-package and OperatingSystem structure
  • lxd: Fix typo now -> know
  • lxd: Make .dir-locals.el play nice with flycheck
  • lxd: Replace some uses of InternalError with SmartError
  • lxd: Use sql.DB or sys.OS instead of Daemon where possible
  • lxd/apparmor: Drop useless apparmor denies
  • lxd/apparmor: Support new stacking syntax
  • lxd/containers: Allow passing disk devices with the LXD snap
  • lxd/containers: Better handle errors in memory reporting
  • lxd/containers: Check for container mountpoint too
  • lxd/containers: Check whether disk device exists
  • lxd/containers: Cleanup volatile keys on update
  • lxd/containers: Detect POLLNVAL when poll()ing during exec
  • lxd/containers: Fix readonly mode for directory mount
  • lxd/containers: Make "dev" work as a network interface name
  • lxd/containers: Remove from db on storage failure
  • lxd/containers: Show underlying error when container delete fails
  • lxd/containers: Update to support LXC 2.1 configuration keys
  • lxd/containers: Use lxc.network.N.
  • lxd/daemon: Don't update images while pruning
  • 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: Finish replacing Daemon with State also in higher-level entity APIs
  • lxd/daemon: Fix handling of config triggers
  • lxd/daemon: Improve error on invalid config key
  • lxd/daemon: Log a warning for unknown config keys and don't crash
  • 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 Daemon.CheckTrustState and Daemon.isTrustedClient to lxd/util
  • lxd/daemon: Move filesystemDetect function into lxd/util subpackage.
  • lxd/daemon: Move lxd/util.go into its own lxd/util/ sub-package
  • lxd/daemon: Replace Daemon with State in all model entities
  • lxd/daemon: Reset the images auto-update loop when configuration changes
  • lxd/daemon: Simplify time channels
  • lxd/daemon: Use select and save goroutines
  • lxd/db: Add db/query sub-package with common query helpers
  • lxd/db: Add db/schema sub-package for managing database schemas
  • lxd/db: Add query.Transaction
  • lxd/db: Add Schema.Dump() method for flattening a series of schema updates
  • lxd/db: Add schema.NewFromMap convenience to create a schema from a map.
  • lxd/db: Automatically generate database schema from database updates
  • lxd/db: Don't special-case mock mode unnecessarily in db patches
  • lxd/db: Drop dependencies on Daemon
  • lxd/db: Fix bad DB schema update between schema 30 and 31
  • lxd/db: Fix database upgrade logic not inserting interim versions
  • lxd/db: Move db*.go files into their own db/ sub-package
  • lxd/db: Separate db-level update logic from daemon-level one
  • lxd/db: Wire new schema code into db.go
  • lxd/devices: Add support for isolcpu in CPU scheduler
  • lxd/devices: Don't mark all cpus isolated by default
  • lxd/devices: Fix handling of major and minor numbers in device IDs
  • lxd/devices: Fix sorting order of devices
  • lxd/devices: Handle empty isolcpus set
  • lxd/devices: Take all 32 bits of minor device number
  • lxd/events: Fix race condition in event handlers
  • lxd/images: Actually get the list of images to remove
  • lxd/images: Always expand fingerprint
  • lxd/images: Carry old "cached" value on refresh
  • lxd/images: Clear error for image not found
  • lxd/images: Don't access the returned struct in case of error
  • lxd/images: Fix image refresh when fingerprint is passed
  • lxd/images: Fix ordering of compressor arguments
  • lxd/images: Fix potential double unlock
  • lxd/images: Fix private image copy with partial fp
  • lxd/images: Fix regression in image auto-update logic
  • lxd/images: Initialize image info in direct download case
  • lxd/images: Properly extract the image expiry
  • lxd/images: Respect disabled cache expiry
  • lxd/images: Store UploadedAt as RFC3339
  • lxd/init: Add a cmd.Parser helper for parsing command line flags
  • lxd/init: Consolidate interactive/auto init logic with the preseed one
  • lxd/init: Extract code asking init questions to individual methods
  • lxd/init: Extract logic to fill init data to standalone methods
  • lxd/init: Extract validation of --auto args into a separate method
  • lxd/init: Make the log cmdInit unit-testable
  • lxd/init: Move state-changing inline functions to own methods
  • lxd/init: Plug cmd.Parser into main.go
  • lxd/init: Properly set default port
  • lxd/main: Fix error message when log path is missing
  • lxd/migration: Fix live migration (bad URL in dumpsuccess)
  • lxd/networks: Don't require ipt_checksum
  • lxd/patches: Convert UploadedAt to RFC3339
  • lxd/rsync: Handle sparse files when rsyncing
  • lxd/shutdown: Only timeout if told to
  • lxd/storage/btrfs: Workaround btrfs bug
  • lxd/storage/dir: Unfreeze on rsync error
  • lxd/storage/rsync: Ignore vanished file warnings
  • Makefile: Fix static-analysis target
  • Makefile: Update pot before po
  • network: Do not update limits unconditionally
  • shared: Add wrapper to translate host paths
  • shared: Cleanup use of log
  • shared: Fix bad check for snap paths
  • shared: Fix growing of buf in GroupId
  • shared: Fix new golint warning
  • shared: Move GetRemoteCertificate from lxc/remote
  • shared: Move idmap/acl functions to a separate package
  • shared: Move testhelpers into shared/osarch for now
  • shared: Use custom error type for RunCommand
  • shared: Vendor the subtest compatibility schim in shared/subtest
  • shared: Websocket proxy should proxy everything
  • shared/api: Add API for editing containers metadata.yaml and template files
  • shared/api: Add container template files operations.
  • shared/api: Add server resource api structs
  • shared/api: Add storage pool resource api structs
  • shared/api: Add StorageVolumePost
  • shared/api: Add support for macaroons-based authentication indicator
  • shared/api: Extensions go at the bottom
  • shared/api: Implement complete push migration
  • shared/api: Migration: state{ful,less} snapshot migration
  • shared/api: Split storage in separate files for pools and volumes
  • shared/api: Sync with master branch
  • shared/canceler: Support canceling with parallel downloads
  • shared/canceler: Fix return value ordering
  • shared/canceler: Use request Cancel channel
  • shared/cmd: Don't depend on testify in the cmd package
  • shared/cmd: Update to match master
  • shared/idmap: Disallow hostids intersecting subids
  • shared/idmap: Fix numerous issues
  • shared/idmap: Fix tests
  • shared/idmap: Make ACL failures more verbose
  • shared/logger: Temporary workaround for log15 API breakage
  • shared/network: Add some more TLS ciphers
  • shared/network: Sync TLS handling with master
  • shared/osarch: Add function for parsing /etc/os-release
  • shared/osarch: Add missing architecture aliases
  • shared/osarch: Fix uname handling on some architectures
  • shared/util: Add helper to create tempfiles
  • shared/util: Extract helper to get uname
  • shared/util: Guess size when sysconf() returns -1
  • shared/util: Implement mountpoint checking
  • shared/util: More snap handling logic
  • shared/util: Shift xattr ACLs uid/gid
  • shared/util: Sync ParseLXDFileHeaders with master
  • shared/version: Add helper to get platform-specific versions
  • shared/version: Only include kernel version, not build id
  • tests: Add a test for read-only disks
  • tests: Add new dependencies
  • tests: Add performance regression tests
  • tests: Add storage helpers
  • tests: Add support for LXD_TMPFS to perf.sh
  • tests: Add test for disallowing hostid in subuid
  • tests: Also measure batch startup time in perf.sh
  • tests: bump image auto update limit to 20min
  • tests: Clear database state in the mock daemon after each lxdSuiteTest
  • tests: Don't attempt to finger public remotes
  • tests: Don't copy running lvm/ceph containers
  • tests: Fix bad raw.lxc test
  • tests: Fix dependency check
  • tests: Fix image_auto_update test
  • tests: Fix image expiry test
  • tests: Fix shell return value masking
  • tests: Function to include storage backends helpers
  • tests: include lvm in image auto update
  • tests: More apparmor presence checking
  • tests: Refactor cleanup functions
  • tests: Setup basic channel handler for triggers
  • tests: Skip apparmor tests when no kernel support
  • 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: Support running individual testify test suites
  • tests: Switch to new storage helpers
  • tests: Update perf.sh to "lxd-benchmark launch"
  • tests: use "--force" everywhere on stop
  • tests: Use in-memory db for tests (makes them faster)
  • tests: Use testimage for perf testing
  • tests: Validate that the right busybox is present
  • tests: Wait up to 2 minutes for image updates

Downloads

The release tarballs can be found on our download page.