LXD 5.0.1 LTS has been released

Introduction

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

This is the first bugfix release for LXD 5.0 which is supported until June 2027.

Upgrade notes

Changes to vsock API (LXD VMs)

As part of the work on the bi-directional vsock interface (see below), we noticed the our TLS arrangement for host to guest communications inside of LXD VMs was quite broken.

Nothing that would be a concern from a security standpoint as the server and client authentication were all done correctly, but for some reason we were doing TLS over TLS which doubled the overhead for no good reason and actually prevented the REST/HTTP layer from accessing details about the client.

This release fixes this issue by updating both LXD and the VM agent to only do a single layer of TLS. Unfortunately, this isnā€™t something we could handle in a backwards compatible wayā€¦

As a result, upon upgrading to LXD 5.0.1, agent communication will break with all running virtual machines. This will affect lxc exec and lxc file. Restarting the affected VMs with lxc restart will correct this by having the VM restart with an updated version of the agent.

WORKAROUND: Itā€™s possible to manually replace the lxd-agent binary with a refreshed version inside of the guest. Either doing this proactively (it will break communication until LXD is updated) or after the fact through SSH or text console access. The steps assuming a systemd system are:

  • systemctl stop lxd-agent
  • Replace /run/lxd_agent/lxd-agent with the new version of the binary
  • mount -o bind /bin/true /lib/systemd/lxd-agent-setup
  • systemctl start lxd-agent

Bugfixes and improvements

This release includes a couple of months worth of bugfixes and minor improvements from the development branch.

Some of the highlights include:

  • Addition of a total field on the storage volume state.
  • Add support for HEAD method on file API.
  • Expose PCI VPD data in the resources API.
  • New raw.qemu.conf configuration key for virtual machines.
  • Support for fscache in the cephfs storage driver.
  • Bi-directional communication channel for virtual machines.
  • Support for fetching storage volume data across projects.

The full list of commits is available below:

Detailed changelog
  • doc: move networking content to new files
  • doc: add new files to the networking docs
  • doc: move network-peers
  • doc: move network-acls
  • doc: move network-forwards
  • doc: move network-zones
  • doc: clean up headings for networking section
  • doc: update and add content for networking
  • doc: add links to network_ovn_peers
  • doc: add links to network_zones
  • doc: add links to network_forwards
  • doc: add links to network_acls
  • doc: general cleanup
  • doc: general cleanup network_acls
  • doc: general cleanup network_forwards
  • doc: general cleanup network_zones
  • lxd/storage/btrfs: Fix usage nested
  • lxd/instance/qemu: Fix bad topoext logic
  • lxc: Fix typo in notes
  • lxd/networks: Removes references to nodes in user facing errors
  • lxd/networks: Clone per-node config on networksPostCluster
  • lxd/storage/pools: Removes references to nodes in user facing errors
  • lxd/db/storage/pools: Renames StoragePoolNodeConfigKeys to NodeSpecificStorageConfig
  • lxd: db.NodeSpecificStorageConfig usage
  • lxd/cluster/config: Remove legacy server level storage settings defaults
  • lxd/cluster/config: Remove deprecatedStorage
  • lxd/storage/utils: Removes ValidName
  • lxd/storage/pool/interface: Adds Type interface
  • lxd/storage/pool/load: Adds LoadByType function
  • lxd/storage/backend/mock: Adds ValidateName function
  • lxd/storage/backend/lxd: Adds ValidateName function
  • lxd/storage/utils: Improve validation of rsync.bwlimit
  • lxd/storage/backend/lxd: Validate earlier in Create
  • lxd/storage/pools/utils: Updates storagePoolValidate to use poolType.ValidateName
  • lxd/storage/volumes/snapshot: Updates storagePoolVolumeSnapshotsTypePost to use pool.ValidateName
  • lxd/storage/utils: Unexport some variables now unused outside of storage package
  • lxd/storage/pool/interface: Adds Validate signature
  • lxd/storage/backend/lxd: Adds Validate function
  • lxd/storage/backend/mock: Adds Validate function
  • lxd/storage/backend/lxd: Call b.ValidateName in Create
  • lxd/storage: size is not a common pool option
  • lxd/storage/drivers/driver/common: Removes pool name from validatePool errors
  • lxd/storage/pools: Donā€™t call storagePoolValidate from storagePoolsPostCluster
  • lxd/storage/pools: Call pool.Validate directly in doStoragePoolUpdate
  • lxd/storage/pools/utils: Call poolType.Validate in storagePoolValidate
  • lxd/storage/pools/config: Remove legacy storagePoolConfigKeys and storagePoolValidateConfig
  • lxd/storage/pools: Clone per-node config in storagePoolsPostCluster
  • lxd/storage/pools/utils: Whitespace in storagePoolDBCreate
  • lxd/storage/pools/utils: Expand arg types to storagePoolDBCreate
  • lxd/storage/pools/utils: Use revert in storagePoolCreateGlobal
  • lxd/storage/pools/config: Remove file
  • lxd/storage/pools/utils: Removes call to storagePoolFillDefault in storagePoolDBCreate
  • lxd/storage/pools/utils: Rely on pool.Create to fill default pool config in storagePoolCreateLocal
  • lxd/storage/drivers/utils: Adds loopFileSizeDefault function
  • lxd/storage/drivers: Generate per-node loop file size from loopFileSizeDefault in Create
  • lxd/storage/drivers/driver/lvm/utils: Adds lvmThinpoolDefaultName constant
  • lxd/storage/drivers/driver/lvm: Populate lvm.thinpool_name if not specified in Create
  • lxd/storage/utils: Removes unused functions and variables
  • lxd/storage/pool/load: Removes unused CreatePool function
  • lxd: Fix typo in notes
  • doc/rest-api: Refresh swagger YAML
  • shared: Adds method to remove elements from a slice.
  • lxc: Adds cluster role / commands.
  • i18n: Update translation templates.
  • test: Removes cluster edit where possible.
  • lxd/db/generate/db/method/v2: Add V2 method generation
  • lxd/db/certificate/projects.mapper: Update generated code
  • lxd/db/certificates: Remove Projects from db Certificate struct
  • lxd/db/certificates.mapper: Update generated code
  • lxd/db: Use ClusterTx with ToAPI for filling reference fields
  • lxd/db/certificates: Pass projects into create/update helpers
  • lxd/db/certificates: Transition to using ClusterTx
  • lxd/events: Use ClusterTx instead of opening new transactions
  • lxd/certificates: Open fewer txes, use API structs for all fields
  • lxd/api/cluster: Update cert projects manually
  • lxd/instance/drivers/qemu: Add serial key to device
  • shared: Add SplitNTrimSpace
  • lxc: Move to shared.SplitNTrimSpace
  • lxd: Move to shared.SplitNTrimSpace
  • lxd/util: Remove SplitNTrimSpace
  • lxd/cluster: Donā€™t overwrite original volatile.evacuate.origin
  • lxd/daemon/images: Renames imageDownloadLock to imageOperationLock
  • lxd/images: Use SmartError when handling error from d.cluster.GetImage
  • lxd/images: Use imageID rather than imageId
  • lxd/images: Add locking on imageDelete
  • shared/api: Add Total field
  • lxd: Add total field to /1.0/storage-pools/{name}/volumes/{type}/{volume}/state API
  • api: storage_volume_state_total
  • lxd/db/generate: Replace ErrNoSuchObject with api.StatusErrorf(http.StatusNotFound)
  • lxd/db: Applies changes to db generator
  • doc/rest-api: Refresh swagger YAML
  • lxd/util/net: Assign default port if no port given
  • lxd/instance/qemu: Allow using external firmware or kernel
  • lxd/instance/drivers: Fix context logging
  • lxd/storage/utils: Use volName in context logging for consistency
  • lxd/storage/volumes/snapshots: Use volName in context logging for consistency
  • lxd/storage/drivers/driver/ceph/utils: Use volName in context logging for consistency
  • lxd/storage/drivers/driver/lvm/volumes: Remove non-thinpool volume activation/deactivation workarounds
  • lxd/storage/drivers/driver/lvm/utils: Updates activateVolume and deactivateVolume to accept Volume type
  • lxd/storage/drivers/driver/lvm: activateVolume and deactivateVolume usage
  • lxd/storage/drivers/generic/vfs: Check for close errors
  • shared/instancewriter/instance/tar/writer: Check for close errors
  • doc: move Sphinx extensions to a separate repo
  • lxd/storage/drivers/volume: Check for unmount errors in MountTask
  • lxd/device/device/utils/disk: Use storageDrivers.TryUnmount without MNT_DETACH in DiskMountClear
  • doc: whitespace changes and reordering content
  • doc: add headings
  • lxd/storage/drivers/utils: Adds debug logging to TryUnmount
  • lxd/instance/qemu: Tweak warning on -bios/-kernel
  • lxd/storage/drivers/driver/lvm/utils: Donā€™t deactivate non-thinpool snapshot volume if parent mounted
  • test: Removes old storage pool driver exclusions
  • lxd/storage/drivers/generic/vfs: Detect close errors in genericVFSMigrateVolume
  • lxd/instance: Fix RuntimeLiblxcVersionAtLeast to handle ~
  • shared: allow EOPNOTSUPP from llistxattr()
  • doc: update BGP server documentation
  • lxd/instance/drivers/driver/qemu: Correctly detect dish source path filesystem
  • lxd/instance/drivers/driver/qemu: Improve disk error context and comments
  • lxd/instance/drivers/driver/qemu: Fixes incorrect FD garbage collection in addDriveConfig
  • lxd/instance/drivers/driver/qemu: Remove unnecessary duplicated stat of disk source
  • lxd/instance/drivers/driver/qemu: Add input checks to addDriveConfig
  • lxd/device/disk: Pass cloud-init:config drive to QEMU using file descriptor
  • lxd/device/disk: Return explicit nil on error in localSourceOpen
  • test/suites/migration: Check optimized refresh
  • lxd/storage/drivers/btrfs: Change how subvolumes are received
  • lxd/storage/drivers/btrfs: Move subvolumes after reception
  • lxd/storage/drivers/btrfs: Update CreateVolumeFromBackup
  • lxd/instance/operationlock: Add update
  • lxd/instance/lxc: Use locking in Update
  • lxd/instance/qemu: Use locking in Update
  • lxd/instance/qemu: Replace container with instance
  • lxd/instance: Reword operationlock errors
  • lxd/migration/wsproto: Check websocket argument
  • lxd/storage/backend: Fix VolumeDBDelete revert
  • lxd/cluster: fix typo in comment
  • test/includes: remove unnessary subshells
  • lxd/api/cluster: Remove duplicated not found error handling
  • lxd/api: Update not found error matching
  • lxd/db: Replaces use of ErrNoSuchObject with api.StatusErrorf(http.StatusNotFound)
  • lxd/db/errors: Removes ErrNoSuchObject constant
  • lxd/db: Donā€™t use ā€œnodeā€ in user facing errors
  • lxd/db/network/zones: Fix query case in GetNetworkZone
  • lxd/operations: Replace use of db.ErrNoSuchObject with api.StatusErrorf(http.StatusNotFound)
  • lxd/response/smart: Remove db.ErrNoSuchObject use
  • lxd/storage/drivers/driver/ceph: Replaces use of db.ErrNoSuchObject with api.StatusErrorf(http.StatusNotFound)
  • lxd/storage/drivers/lvm: Replaces use of errLVMNotFound with api.StatusErrorf(http.StatusNotFound)
  • lxd/backup/backup/config: Default to container instance type if not specified in backup config
  • test: Update backup test error response checks
  • lxd/storage/drivers/zfs: Close stderr after copy
  • doc: order tables alphabetically
  • doc: add IDs for easier linking
  • doc: move content to different files and include
  • doc/network/bridge: move IPv6 prefix section
  • doc/network/bridge: make config table for network_bridge consistent
  • doc/network/ovn: make config table for network_ovn consistent
  • doc/network/macvlan: make config table for network_macvlan consistent
  • doc/network/physical: make config table for network_physical consistent
  • doc/network/sriov: make config table for network_sriov consistent
  • doc: add a reusable note about IP address format
  • doc/network/bridge: add name space and format information for table
  • doc/network/physical: add name space and format information for table
  • doc/network/ovn: add name space and format information for table
  • doc/network/macvlan: add name space and format information for table
  • doc/network/sriov: add name space and format information for table
  • doc/network/physical: add supported features for network_physical
  • doc/network/ovn: add supported features for network_ovn and hide ToC
  • doc/network/bridge: add supported features for network_bridge and hide ToC
  • doc/network/bridge: content updates network_bridge
  • doc/network/ovn: content updates network_ovn
  • doc/network/physical: content updates network_physical
  • doc/network/sriov: content updates network_sriov
  • doc/network/macvlan: content updates network_macvlan
  • doc/network/external: content updates network_external
  • global: Update doc links to /latest
  • README: Use links to public doc pages
  • CONTRIBUTING: Use links to public doc pages
  • lxd/storage/drivers/generic/vfs: Updates genericVFSCopyVolume to not copy block volume files twice
  • lxd/storage/drivers/driver/dir/volumes: Use reverter in CreateVolumeSnapshot
  • lxd/storage/drivers/utils: copyDevice arg type expansion
  • lxd/storage/drivers/utils: Catch file close errors in copyDevice
  • lxd/fsmonitor: Hide permission errors
  • lxd/instance/lxc: Better handle missing apparmor
  • lxd/apparmor/dnsmasq: Support non-snap nesting
  • lxd/apparmor/dnsmasq: Properly handle logpath
  • lxd/instance/qemu: Avoid conflicting vsock IDs
  • lxd/storage/drivers/driver/dir/volumes: Updates CreateVolumeSnapshot to copy block volumes using io.Copy
  • lxd/storage/backend/lxd: Create instance snapshot symlink in CreateInstanceFromCopy
  • api: instance_file_head
  • lxd/daemon: Add support for HEAD
  • lxd/instance_file: Implement HEAD
  • doc/rest-api: Refresh swagger YAML
  • lxd/storage/drivers/utils: Update copyDevice to use low priority dd with 16M byte size and direct i/o
  • lxd: No need to import deprecated syscall
  • lxd/storage/utils: Run qemu-img dd with low priority and 16M buffer
  • lxd/instance/drivers/driver/qemu: Run qemu-img with low priority in Export
  • lxd: Error quoting fixes
  • lxd: Use SmartError rather than NotFound
  • lxd/networks: Donā€™t return os.ErrNotExist from doNetworkGet
  • test: drop dependency on uuidgen
  • lxd-agent: Ignore both trans= and msize= when on virtiofs
  • lxd/instance/qemu: Set msize on 9p
  • lxd/main_forkfile: Update comment
  • shared/idmap: Expose IdmapSet on all platforms
  • shared/subprocess: Add SetUserns
  • lxd/device/disk: Port to SetUserns
  • lxd: Remove forkuserns
  • global: Remove legacy build tags
  • lxd/instance_exec: Improve error on openpty
  • lxd/util: Extend tests for CanonicalNetworkAddress
  • lxd/devlxd: Donā€™t expand format strings
  • tests: Test for format string in devlxd
  • lxd/instance: Prevent deleting volatile keys
  • lxd/instance: Update tests
  • lxd/instance: Donā€™t allow root pool changes
  • tests: Test root disk device pool override
  • tests: Fix typo in storage_profiles test
  • doc: make it explicit that automake is needed to build LXD
  • doc: LXD requires Golan 1.18 now
  • lxd/main_init_interactive: Mention port
  • lxd/db/generate/db/method/v2: Create methods for reference tables
  • lxd/db/projects: Use v2 generator, remove UsedBy/Config fields
  • lxd/db/projects.mapper: Update generated code
  • lxd/db/projects: Populate config in ToAPI
  • lxd/db/projects: Use GetProjectConfig
  • lxd/db/projects: Removed UsedBy handling from db package
  • lxd/storage/drivers/zfs: Check if raw flag can be used
  • lxd/storage/drivers/zfs: Use -w in zfs send if possible
  • shared/subprocess: Fix comment
  • shared/api: Update to new godoc comment
  • client: Update to new godoc syntax
  • lxd/api/project: Add projectUsedBy
  • shared/api/project: Add URL method
  • lxd/storage/volumes/utils: Use api.Project for InstanceList
  • lxd/api/project: Use api.Project over db.Project
  • lxd: manually fetch project Config or use api struct
  • lxd/project/permissions/test: Fix tests
  • lxd/api/project: Return immediately if project is used
  • shared/cert: Update test certs to EC
  • Revert ā€œSkip clustering-related unit tests, see issue #6122ā€
  • lxd: Remove old clustering tests
  • lxd/cluster/connect: Modify ConnectIfInstanceIsRemote to return a client configured with project
  • lxd/instance/console: Use api.NewURL in instanceConsolePost
  • lxd/instance/exec: Use api.NewURL in instanceExecPost
  • lxd: No need to use UseProject() with client from ConnectIfInstanceIsRemote
  • lxd/migrate: Adds migrationControlResponse type
  • lxd/migrate: Update controlChannel to return migrationControlResponse
  • lxd: golint fixes
  • lxd/migrate/instance: migrationControlResponse usage
  • lxd/migrate/storage/volumes: migrationControlResponse usage
  • lxd/device/device/utils/disk: Look for QEMU helpers in /usr/libexec/
  • lxd: Switch to using api.StatusErrorCheck where appropriate
  • lxd/db/generate: Update to use api.StatusErrorCheck
  • lxd/db: Regenerates DB functions
  • lxd/storage/drivers/zfs: send -w is possible since 0.8.0
  • lxd/state: Make InstanceTypes store errors
  • lxd/instance/drivers: Replace SupportedInstanceTypes with DriverStatuses
  • lxd: DriverStatuses usage
  • lxd/instance: Report driver errors
  • lxd/instance/qemu: Improve errors in Info
  • lxd-agent: Fix trans= handling
  • lxd/instance/drivers/driver/qemu: Update Export to use qemu-img convert in direct I/O mode
  • lxd/storage/utils: Updates ImageUnpack to use qemu-img convert in direct I/O mode
  • lxd/storage/drivers/utils: Update copyDevice to open files in read only mode
  • lxd/storage/drivers/driver/dir/volumes: Reduce var scope in CreateVolumeSnapshot
  • lxd/storage/drivers/driver/dir/volumes: Use dd to restore block volumes in RestoreVolume
  • lxd/instance: Enforce a 64 chars device name limit
  • doc/instances: Mention 64 chars limit on device names
  • lxd/device/disk: Drop 27 chars limit
  • lxd/storage/utils: Disable format detection in qemu-img info in ImageUnpack
  • lxd/instance/qemu: Use a hash for long disk names
  • lxd/instance: Fix Update calls for ephemeral instances
  • tests: Add restart test for ephemeral instances
  • test: simplify handling of set -x
  • lxd/db/generate: Donā€™t list bash completion
  • lxd/storage: Forward instance volume state request
  • client: Add GetMetrics
  • lxd/device/proxy: Fix comment typo
  • doc: Remove user-facing mentions of cluster node
  • lxd: Replace local node mentions with local member
  • lxd/api/cluster: Request that projects with restricted.networks be created first in clusterInitMember
  • lxd/init: Re-arrange initDataNodeApply order
  • lxd/init: Error quoting in initDataNodeApply
  • lxd/init: Create relevant networks before and after projects in initDataNodeApply
  • test: Check that default project networks are created before projects during cluster member join
  • doc/reference/network/bridge: Clarify ipv{n}.nat default value added when creating networks
  • lxd/instance/drivers/driver/qemu: Catch stateful resume errors in Snapshot
  • test: fix copy-n-paste error
  • lxd/instance/drivers/driver/qemu: Pass nvram file by FD and make writable by QEMU process
  • lxd/console: Move PTS logic to LXC driver
  • lxd/instance/qemu: Switch to socket for console
  • lxd/apparmor: Treat ramfs the same as tmpfs
  • lxd/network/driver/sriov: Mark network as available on successful start
  • lxd/storage/drivers/zfs: Fix optimized refresh in migration
  • lxd/storage/drivers/zfs: Delete volume before copying
  • test/suites/migration: Run optimized refresh test
  • lxd-agent: Enable gorilla UseEncodedPath
  • lxd-agent: Unescape URL path variables
  • lxd: Enable gorilla UseEncodedPath
  • lxd: Unescape path URL variables
  • lxd/instance/drivers/driver/qemu: Centralise logic for UEFI architecture detection
  • lxd/instance/drivers/driver/qemu: Only use NVRAM firmware template on UEFI architectures
  • lxd/instance/drivers/driver/qemu/templates: Removes duplicated arch check in qemuDriveFirmware
  • lxd/network/zone/zone: Improve validation of network zone name
  • test: Improve network zone tests
  • test/suites/migration: Add more refresh tests
  • shared/api: Add Profiles field to ImageExportPost
  • client: Support for profiles in image copying
  • doc/rest-api: Refresh swagger YAML
  • gateway: Separate, smaller timeout for client request
  • lxd/instance/drivers: Ensure that devices are added and removed in the correct order
  • lxd/storage/drivers/volume: Still attempt to unmount on task error in MountTask
  • lxd/storage/drivers: Be explicit with logic brackets
  • shared/util/linux: report ā€œDetected poll(POLLNVAL) eventā€ at debug level
  • shared/util/linux: fix typos in comments
  • shared/util/linux: drop trailing ā€œ.ā€ in logs
  • lxd/internal: Coding style
  • lxd/db/query: Coding style
  • lxd/main_interactive: Fix bad servername
  • lxc/copy: Add description of modes
  • lxc/move: Add description of modes
  • i18n: Update translation templates
  • lxd/init: Eliiminate serverName
  • lxc/utils: Fix bad error string
  • i18n: Update translation templates
  • lxd/instance/qemu: Donā€™t timeout during migration
  • test: restore ā€œset -xā€ at the end of respawn_lxd()
  • lxd/db/generate/db/parse: Add ParsePackage
  • lxd/db/generate: Use sql.Tx param for generated functions
  • lxd/db/generate/db/stmt: Parse any imported package
  • test: avoid unbound var if cleanup() is called early on
  • lxd/storage/drivers/driver/lvm/volumes: Fix restoration of block volume snapshots
  • lxd/storage/drivers/driver/lvm/utils: Use 100%ORIGIN as size for non-thin snapshots
  • lxd/instance/drivers/driver/qemu: Removes unused return var from unmount
  • lxd/storage/drivers/driver/lvm/utils: Code style in activateVolume
  • lxd/storage/drivers/driver/lvm/volumes: Restrict var scope in volDevPath
  • lxd/storage/drivers/generic/vfs: Catch unmount errors in genericVFSBackupUnpack
  • lxd/sys: Fix vsockID detection
  • test: Donā€™t leave files behind
  • lxd/storage: Allow parallel writes in qemu-img
  • lxd/storage/drivers: Extend CephMonitors
  • lxd/storage/cephfs: Simplify use of CephMonitors
  • lxd/device/disk: Simplify cephfs handling
  • lxd/db: Specify cluster package in generator comments
  • lxd/db/projects.mapper: Remove Certificates/Projects from db package
  • lxd/db/cluster/projects: Add cluster package db entities
  • lxd/db/cluster/projects.mapper: Generate cluster package methods/stmts
  • lxd/db/db/unified: Add unified DB struct
  • lxd/state/state: Use unified DB struct
  • lxd/db/db: Store cluster statements in global map
  • lxd/db/transaction: Add Tx method
  • lxd/db/db: Add ctx to cluster.Transaction
  • lxd: Use new DB type and Transaction method
  • lxd/tests: fix tests
  • lxd/db/generate/db/lex: Fix adjective pluralization
  • Cluster: use gateway context for client.Leader requests
  • lxd/db/query/transaction: Removes TransactionCtx and updates Transaction to take a context
  • Cluster: granular locking in Gateway.Handlerfuncs
  • lxd: query.Transaction usage
  • lxd/db/query: Gets both schema and data from sqlite.
  • lxd/db/query: Updates tests for refactored dump functions.
  • lxd: Updates SQLGet handler for refactored SQL dump.
  • test/suites/sql: Removes test for schema table data when getting schema only.
  • test: rename unused var to ā€œ_ā€
  • lxd/db/query: Return the table schema sql verbatim from sqlite_master.
  • lxd/db/query: Dumps all entities in sqlite_master table.
  • lxd/db/query: Updates tests to remove quotes.
  • lxd/db/query: Adds index to test schema and dump output.
  • lxd/sql: Do not format output of .dump and .schema.
  • test/sql: Adds some checks to ensure other db schema entities are captured.
  • lxc: Replace 20.04/Focal Fossa by 22.04/Jammy Jellyfish
  • doc: Replace 20.04/Focal Fossa by 22.04/Jammy Jellyfish
  • shared/api: Replace 20.04/Focal Fossa by 22.04/Jammy Jellyfish
  • lxd/db: Replace 20.04/Focal Fossa by 22.04/Jammy Jellyfish
  • doc/rest-api: Refresh swagger YAML
  • i18n: Update translation templates
  • lxd: Moves swagger response definitions to response package.
  • test/suites/static_analysis: Modifies deadcode exception to new dir.
  • lxd/seccomp/seccomp: Fix comment on HandleSchedSetschedulerSyscall
  • lxd/cgroup/abstraction: Adds GetEffectiveMemoryLimit function
  • doc: move content and add headings
  • lxd/db/generate/file/write: Support adding build comments
  • lxd/db: Specify build comments in generator comments
  • lxd/db/generate/file/write: Add interface flag
  • lxd/db/warnings: Add interface flag to generator comments
  • shared/cert: Adds method for returning the public key as an x509 cert.
  • lxd/cgroup/file: Fix incorrect path matching for /init.scope in NewFileReadWriter
  • lxd/instance/drivers/driver/lxc: cg.GetEffectiveMemoryLimit usage in Metrics
  • test: Fix start_external_auth_daemon to work with git 2.34.1
  • lxd/db/generate/db: Returns a status error on create if entry already exists.
  • doc: whitespace changes
  • lxd/db/cluster: Regenerates schema.
  • doc: update documentation for integrating with systemd-resolved
  • lxd/db/generate: Returns status error if delete operation affects zero rows.
  • lxd/db/cluster: Regenerates database files.
  • lxd/device/disk: Handle long paths in virtiofsd
  • gomod: Update github.com/canonical/go-dqlite to v1.11.1
  • lxd/resources: Handle nested devices
  • lxd/instance/drivers/driver/lxc: Update deviceRemove to accept a device.Device
  • lxd/instance/drivers/driver/qemu: Update deviceRemove to accept a device.Device
  • client: Move image profile override to ImageCopyArgs
  • doc: check for inclusive language
  • github: Re-organize workflows
  • github: Add DCO check
  • github: Split static builds from tests
  • github: Add branch target test
  • github: Run commit tests on target
  • github: Fix commit checks
  • doc: add a JSON file that defines the doc versions
  • doc: add a version switcher to the docs
  • lxc/file: Fix edit in snap environment
  • lxd/storage/drivers/driver/lvm/utils: Donā€™t try and deactive snapshot non-thin volume if parent volume in use
  • lxd/instance/drivers/driver/lxc: Removes unmounted return var from unmount
  • lxd/storage/pool/interface: Remove unmounted indicator from UnmountInstance and UnmountInstanceSnasphot
  • lxd/storage/pool/backend/mock: Remove unmounted indicator from UnmountInstance and UnmountInstanceSnasphot
  • lxd/storage/pool/backend/lxd: Remove unmounted indicator from UnmountInstance and UnmountInstanceSnasphot
  • lxd/instance/drivers/driver/lxc: pool.UnmountInstance and pool.UnmountInstanceSnapshot usage
  • lxd/instance/drivers/driver/qemu: pool.UnmountInstance usage
  • lxd/device/disk: Updates applyQuota with MountInstance usage
  • lxd/storage/utils: Updates InstanceUnmount to not return unmounted indicator
  • lxd/storage/drivers/generic/vfs: Comment typo
  • shared/api: nowadays various types of certs are accepted
  • doc/rest-api: Refresh swagger YAML
  • gomod: Update dependencies
  • shared/api: Add Mode to ClusterMemberStatePost
  • doc/rest-api: Refresh swagger YAML
  • lxc/storage: Show volume total size
  • i18n: Update translation template
  • lxd/storage/drivers/btrfs: Delete volume after receiving new one
  • lxd/storage/drivers/btrfs: Check length of snapshots slice
  • test: Extend refresh migration tests
  • shared/cancel: Renames Canceler to HTTPRequestCanceller.
  • doc: mention that ECDSA cert generation requires openssl 1.1.0+
  • lxd/storage/utils: Improve logging in ImageUnpack
  • lxd/storage/drivers/driver/common: Adds allowUnsafeResize argument to runFiller
  • lxd/storage/drivers/driver/btrfs/volumes: runFiller usage
  • lxd/storage/drivers/driver/ceph/volumes: d.runFiller usage
  • lxd/storage/drivers/driver/cephfs/volumes: d.runFiller usage
  • lxd/storage/drivers/driver/dir/volumes: d.runFiller usage
  • lxd/storage/drivers/driver/lvm/volumes: d.runFiller usage
  • lxd/storage/drivers/driver/zfs/volumes: d.runFiller usage
  • shared/cancel: Adds simple Canceller type wrapping a context.Context.
  • lxc/delete: Validate all instances exist
  • i18n: Update translation templates
  • lxd/storage/drivers/btrfs: Modify received UUID
  • lxd/storage/drivers/btrfs: Set Received UUID
  • test: Extend migration refresh test
  • client/util: Add timeouts to tlsHTTPClient
  • client/util: Add timeouts to unixHTTPClient
  • lxd/cluster/tls: Add timeouts to tlsTransport
  • lxd/main/shutdown: Increase default timeout in cmdShutdown
  • lxd/util/http: Adds timeouts in HTTPClient
  • lxd/vsock/vsock: Adds timeouts in HTTPClient
  • shared/cert: Adds timeouts in GetRemoteCertificate
  • lxd/certificates: Simplify non-admin check
  • lxd/certificates: Comment the logic a bit
  • lxd/certificates: Move duplicate cert detection
  • doc: Fix typos
  • server.crt referred to as lxd.crt in the prometheus config file
  • doc: headings and whitespace
  • doc: change to ā€œMachine in the middleā€
  • doc: add exceptions for inclusive language
  • doc: update doc for OVN peer routing relationships
  • doc: update firewall configuration documentation
  • doc: add a section about LXD and Docker
  • shared/network: Always return 0 on error
  • lxd/utils: Improve errors in instancesExist
  • lxd/device/disk: Improve error in validateConfig
  • lxd/utils: Check snapshots only once in instancesExist
  • i18n: Update translation templates
  • doc: Fix typo
  • lxd: Prevent use of instance/snapshot name in instance specific routes
  • doc: document how to handle SAN vs target name mismatch in Prometheus sample
  • lxc/list: Donā€™t skip extra info when name filtering
  • doc: rework doc for setting up OVN
  • lxd/certificates: Fix token request validation
  • doc: add a Discourse link about simple streams
  • lxc/config_trust: revoke-token requires a name, not a token
  • i18n: Update translation templates
  • lxd/project: Fix bad error on invalid instance type
  • lxc/config_trust: update help when client should be singular
  • lxc/config_trust: clarify help for join token creation
  • i18n: Update translation templates
  • lxd/daemon: Fix LXD crash is failing to start due to already running LXD process
  • lxd/request: Export CtxKey type and use for all keys.
  • lxd/storage/drivers/driver/zfs/volumes: Simplifies UnmountVolume
  • lxd/storage/drivers/driver/lvm/volumes: Simplifies UnmountVolume
  • lxd/storage/drivers/driver/ceph/volumes: Simplifies UnmountVolume
  • lxd/storage/drivers/volumes: v.driver.MountVolumeSnapshot usage in MountTask
  • lxd/storage/drivers/interface: Removes ourMount indicator from MountVolumeSnapshot
  • lxd/storage/backend/lxd: b.driver.MountVolumeSnapshot usage
  • lxd/storage/drivers/driver/mock: Updates MountVolumeSnapshot
  • lxd/storage/driver/driver/btrfs/volumes: Adds ref counting to MountVolumeSnapshot
  • lxd/storage/drivers/driver/ceph/volumes: Adds ref counting to MountVolumeSnapshot
  • lxd/storage/drivers/driver/cephfs/volumes: Adds ref counting to MountVolumeSnapshot
  • lxd/storage/drivers/driver/dir/volumes: Adds ref counting to MountVolumeSnapshot
  • lxd/storage/drivers/driver/lvm/volumes: Adds ref counting to MountVolumeSnapshot
  • lxd/storage/drivers/driver/zfs/volumes: Adds ref counting to MountVolumeSnapshot
  • lxc/config: no name shown when editing the instanceā€™s config
  • i18n: Update translation templates
  • api: resources_pci_vpd
  • shared/api: Add VPD to PCI in resources
  • lxd/resources: Fix comment
  • lxd/resources: Add PCI VPD support
  • doc/rest-api: Refresh swagger YAML
  • lxd/response: Adds nolint directive for deadcode.
  • lxd: Removes unused test function (deadcode).
  • lxd/network/openvswitch/ovn: Pass --wait=sb when using ovn-nbctl
  • lxd/network/driver/ovn: Fix cleanup of bridge mappings of physical OVS parent
  • lxd/storage/backend/lxd: Restore instance snapshot volume config and description
  • test: Adds tests for restoration of instance volume snapshot config
  • test: Run snapshot naming tests for all storage pool types
  • shared/instance: Adds volatile.apply_nvram config key
  • lxd/instance/drivers/driver/qemu: Regenerate nvram on next start when security.secureboot profile config is changed
  • doc/instances: Documents VM volatile.apply_nvram setting
  • test/static_analysis: Adds golangci-lint and runs deadcode.
  • lxd/resources: Handle negative CPU indexes
  • lxc/config_device: Add extra example to device add
  • i18n: Update translation templates
  • lxc/profile: Add cross-project copy
  • lxd: Increase client header timeout from 30s to 1 hour
  • client: Increase header timeout from 30s to 1 hour
  • shared/cert: Increase header timeout from 30s to 1 hour
  • lxc/config_device: Fix small typo
  • i18n: Update translation templates
  • tests: Test project profile copy
  • lxd/storage/utils: Updates DB functions to take Pool interface argument
  • lxd/storage/utils: Updates VolumeDBSnapshotsGet to align with other DB function arguments
  • lxd/migrate/storage/volumes: storagePools.VolumeDBSnapshotsGet usage
  • lxd/storage/backend/lxd: Update DB function usage to pass Pool
  • lxd/storage/backend/lxd: Updates UpdateInstanceBackupFile to use VolumeDBGet
  • lxd/storage/backend/lxd: Preallocate snapshot slice in UpdateInstanceBackupFile
  • lxd/db/storage/volumes: Populate content type and config in GetLocalStoragePoolVolumeSnapshotsWithType
  • lxd/storage/backend: Populate instance storage volume snapshots in UpdateInstanceBackupFile
  • lxd/backup: Switch to storagePools.VolumeDBGet in volumeBackupCreate
  • lxd/backup: Updates volumeBackupWriteIndex to use storagePools.VolumeDBSnapshotsGet
  • lxd/db/storage/volumes/snapshots: Removes unused function GetStorageVolumeSnapshotsNames
  • lxd/storage/backend/lxd: Updates BackupCustomVolume to use VolumeDBSnapshotsGet
  • lxd/images: Remove references to cluster node in user facing error messages
  • lxd/db/query/transaction: Start errors with capital letter
  • lxd/backup: Whitespace
  • lxd/backup: Populate volume config in backupWriteIndex
  • test: Add tests for checking that storage volume records are exported and restored from backups
  • lxd/storage/utils: Adds removeUnknownKeys argument to VolumeDBCreate
  • lxd/storage/backend/lxd: VolumeDBCreate updated usage
  • lxd/storage/backend/lxd: Updates CreateInstanceFromMigration to strip unknown storage volume config keys
  • lxd/storage/backend/lxd: Donā€™t strip unknown storage volume keys for same pool copies in CreateCustomVolumeFromCopy
  • lxd/storage/backend/lxd: Updates CreateCustomVolumeFromMigration to strip unknown storage volume config keys
  • lxd/storage/backend/lxd: VolumeDBCreate updated usage when stripping unknown storage volume config keys
  • lxd/storage/backend/lxd: Updates CreateInstanceFromBackup to use storage volume config from backup
  • lxd/storage/backend: Copy snapshot config for same-pool copies in CreateCustomVolumeFromCopy
  • lxd/storage/backend/lxd: Use snapshot volume config when restoring custom volume in CreateCustomVolumeFromBackup
  • test: Add tests to check snapshot volume config is restored from backup
  • lxc/config_trust: Fix single argument trust remove
  • i18n: Update translation templates
  • lxd/filter: Support case insensitive and regular expresions
  • client: Add support for server-side filtering for CLI list commands
  • lxc/list: Use server-side filtering for list command
  • lxc/image: Use server-side filtering for list command
  • lxc/storage_volume: Use server-side filtering for list command
  • lxc/utils: Add structHasField and getServerSupportedFilters
  • i18n: Update translation templates
  • Revert ā€œlxc/config: no name shown when editing the instanceā€™s configā€
  • shared/api: Mark ExpandedConfig and ExpandedDevices fields as omitempty
  • lxc/config: Exclude expanded config from edit screen
  • lxd/filter/value: Fix parsing of yaml tags in ValueOf
  • i18n: Update translation templates
  • test: Check instance name in edit screen
  • lxd/resources: Handle unreadable VPD
  • lxd/device: Add rbd format constants
  • lxd-agent/state: Handle cgroup v2 cpu usage
  • lxd-agent/state: Use /proc/meminfo
  • lxd/device: Add DiskGetRBDFormat
  • lxd/device: Add DiskParseRBDFormat
  • lxd/storage/drivers/ceph: Add cluster and user name constants
  • lxd/storage/drivers/ceph: Use constants
  • lxd/device/disk: Use ceph constants
  • lxd/instance/drivers/qmp: Add AddSecret
  • lxd/storage/drivers/ceph: Add CephGetRBDImageName
  • lxd/instance/drivers/qemu: Use QEMU rbd driver if possible
  • lxd/device/disk: Use rbd syntax for rbd volumes
  • lxd/storage/drivers/ceph: Fix typo
  • lxd/instance/drivers/qemu: Handle rbd root devices
  • lxd/instance: Fix auto-snapshot on restricted projects
  • lxd/instance/qemu: Fix ceph username key
  • lxd/instance/qemu: Fix ceph volname in projects
  • test: Add additional tests for checking volume snapshot config is copied
  • lxd/storage/volume: Use source snapshot volume config when copying to new volume in cmdStorageVolumeCopy
  • lxd/storage/volume: Fix move of snapshot in cmdStorageVolumeCopy
  • test: Adds check that source snapshot config is used when copying snapshot to new volume
  • lxd/cluster/heartbeat: Improve heartbeat logging
  • doc: add link to YouTube video for network ACLs
  • lxd-agent/devlxd: Donā€™t expand format strings
  • lxd/instance/drivers/qemu: Set conf option in rbd driver
  • lxd/storage/pool/interface: Add GenerateInstanceBackupConfig definition
  • lxd/storage/backend/mock: Adds GenerateInstanceBackupConfig definition
  • lxd/storage/backend/lxd: Splits UpdateInstanceBackupFile into GenerateInstanceBackupConfig
  • lxd/backup: Updates backupWriteIndex to use pool.GenerateInstanceBackupConfig
  • lxd/storage/pool/interface: Adds GenerateCustomVolumeBackupConfig definition
  • lxd/storage/backend/mock: Adds GenerateCustomVolumeBackupConfig function
  • lxd/storage/backend/lxd: Adds GenerateCustomVolumeBackupConfig function
  • lxd/backup: Updates volumeBackupWriteIndex to use pool.GenerateCustomVolumeBackupConfig
  • lxd/backup: Move config struct into own package to use in non-cgo applications
  • lxd/api/internal: backup.ConfigToInstanceDBArgs usage
  • lxd/api/internal/recover: backupConfig usage
  • lxd/api/internal/recover: backup.ConfigToInstanceDBArgs usage
  • lxd/backup/backup/info: config.Config usage
  • lxd/instance/instance/utils: backup.ConfigToInstanceDBArgs usage
  • lxd/migrate/storage/volumes: Switch to using pool.GenerateCustomVolumeBackupConfig
  • lxd/storage/backend/lxd: backupConfig.Config usage
  • lxd/storage/backend/mock: backupConfig.Config usage
  • lxd/storage/pool/interface: backupConfig.Config usage
  • lxd/storage/backend/lxd: Fix incorrect revert in ImportCustomVolume
  • lxd/instance/drivers/qemu: Fix ceph conf filename
  • lxd/storage/drivers: Handle seek errors
  • lxd/storage/backend/lxd: Handle error from vol.MountTask in detectUnknownCustomVolume
  • lxd/storage/backend/lxd: Handle srcVol.MountTask errors
  • lxd-generate: Explictly ignore rows.Close error in defer.
  • lxd/db: Regenerate database methods.
  • tests: Test stateless migration
  • client: Checks or explicitly ignores errors.
  • fuidshift: Checks or explicitly ignores errors.
  • lxd/db/generate/db/stmt: Use join tag value instead of hardcoded ā€˜nameā€™
  • lxc: Checks or explicitly ignores errors.
  • lxc-to-lxd: Checks or explicitly ignores errors.
  • lxd-agent: Checks or explicitly ignores errors.
  • lxd-benchmark: Checks or explicitly ignores errors.
  • lxd-migrate: Checks or explicitly ignores errors.
  • lxd-user: Checks or explicitly ignores errors.
  • shared: Checks or explicitly ignores errors.
  • test/macaroon-identity: Explicitly ignores errors.
  • lxd/apparmor: Checks or explicitly ignores errors.
  • lxd/archive: Checks or explicitly ignores errors.
  • lxd/backup: Checks or explicitly ignores errors.
  • lxd/bgp: Checks or explicitly ignores errors.
  • lxd/cluster: Checks or explicitly ignores errors.
  • lxd/config: Checks or explicitly ignores errors.
  • lxd/db: Checks or explicitly ignores errors.
  • lxd/device: Checks or explicitly ignores errors.
  • lxd/dns: Checks or explicitly ignores errors.
  • lxd/endpoints: Checks or explicitly ignores errors.
  • lxd/events: Checks or explicitly ignores errors.
  • lxd/firewall: Checks or explicitly ignores errors.
  • lxd/fsmonitor: Checks or explicitly ignores errors.
  • lxd/instance: Checks or explicitly ignores errors.
  • lxd/maas: Checks or explicitly ignores errors.
  • lxd/metrics: Checks or explicitly ignores errors.
  • lxd/migration: Checks or explicitly ignores errors.
  • lxd/network: Checks or explicitly ignores errors.
  • lxd/operations: Checks or explicitly ignores errors.
  • lxd/rbac: Checks or explicitly ignores errors.
  • lxd/resources: Checks or explicitly ignores errors.
  • lxd/response: Checks or explicitly ignores errors.
  • lxd/rsync: Checks or explicitly ignores errors.
  • lxd/storage: Checks or explicitly ignores errors.
  • lxd/sys: Checks or explicitly ignores errors.
  • lxd/task: Checks or explicitly ignores errors.
  • lxd/util: Checks or explicitly ignores errors.
  • lxd/seccomp: Checks or explicitly ignores errors.
  • lxd/ip: Checks or explicitly ignores errors.
  • lxd: Checks or explicitly ignores errors.
  • test: Adds errcheck linter and list of excludes.
  • i18n: Updates translations.
  • lxd/storage/backend/lxd: Fix argument logging name in MigrateCustomVolume and CreateCustomVolumeFromMigration
  • lxd/storage/backend/lxd: Fix refresh of non existent volume in CreateCustomVolumeFromMigration
  • test: Add checks for custom storage volume refresh
  • doc/storage: Add CEPHFS to table
  • docs: Typo in ovn docs
  • lxd: Add allowInconsistent to migration fields.
  • lxd: Default allowInconsistent to false for snapshots.
  • lxd: Pass allowInconsistent to migration source on instance post.
  • lxd/storage/drivers: Optionally ignore rsync error 24 for local copy.
  • lxd/storage/drivers: Updates calls to genericVFSCopy.
  • lxd/storage/drivers: Add allowInconsistent to CreateVolumeFromCopy on driver interface.
  • lxd/storage: Pass allowInconsistent into driver.CreateVolumeFromCopy.
  • lxd: Use allowInconsistent for pool and project migrations.
  • lxd/instances/post: Handle unknown errors in createFromMigration
  • lxd/migration: Updates proto buf version
  • lxd/migration/utils: Adds IndexHeaderVersion to migration header
  • lxd/migration/utils: Updates comments on constant to indicate index header may be sent first
  • lxd/migration/utils: Adds IndexHeaderVersion constant
  • test: Adds cross pool checking of storage volume snapshot config population
  • lxd/migration/migration/volumes: Adds IndexHeaderVersion to VolumeSourceArgs and VolumeTargetArgs
  • lxd/migration/migration/volumes: Adds InfoResponse struct
  • lxd/storage/backend/lxd: Updates CreateCustomVolumeFromCopy to use srcPool.GenerateCustomVolumeBackupConfig
  • lxd/storage/backend/lxd: Add support for migration index header and response in MigrateCustomVolume and CreateCustomVolumeFromCopy
  • lxd/migrate/storage/volumes: Add support for migration index frame for custom volume migration
  • lxd/storage/backend/lxd: Update RefreshCustomVolume to use srcPool.GenerateCustomVolumeBackupConfig
  • lxd/storage/utils: Removes unused syncSnapshotsVolumeGet function
  • test: Expand test_storage_local_volume_handling tests to check for custom volume refresh
  • test: Add checks for custom storage volume config copy in migration
  • lxd/storage/drivers: Adds allowInconsistent argument to RefreshVolume.
  • lxd/storage: Pass allowInconsistent flag into volume refresh call.
  • lxd/instance/qemu: Implement qemuBaseSections
  • lxd/instance/qemu: Replace qemuBase template with qemuBaseSections
  • lxd/bgp: Enable multihop
  • doc: move content to different files
  • doc: add a link to the YouTube video on BGP
  • lxd/apparmor: Add mknod cap to archive
  • lxd/instance/qemu: Fix some variable names to match code style
  • doc: remove duplicate entries
  • doc: spell out configuration option
  • doc: fix capitalization of Ceph, CephFS, Btrfs, LVM and ZFS
  • lxd/sys: Add ReleaseInfo
  • lxd/api: Switch to OS struct for release info
  • lxd/api: Reduce number of DB queries
  • lxd/sys: Move KernelVersion from state
  • lxd/sys: Add Uname
  • lxd/cluster/config: Split to separate package
  • lxd/state: Add global configuration
  • lxd/cluster/config: Update for golint
  • lxd: Update for config function names
  • lxd/daemon: Setup globalConfig
  • lxd/api_cluster: Reduce calls to State
  • lxd/daemon_config: Use GlobalConfig
  • lxd/api_1.0: Update daemon config
  • lxd/state: Add ServerName
  • lxd/daemon: Fill ServerName
  • lxd/api_1.0: Use state variables
  • lxd/api: Donā€™t access DB on every request
  • lxd/storage_volumes_snapshot: Port to State config
  • lxd/instance_post: Port to State config
  • lxd/cluster: Port to State config
  • lxd/instances_post: Port to State config
  • lxd/images: Port to State config
  • lxd/cluster/config: Add MetricsAuthentication
  • lxd/api_metrics: Avoid needless DB calls
  • lxd/network: Disable IPv6 on bridges with no IPv6 address
  • lxd/db/snapshots: Add by-ID
  • lxd/db/snapshots: Add GetLocalExpiredInstanceSnapshots
  • tests: Donā€™t route IPv6 on network without IPv6
  • lxd/instance/lxc: Reduce DB calls in Metrics
  • lxd/cluster/config: Update test for new package
  • lxd/api_cluster: Update serverName on bootstrap/join
  • lxd/state: Initialize GlobalConfig in testing struct
  • lxd/cluster: Update for State config
  • lxd/daemon: Use Mutex around globalConfig and serverName
  • lxd/api_cluster: Use Mutex around serverName
  • lxd/instance: Use GetLocalExpiredInstanceSnapshots
  • lxd/storage_volumes_snapshots: Donā€™t trigger expiry task on load
  • lxd/db/storage_volumes_snapshots: Skip snapshots with NULL expiry
  • lxd/events/connections: Add EventListenerConnection interface
  • lxd/events: Implement websocketListenerConnection
  • lxd/events: Implement streamListenerConnection
  • lxd/events/common: Remove unused WriteMessage function
  • lxd/events: Use EventListenerConnection in listenerCommon
  • lxd/devlxd: Support http streaming
  • lxd-agent/events: Support http streaming
  • lxd: Use EventListenerConnecion
  • lxd/events: s/heartbeat/start/
  • test/deps/devlxd-client: Add stream monitor
  • test: Add devlxd http stream
  • gomod: Update dependencies
  • i18n: Update translations from weblate
  • lxd/db/cluster/profiles.mapper: Add cluster.Profile and generated methods
  • lxd/db/cluster/profiles: Add ToAPI and GetProfileIfEnabled
  • shared/api/profile: Add profile URL method
  • lxd/db: Port GetStoragePoolVolumesWithType to ClusterTx
  • lxd/storage_volumes_snapshots: Update to ClusterTx
  • lxd/main_activateifneeded: Update to ClusterTx
  • lxd/instance: Optimize instance snapshots
  • lxd/resources: Handle ethtool not supported
  • lxc/profile: Fix bad target project handling
  • tests: Fix bad profile copy test
  • lxd/main_forkfile: Change counting model
  • lxd/instance/qemu: Implement qemuMemorySections
  • lxd/instance/qemu: Replace qemuMemory template with qemuMemorySections
  • lxd/instance/qemu: Implement qemuSerialSections
  • lxd/instance/qemu: Replace qemuSerial template with qemuSerialSections
  • lxd/instance/qemu: Implement qemuPCIeSections
  • lxd/instance/qemu: Replace qemuPCIe template with qemuPCIeSections
  • lxd/instance/qemu: Implement qemuSCSISections
  • lxd/instance/qemu: Replace qemuSCSI template with qemuSCSISections
  • lxd/instance/qemu: Implement qemuBalloonSections
  • lxd/instance/qemu: Replace qemuBalloon template with qemuBalloonSections
  • lxd/instance/qemu: Implement qemuRNGSections
  • lxd/instance/qemu: Replace qemuRNG template with qemuRNGSections
  • lxd/instance/qemu: Implement qemuVsockSections
  • lxd/instance/qemu: Replace qemuVsock template with qemuVsockSections
  • lxd/instance/qemu: Implement qemuGPUSections
  • lxd/instance/qemu: Replace qemuGPU template with qemuGPUSections
  • lxd/instance/qemu: Implement qemuKeyboardSections
  • lxd/instance/qemu: Replace qemuKeyboard template with qemuKeyboardSections
  • lxd/instance/qemu: Implement qemuTabletSections
  • lxd/instance/qemu: Replace qemuTablet template with qemuTabletSections
  • lxd/instance/qemu: Refactor qemuBaseSections to struct opts arg
  • lxd/events/common: Ignore connection close errors in Close
  • doc: move content around
  • lxd/instance/qemu: Implement qemuCPUSections
  • lxd/instance/qemu: Replace qemuCPU template with qemuCPUSections
  • lxd/instance/qemu: Implement qemuControlSocketSections
  • lxd/instance/qemu: Replace qemuControlSocket template with qemuControlSocketSections
  • lxd/instance/qemu: Implement qemuConsoleSections
  • lxd/instance/qemu: Replace qemuConsole template with qemuConsoleSections
  • lxd/instance/qemu: Implement qemuDriveFirmwareSections
  • lxd/instance/qemu: Replace qemuDriveFirmware template with qemuDriveFirmwareSections
  • lxd/events: Use cancel.Canceller for done indicator
  • doc: add and update content
  • doc: allow center-aligning table cells
  • doc: fix version numbers in the version switcher
  • lxd/db/profiles: Keep minimal db.Profile
  • lxd: Use new cluster.Profile methods
  • lxd/main/test: Update tests
  • lxd/db/cluster/instances.mapper: Generate cluster package methods for instances
  • shared/api/instance: Add Instance URL method
  • lxd/profiles: Add profileUsedBy
  • lxd/db/db: Fill cluster PreparedStmts in ForLocalInspection
  • lxd/instance/lxc: Stop forkfile on restore
  • lxd/operations/operations: Renames Run to Start
  • lxd: op.Start usage
  • lxd/operations/operations: Renames WaitFinal to Wait, and adds context support
  • lxd/operations: op.Wait usage
  • lxd/operations/operations: Fix possible races on accessing status property
  • lxd/operations/operations: Store operation error as error type rather than string
  • lxd/operations/operations: Use contextual logging
  • client/operations: Get error text verbatim in setupListener
  • lxd/images: Fix bug with operation run function returning empty error in imageExportPost
  • lxd/state: Adds ServerName field placeholder for non-cgo builds
  • lxd/operations/linux: Removes getServerName function
  • lxd/operations/operations: Used cached state.ServerName rather than looking up server name for every operation
  • lxd/db/node: Fix crash in nodes by avoiding reusing the rows var in defer
  • lxd/instance/qemu: Implement qemuDriveConfigSections
  • lxd/instance/qemu: Replace qemuDriveConfig template with qemuDriveConfigSections
  • lxd/instance/qemu: Implement qemuDriveDirSections
  • lxd/instance/qemu: Replace qemuDriveDir template with qemuDriveDirSections
  • lxd/instance/qemu: Implement qemuPCIPhysicalSections
  • lxd/instance/qemu: Replace qemuPCIPhysical template with qemuPCIPhysicalSections
  • lxd/instance/qemu: Implement qemuGPUDevPhysicalSections
  • lxd/instance/qemu: Replace qemuGPUDevPhysical template with qemuGPUDevPhysicalSections
  • lxd/storage/backend/lxd: Donā€™t close migration socket on error
  • lxd/instance/qemu: Implement qemuUSBSections
  • lxd/instance/qemu: Replace qemuUSB template with qemuUSBSections
  • lxd/instance/qemu: Implement qemuTPMSections
  • lxd/instance/qemu: Replace qemuTPM template with qemuTPMSections
  • doc: update info on how to grow a ZFS pool
  • doc: use the same order for drivers
  • doc: storage: add a how-to for creating a storage pool
  • doc: storage: move examples for creating a storage pool
  • doc: storage: clean up and align examples
  • lxd/instance/drivers/driver/qemu: Donā€™t reference absolute times in op.Reset comments
  • lxd/instance/operationlock/operationlock: Adds ResetTimeout for custom reset timeouts
  • lxd/instance/drivers/driver/lxc: Use ticker in Shutdown operation lock keepalive
  • lxd/instance/drivers/driver/qemu: Use ticker in Shutdown operation lock keepalive
  • lxd/instance/drivers/driver/lxc: Use operationlock.TimeoutShutdown in onStop
  • lxd/instance/drivers/driver/qemu: Use operationlock.TimeoutShutdown in onStop
  • lxd/storage/drivers/driver/zfs/volumes: Use operationlock.TimeoutShutdown in UnmountVolume
  • lxd/instance/drivers/driver/lxc: Reworks revert clean up in FileSFTPConn
  • lxd/instance/drivers/driver/lxc: Removes double call to defer in stopForkfile
  • lxd-agent: Consistent use of revert name
  • lxd: Consistent use of revert name
  • lxd-migrate: Consistent use of revert name
  • shared: Consistent use of revert name
  • lxd/instance/operationlock/operationlock: Adds ActionCreate constant
  • lxd/instance/instance/utils: Use ActionCreate operation lock constant in CreateInternal
  • lxd/instance/instance/interface: Adds LockExclusive definition
  • lxd/instance/drivers/driver/lxc: Log path in IdmappedStorage
  • lxd/instance/drivers/driver/lxc: Improve comment in FileSFTPConn
  • lxd/instance/drivers/driver/lxc: Implement LockExclusive
  • lxd/instance/drivers/driver/qemu: Whitespace in Restore
  • lxd/instance/drivers/driver/qemu: Implement LockExclusive
  • lxd/instance: Use inst.LockExclusive in instanceCreateAsCopy
  • lxd/instances/post: Use inst.LockExclusive in createFromMigration
  • lxd/instances/post: Removes duplicated in createFromCopy
  • lxd/storage/drivers/driver/zfs/volumes: Fix comment
  • lxd/daemon/images: Use contextual logging in imageOperationLock
  • lxd/instance/qemu: Move common test run code into a separate function
  • doc: storage: add examples for CephFS
  • doc: storage: add ā€œsourceā€ option for all storage drivers
  • doc: storage: Clarify driver names
  • lxd/instance/qemu: Remove usage of a temporary strings.Builder instance
  • lxd/instance/qemu: Remove ā€œSectionsā€ suffix from config builders
  • lxd/storage/drivers/zfs: Fix VM migration
  • lxd-agent/events: Ensure connection is closed on function return in eventsSocket
  • lxd: Ensure events connection is closed on function return
  • lxd: Wait for operations to be finished in scheduled tasks
  • lxd/images: Adds imageTaskMu to prevent image related tasks from running concurrently with each other
  • lxd: Contextual logging
  • lxd/operations/operations: Improves comment on Wait
  • test: Rename FIX ME to FIXME for consistency with ther FIXMEs
  • lxd/storage/backend/lxd: Moves migration index header send/receive into own functions
  • lxd/migration/migration/volumes: Clarify that Config field only used for custom volumes
  • lxd/storage/backend/lxd: Improve error in CreateInstanceFromMigration
  • lxd/storage/backend/lxd: Fix bug in CreateCustomVolumeFromMigration that prevented refreshing volume with custom mount settings
  • doc: storage: add information about clustering
  • doc: storage: add instructions for adding storage volumes
  • shared: Export the Msg field in RunError
  • lxd/archive: Restore squashfs unpack behavior
  • doc/howto/ovn: Fix incorrect config syntax
  • lxd/events: Update API description
  • doc/rest-api: Refresh swagger YAML
  • doc: storage: clarification about sharing of storage volumes
  • lxd/instance/qemu: Support running inside a LXD container
  • lxd/operations: Fix crash on nil state
  • chore: Set permissions for GitHub actions
  • chore: Included githubactions in the dependabot config
  • lxd/instance/drivers: Moves away from accepting a revert argument
  • lxd/instance: Updates Create and create to return a revert.Hook rather than accept a revert.Reverter argument
  • lxd/instance: Updates CreateInternal to return a revert.Hook rather than accept a revert.Reverter argument
  • lxd: Use revert.Hook rather than func() where a revert hook is returned
  • lxd: instance.CreateInternal usage
  • lxd/network: Return revert.Hook rather than revert.Reverter for cleanup
  • lxd/device/nic/bridged: Improve comment on setupHostFilters
  • lxd/storage/drivers/driver/btrfs/volumes: Return revert.Hook rather than revert.Reverter for cleanup
  • lxd/device/device/utils/disk: Return revert.Hook after file handle in DiskVMVirtfsProxyStart
  • lxd: Use cleanup rather than revertExternal naming
  • lxd/api/internal/recover: Moves away from accepting a revert argument in internalRecoverImportInstance
  • lxd/device/nic/ovn: Moves away from accepting a reverter as an argument in setupHostNIC
  • lxd/storage/drivers: Donā€™t defer calls to revert.Success
  • lxd/storage/drivers/driver/zfs/volumes: Return revert.Hook rather than revert.Reverter for cleanup
  • lxd: Change RunConfig.Revert to revert.Hook type
  • lxd: instance.CreateInternal usage in tests
  • lxd/instance/test: Update TestContainer_LoadFromDB to use RenderFull for equality check
  • lxd/storage/pool/load: Fix error handling bug in Patch
  • lxd/storage/utils: Better error in VolumeDBGet
  • lxd/storage/backend/lxd: Add logging to ApplyPatch
  • lxd/patches: Better logging in apply
  • lxd: Adds storage_missing_snapshot_records patch
  • test: Adds tests for instance volume snapshot DB record recovery
  • build(deps): bump actions/setup-go from 2 to 3
  • build(deps): bump actions/labeler from 3 to 4
  • build(deps): bump actions/checkout from 2 to 3
  • build(deps): bump actions/upload-artifact from 2 to 3
  • chore(deps): Included dependency review
  • github: Move depsreview to tests
  • github: Move woke test to ubuntu-latest
  • lxd/migrate/storage/volumes: Only choose sourceā€™s index header version if target supports it
  • lxd/storage/backend/lxd: Fix index migration header format
  • lxd/storage/backend/lxd: Improve logging of index migration header send/receive
  • lxd/storage/drivers: Improve log and error messages related to driver specific migration frames
  • lxd/storage: Expand arg names in logging
  • lxd: Donā€™t return migration error until after its been sent to remote
  • lxd/storage/backend/lxd: Improve pre migration checks in MigrateCustomVolume
  • lxd/migrate_storage_volumes: Make sender aware of refresh
  • doc: Update for new myst_parser
  • lxd-user: Move away from atomic
  • lxd-user: Use getent instead of os/user
  • lxd/certificates: Require an address for token issuance
  • lxd/instance/qemu: Drop bootIndex from PCI
  • lxc/network_forward: Fix example
  • i18n: Update translation templates
  • lxd/cgroup: Better handle broken CGroupV2 setups
  • lxd/migration: Add Refresh to InfoResponse
  • lxd/storage: Return InfoResponse from migrationIndexHeaderSend
  • lxd/storage: Use Refresh from InfoResponse
  • lxd/storage/backend: Add refresh arg to migrationIndexHeaderReceive
  • test/suites: Enable migration test for zfs
  • lxd/storage/drivers/btrfs: Fix volumeSnapshotsSorted
  • lxd/storage/drivers/btrfs: Donā€™t rely on passed snapshots
  • lxd/storage/drivers/zfs: Handle MultiSync with optimized refresh
  • lxd/migration: Add VolumeOnly to source and target args
  • lxd: Use VolumeOnly field when migrating
  • lxd/storage/drivers/btrfs: Check VolumeOnly when migrating
  • lxd/storage: Use VolumeOnly field when migrating
  • lxd/storage/drivers/zfs: Use VolumeOnly migration field
  • lxd/instance/drivers: Improve error messages
  • lxd/instance/drivers/driver/qemu: Fix typo in qemuCreate
  • lxd/migrate/instance: Updates snapshotToProtobuf to accept api.InstanceSnapshot
  • lxd/migrate/instance: Updates migrationSink.Do to use updated snapshotToProtobuf
  • lxd/migrate/instance: snapshotToProtobuf usage
  • lxd/migrate/instance: Improve error handling and logging in migrationSourceWs.Do
  • lxd/migrate/instance: Improve error handling and logging in migrationSink.Do
  • lxd/backup: Donā€™t allow writing backup index file for snapshot instances in backupWriteIndex
  • lxd/storage/backend/lxd: Relax validation in GenerateInstanceBackupConfig to allow generating config for instance snapshots
  • lxd/migrate/instance: Switch to using pool.GenerateInstanceBackupConfig in migrationSourceWs.Do
  • lxd/migrate/instance: Setup migration.VolumeSourceArgs in one go
  • lxd/storage/backend/lxd: Expand arg names in logging in migrationIndexHeaderSend
  • lxd/storage/backend/lxd: Additional logging in migrationIndexHeaderReceive
  • lxd/storage/backend/lxd: Fix error message in migrationIndexHeaderSend
  • lxd/storage/backend/lxd: Removes unnecessary/duplicated checks in CreateCustomVolumeFromMigration
  • lxd/storage/backend/lxd: Reduce indentation in CreateCustomVolumeFromMigration
  • lxd/storage/backend/lxd: CreateCustomVolumeFromMigration comment improvements
  • lxd/migrate/storage/volumes: Simplify snapshot config generation in migrationSourceWs.DoStorage
  • test: Add check that instance volume config is copied for both same pool and cross-pool copies
  • lxd/storage/backend/lxd: Adds index migration header support to CreateInstanceFromCopy
  • lxd/storage/backend/lxd: Adds index migration header support to RefreshInstance
  • lxd/storage/backend/lxd: Adds index migration header support to MigrateInstance and CreateInstanceFromMigration
  • lxd/migrate/instance: Update migrationSourceWs.Do to support migration index header
  • lxd/migrate/instance: Update migrationSink.Do to support migration index header
  • lxd/instance/post: Fix comment in instancePostClusteringMigrateWithCeph
  • lxd/instance/post: Include required migration source config in instancePostClusteringMigrateWithCeph
  • test: Updates incremental_copy to check for volume and snapshot volume config copying
  • github: Only run dependencies check on PR
  • tests: Skip EDITOR=cat when not a terminal
  • doc: fix indentation for commands
  • lxd/instance/qemu: Implement granular control of qemu.conf output
  • scripts/bash: Add raw.qemu.conf
  • api: qemu_raw_conf
  • doc/instances: Add raw.qemu.conf
  • doc/instances: Add section about raw.qemu.conf
  • fixup! doc/instances: Add section about raw.qemu.conf
  • fixup! doc/instances: Add section about raw.qemu.conf
  • doc: add link to video about network forwards
  • lxd/db/generate/db/method/v2: Expect collections for generated reference methods
  • lxd/db/generate/db/method/v2: Add newLine flag to ifErrNotNil
  • lxd/db/cluster/mapper: update generated code
  • lxd/profiles: Update usage of CreateProfileDevices
  • lxd/db/cluster/profiles: Make GetProfileIfEnabled GetProfilesIfEnabled
  • lxd/db/cluster/instances: cluster.Instance generator comments/helpers
  • lxd/db/cluster/instances.mapper: Update generated code
  • lxd/db/instances: Remove db.Instance and generator comments
  • lxd/db/instances.mapper: Remove unused generator files
  • lxd/db/cluster/snapshots: Minimal cluster.Snapshot
  • lxd/db/instances: Instance and Snapshot Conversions
  • lxd/db/instances: Use InstanceToArgs in InstanceList
  • lxd/db/instances: Reference cluster package for ClusterTx helpers
  • lxd/db/images: ClusterTx method for fetching images by fingerprint prefix
  • lxd/db/cluster/profiles: Add expanded config/devices helpers to cluster package
  • lxd/api/project: UsedBy and URIs for projects
  • lxd/backup/backup/config/utils: Fetch api.Profiles in ConfigToInstanceDBArgs
  • lxd/storage/volumes/utils: Update usages of InstanceList
  • lxd/storage/migration: Fetch api.Profiles for migration InstanceArgs
  • lxd/instance/instance/interface: Store api.Profile instead of profile names
  • lxd/instances/post: Update helper usages for new cluster package syntax/args
  • lxd/profiles/utils: Update remainining helper usages
  • lxd/project/permissions: Use api.Instance for instance info
  • lxd/instance/instance/utils: Explicit args to instance_profiles
  • lxd/db/db: Remove urlsToResourceNames
  • lxd/db/profiles: Remove unused functions
  • lxd/project/permissions/test: Fix tests
  • lxd/db/cluster/snapshots: Add missing build constraints
  • lxd/db/cluster/snapshots: Add full snapshot generator comments and ToInstance helper
  • lxd/db/cluster/snapshots.mapper: Update generated code
  • lxd/db/snapshots: Remove db.Snapshot and generator comments
  • lxd/db/snapshots.mapper: Remove generated code
  • lxd/db/cluster/images: Add cluster.Images
  • lxd/db/cluster/images.mapper: Update generated code
  • lxd/db/images: Remove db.Images and generator comments
  • lxd/db/images.mapper: Remove generated code
  • shared/api/image: Add URL method
  • lxd/api/project: Use api.URL for project usedBy images
  • lxd/sys: Add BootTime
  • shared/util_linux: Refactor GetMeminfo
  • lxd/cgroup: Handle no swap limit
  • lxd: Update helper usages for cluster.Image syntax/args
  • lxd/db/images/test: Fix tests
  • lxd: Update usages for cluster.InstanceSnapshot
  • lxd/db/snapshots/test: Fix tests
  • lxd/db/node: Remove db.Config and db.Device types
  • lxd/db/generate/db/parse: Allow all types as columns
  • lxd/db/operationtype/operation/type: Create operationtype package
  • lxd/db/cluster/operations: Add cluster.Operations
  • lxd/db/cluster/operations.mapper: Update generated code
  • lxd/db/operations/types: Remove db.Operations and OperationType
  • lxd: Update OperationType usages
  • lxd: Update cluster.Operation usages
  • lxd/db/operations/test: Fix tests
  • lxd/instance/drivers/driver/common: Moves StoragePool into public section
  • lxd/instance/drivers: Moves deviceLoad into common
  • lxd/instance/drivers: Moves deviceAdd into common
  • lxd/instance/drivers: Moves deviceRemove into common
  • lxd/instance/drivers/driver/qemu: Bring deviceStop inline with lxc signature
  • lxd/instance/drivers: Removes updateDevice and moves updateDevices into common
  • lxd/instance/drivers: Rename updateDevices to devicesUpdate for consistency with other function names
  • lxd/instance/drivers: Deduplicates device add logic into common devicesAdd function
  • lxd/instance/drivers: Deduplicates RegisterDevices by adding devicesRegister to common
  • lxd/instance/drivers: Use consistent error messages for device load failures
  • lxd/instance/drivers: Deduplicates device remove logic by adding devicesRemove to common
  • lxd/instance/drivers/driver/common: If device is unsupported for instance donā€™t return usable device in deviceLoad
  • lxd/instance/drivers: Simplify error checks in cleanupDevices
  • lxd/instance/drivers/driver/common: Simplify error checks in devicesRemove
  • lxd/instance/drivers/driver/common: Simplify error checks in devicesAdd
  • lxd/instance/drivers/driver/common: Simplify error checks in devicesRegister
  • lxd/instance/drivers/driver/common: Simplify error checks in devicesUpdate
  • lxc/storage_volume: Fix usage strings
  • i18n: Update translation templates
  • doc: storage: expand configuration documentation
  • doc: storage: clarify requirements for attaching volumes
  • doc: storage: add information on listing pools and volumes
  • doc: storage: add information about copying or moving volumes
  • lxd/profiles/utils: Add missing profiles slice check
  • lxd/network/zone: Add SOA
  • lxd/dns: Add support for SOA
  • lxd/daemon: Update for SOA support
  • client: Fixes gosimple lint errors.
  • lxc: Fixes gosimple lint errors.
  • lxd-agent: Fixes gosimple lint errors.
  • shared: Fixes gosimple lint errors.
  • lxd/cluster: Fixes gosimple lint errors.
  • lxd/db: Fixes gosimple lint errors.
  • lxd/device: Fixes gosimple lint errors.
  • lxd/dns: Fixes gosimple lint errors.
  • lxd/dnsmasq/dhcpalloc: Fixes gosimple lint errors.
  • lxd/events: Fixes gosimple lint errors.
  • lxd/firewall/drivers: Fixes gosimple lint errors.
  • lxd/fsmonitor/drivers: Fixes gosimple lint errors.
  • lxd/instance: Fixes gosimple lint errors.
  • lxd/ip: Fixes gosimple lint errors.
  • lxd/lifecycle: Fixes gosimple lint errors.
  • lxd/maas: Fixes gosimple lint errors.
  • lxd/migration: Fixes gosimple lint errors.
  • lxd/network: Fixes gosimple lint errors.
  • lxd/project: Fixes gosimple lint errors.
  • lxd/resources: Fixes gosimple lint errors.
  • lxd/revert: Fixes gosimple lint errors.
  • lxd/rsync: Fixes gosimple lint errors.
  • lxd/seccomp: Fixes gosimple lint errors.
  • lxd/storage: Fixes gosimple lint errors.
  • lxd/util: Fixes gosimple lint errors.
  • lxd: Fixes gosimple lint errors.
  • static-analysis: Enables gosimple linter.
  • lxd/instance/drivers: Fix potential LXD crash when starting device fails to load
  • lxd/device/nic/bridged: Moves address conflict detection into own checkAddressConflict function
  • lxd/device/nic/bridged: Update checkAddressConflict to return a conflict api.StatusError on conflicting address
  • lxd/instance/drivers/driver/common: Allow instances to be created and updated with conflicting devices
  • tests: Add tests for conflicting instance device validation behaviour
  • lxd/migrate/instance: Use the negotiated index migration header version on target
  • lxd/device/nic/bridged: Avoid loading already loaded parent network config in rebuildDnsmasqEntry
  • lxd/network/acl/driver/common: Fix ACL UsedBy Instance type assertion
  • lxd/instance/drivers/driver/common: Use per-loop contextual loggers in devicesUpdate
  • lxd/instance/drivers/driver/common: Remove device if non-user requested update validation fails
  • test: Update bridged NIC checks to expect device removal after non-user requested update validation fails
  • lxd/dnsmasq/dnsmasq: Add DHCPStaticAllocationPath function
  • lxd/device/nic/bridged: Make sure volatile hwaddr is used when writing static DHCP allocation file in Add
  • lxd/device/nic/bridged: Detect missing static DHCP lease file at start and create if needed
  • test: Add tests for creating missing bridged DHCP static lease file at NIC start time
  • lxd/device/disk: Fix ceph creds on custom volumes
  • build(deps): bump actions/dependency-review-action from 1 to 2
  • github: Disable dependabot labels
  • doc: fix instructions for substitutions
  • doc: storage: fix format for snapshots.schedule
  • api: storage_cephfs_fscache
  • doc: Add cephfs.fscache
  • scripts: Add cephfs.fscache
  • lxd/network/ovs: Add timeout to nbctl/sbctl
  • shared: Use DialContext.
  • client: Use DialContext.
  • lxd/endpoints: Use DialContext.
  • lxd/instance/drivers: Use DialContext.
  • lxd/util: Use DialContext.
  • lxd: Use DialContext.
  • test/deps: Use DialContext.
  • client: Remove dereferenced memory address.
  • client: Replace nil context with context.TODO.
  • lxc: Ignore deprecation warning for PEM encryption.
  • lxc: Use blank identifier for unused variable.
  • lxc-to-lxd: Replace deprecated GetContainerNames.
  • lxd/cluster: Ignore empty critical section lint error.
  • lxd-generate: Replace deprecated strings.Title.
  • lxd-generate: Uncomment error return for unexported fields.
  • lxd/device: Fix vgpu file permissions.
  • lxd/dnsmasq/dhcpalloc: Prefer net.IP.Equal over bytes.Equal.
  • lxd/endpoints: Use blank identifier for unused variable.
  • lxd/instance/drivers: Remove unnecessary fmt.Sprintf.
  • lxd/network/openvswitch: Remove unnecessary fmt.Sprintf.
  • doc: add link to the YouTube video about network zones
  • shared/logger: Filter event levels for syslog
  • lxd/storage/cephfs: Add cephfs.fscache
  • lxc: List volumes under used-by
  • lxc/storage: Show project and target on info
  • doc: Rename refquota config key name for proper one
  • doc: storage: add --refresh flag for copying volumes
  • doc: storage: how to back up storage volumes
  • doc: instances: clarify units for limits
  • doc: storage: move I/O limits section
  • doc: storage: fix wrong link
  • doc: storage: clarify doc about I/O limits
  • doc: instances: add links for I/O limits and clarifications
  • lxd/network: Fail peer validation if unable to get existing peers from DB.
  • lxd/resources: Use blank identifier for unused variable.
  • lxd/storage/drivers: Use -1 in strings.Replace.
  • lxd/sys: Use NewPid2 (NewPid is deprecated).
  • lxd/util/config: Move unconditional break statement.
  • lxd: Omit unused assignment.
  • lxd: Omit or use blank identifier for unused variables.
  • lxd: Ignore empty branch lint error.
  • lxd: Replace deprecated strings.Title.
  • lxd: Length of a slice cannot be < 0.
  • lxd-agent: Replace deprecated Temporary error.
  • shared/cancel: Use context instead of deprecated http.Request.Cancel.
  • shared/cmd: Replace deprecated terminal package.
  • shared/ioprogress: Remove int % 1 (any int mod 1 is zero).
  • shared/validate: Remove port < 0 (uint cannot be less than zero).
  • shared/version: Replace deprecated strings.Title.
  • shared: Remove unnecessary for loop.
  • shared: Exit test to avoid nil pointer dereference.
  • test/macaroon-identity: Remove assignment to tokenString.
  • test/static-analysis: Includes govet, ineffassign, and staticcheck linters.
  • doc: storage: clean up driver overview page
  • doc: storage: clean up general storage drivers reference
  • lxd/migration: Handle optimized refresh for older versions
  • lxc: Removes unused flags.
  • lxd/events: Removes unused pongsPending field.
  • lxd/response: Ignores lint errors for unused swagger types.
  • lxd/storage/drivers: Removes unused getSubVolumeUUID.
  • lxd: Removes unused struct field.
  • lxd: Removes unused kernelVersion from Daemon.
  • lxd: Removes unused field from cmdDaemon.
  • test/static-analysis: Removes golangci-lint flags.
  • lxd/vsock: Use DialContext in vsock HTTP client.
  • lxd-generate: Revert to deprecated strings.Title.
  • gomod: Update dependencies
  • i18n: Update translations from weblate
  • shared/api: Add event types
  • lxd: Use event type consts
  • shared/api: Add constants for lifecycle events
  • shared/osarch: Fix indirect lock copy
  • doc: storage: clarify moving of storage volumes
  • doc: fix version switcher to work for latest
  • lxd/network/openvswitch: Use %s so that delimiting quotes are not escaped.
  • shared/subprocess/manager: Improve errors in ImportProcess
  • doc: storage: clarify that most docs are about custom volumes
  • doc: fix typo
  • gomod: Switch to github for go-lxc
  • gomod: Update dependencies
  • lxd: Update to github path for go-lxc
  • lxc-to-lxd: Update to github path for go-lxc
  • lxd: Use liblxcā€™s RuntimeLiblxcVersionAtLeast
  • shared/api: Fix typo in event name
  • shared/api: Add missing events
  • shared/api: Sort events
  • doc/events: Add missing events
  • doc/events: Sort entries
  • lxd/lifecycle: Use event names from api package
  • client: End all function comments with a full-stop.
  • client: Fixes imports.
  • lxc/config: End comments with a full-stop.
  • lxc/utils: End comments with a full-stop.
  • lxc/utils: Fix import order.
  • lxc: End comments with a full-stop.
  • lxc: Fixes import order.
  • lxc: Removes unnecessary whitespace.
  • lxc-to-lxd: Ends all comments with a full-stop.
  • lxd/apparmor: Ends all comments with a full-stop.
  • lxd/cgroup: Ends all comments with a full-stop.
  • lxd/bgp: Fixes import order.
  • lxd/cluster/config: Ends all comments with a full-stop.
  • lxd/cluster/config: Removes unnecessary whitespace.
  • lxd/cluster/config: Fixes imports.
  • lxd/cluster: Ends all comments with a full-stop.
  • lxd/cluster: Removes unnecessary whitespace.
  • lxd/cluster: Fixes imports.
  • lxd/config: Fixes imports.
  • lxd/config: Ends all comments with a full-stop.
  • lxd-generate: Ensure generated comments end with a full-stop.
  • lxd/db/cluster: Ends all comments with a full-stop.
  • lxd/db/cluster: Fixes imports.
  • lxd/db/generate/db: Removes unnecessary whitespace.
  • lxd/db/generate/db: Fixes imports.
  • lxd/db/generate/db: Ends all comments with a full-stop.
  • lxd/db/generate/lex: Ends all comments with a full-stop.
  • lxd/db/generate/lex: Fixes imports.
  • lxd/db/generate: Removes unnecessary whitespace.
  • lxd/db/generate: Fixes imports.
  • lxd/db/operationtype: Ends all comments with a full-stop.
  • lxd/db/query: Fixes imports.
  • lxd/db/schema: Ends all comments with a full-stop.
  • lxd/db: Removes unnecessary whitespace.
  • lxd/db: Fixes imports.
  • lxd/db: Ends all comments with a full-stop.
  • lxd/device/nictype: Removes unnecessary whitespace.
  • lxd/device: Ends all comments with a full-stop.
  • lxd/device: Removes unnecessary whitespace.
  • lxd/device: Fixes imports.
  • lxd/dnsmasq: Removes unnecessary whitespace.
  • lxd/endpoints: Fixes imports.
  • lxd/endpoints: Ends all comments with a full-stop.
  • lxd/filter: Fixes imports.
  • lxd/filter: Removes unnecessary whitespace.
  • lxd/firewall/drivers: Ends all comments with a full-stop.
  • lxd/firewall/drivers: Removes unnecessary whitespace.
  • lxd/fsmonitor/drivers: Ends all comments with a full-stop.
  • lxd/instance/drivers/qmp: Ends all comments with a full-stop.
  • lxd/instance/drivers/qmp: Removes unnecessary whitespace.
  • lxd/instance/drivers: Removes unnecessary whitespace.
  • lxd/instance/drivers: Fixes imports.
  • lxd/instance/drivers: Ends all comments with a full-stop.
  • lxd/instance: Ends all comments with a full-stop.
  • lxd/ip: Ends all comments with a full-stop.
  • lxd/lifecycle: Ends all comments with a full-stop.
  • lxd/maas: Ends all comments with a full-stop.
  • lxd/metrics: Ends all comments with a full-stop.
  • lxd/migration: Ends all comments with a full-stop.
  • lxd/network/acl: Removes unnecessary whitespace.
  • lxd/network/openvswitch: Removes unnecessary whitespace.
  • lxd/network/zone: Fixes imports.
  • lxd/network: Removes unnecessary whitespace.
  • lxd/network: Ends all comments with a full-stop.
  • lxd/node: Ends all comments with a full-stop.
  • lxd/node: Fixes imports.
  • lxd/operations: Ends all comments with a full-stop.
  • lxd/operations: Removes unnecessary whitespace.
  • lxd/project: Removes unnecessary whitespace.
  • lxd/project: Ends all comments with a full-stop.
  • lxd/rbac: Ends all comments with a full-stop.
  • lxd/request: Ends all comments with a full-stop.
  • lxd/resources: Ends all comments with a full-stop.
  • lxd/response: Ends all comments with a full-stop.
  • lxd/seccomp: Removes unnecessary whitespace.
  • lxd/seccomp: Fixes imports.
  • lxd/storage/drivers: Ends all comments with a full-stop.
  • lxd/storage/drivers: Removes unnecessary whitespace.
  • lxd/storage/memorypipe: Ends all comments with a full-stop.
  • lxd/storage: Removes unnecessary whitespace.
  • lxd/storage: Ends all comments with a full-stop.
  • lxd/sys: Ends all comments with a full-stop.
  • lxd/sys: Fixes imports.
  • lxd/task: Removes unnecessary whitespace.
  • lxd/task: Fixes imports.
  • lxd/template: Ends all comments with a full-stop.
  • lxd/util: Fixes imports.
  • lxd/util: Ends all comments with a full-stop.
  • lxd/util: Removes unnecessary whitespace.
  • lxd: Fixes imports.
  • lxd: Removes unnecessary whitespace.
  • lxd: Ends all comments with a full-stop.
  • lxd: Fixes misspelling.
  • lxd-agent: Fixes imports.
  • lxd-agent: Removes unnecessary whitespace.
  • lxd-agent: Ends all comments with a full-stop.
  • lxd-benchmark/benchmark: Removes unnecessary whitespace.
  • lxd-migrate: Ends all comments with a full-stop.
  • shared/api: Ends all comments with a full-stop.
  • shared/cancel: Ends all comments with a full-stop.
  • shared/cmd: Ends all comments with a full-stop.
  • shared/dnsutil: Ends all comments with a full-stop.
  • shared/eagain: Ends all comments with a full-stop.
  • shared/i18n: Ends all comments with a full-stop.
  • shared/idmap: Ends all comments with a full-stop.
  • shared/idmap: Fixes imports.
  • shared/ioprogress: Ends all comments with a full-stop.
  • shared/logger: Ends all comments with a full-stop.
  • shared/osarch: Ends all comments with a full-stop.
  • shared/simplestreams: Ends all comments with a full-stop.
  • shared/subprocess: Ends all comments with a full-stop.
  • shared/subprocess: Fixes imports.
  • shared/units: Ends all comments with a full-stop.
  • shared/version: Ends all comments with a full-stop.
  • shared: Ends all comments with a full-stop.
  • shared: Fixes imports.
  • shared: Removes unnecessary whitespace.
  • test/macaroon-identity: Fixes imports.
  • test/macaroon-identity: Ends all comments with a full-stop.
  • golangci: Adds golangci-lint configuration file.
  • doc: add link to YouTube video about image handling
  • lxd/instance/lxc: Donā€™t fail on missing apparmor
  • client: Inserts newlines after blocks.
  • fuidshift: Inserts newlines after blocks.
  • lxc: Inserts newlines after blocks.
  • lxc-to-lxd: Inserts newlines after blocks.
  • lxd-agent: Inserts newlines after blocks.
  • lxd-benchmark: Inserts newlines after blocks.
  • lxd-migrate: Inserts newlines after blocks.
  • lxd-user: Inserts newlines after blocks.
  • shared: Inserts newlines after blocks.
  • test: Inserts newlines after blocks.
  • lxd/archive: Inserts newlines after blocks.
  • lxd/backup: Inserts newlines after blocks.
  • lxd/bgp: Inserts newlines after blocks.
  • lxd/cgroup: Inserts newlines after blocks.
  • lxd/cluster: Inserts newlines after blocks.
  • lxd/config: Inserts newlines after blocks.
  • lxd/db: Inserts newlines after blocks.
  • lxd/device: Inserts newlines after blocks.
  • lxd/dns: Inserts newlines after blocks.
  • lxd/dnsmasq: Inserts newlines after blocks.
  • lxd/endpoints: Inserts newlines after blocks.
  • lxd/events: Inserts newlines after blocks.
  • lxd/filter: Inserts newlines after blocks.
  • lxd/firewall/drivers: Inserts newlines after blocks.
  • lxd/fsmonitor/drivers: Inserts newlines after blocks.
  • lxd/instance: Inserts newlines after blocks.
  • lxd/ip: Inserts newlines after blocks.
  • lxd/maas: Inserts newlines after blocks.
  • lxd/metrics: Inserts newlines after blocks.
  • lxd/migration: Inserts newlines after blocks.
  • lxd/network: Inserts newlines after blocks.
  • lxd/operations: Inserts newlines after blocks.
  • lxd/project: Inserts newlines after blocks.
  • lxd/rbac: Inserts newlines after blocks.
  • lxd/request: Inserts newlines after blocks.
  • lxd/resources: Inserts newlines after blocks.
  • lxd/response: Inserts newlines after blocks.
  • lxd/rsync: Inserts newlines after blocks.
  • lxd/seccomp: Inserts newlines after blocks.
  • lxd/storage: Inserts newlines after blocks.
  • lxd/sys: Inserts newlines after blocks.
  • lxd/task: Inserts newlines after blocks.
  • lxd/util: Inserts newlines after blocks.
  • lxd/vsock: Inserts newlines after blocks.
  • lxd: Inserts newlines after blocks.
  • lxc: Removes all one-line assign and check statements.
  • lxc-to-lxd: Removes all one-line assign and check statements.
  • lxd/backup: Removes all one-line assign and check statements.
  • lxd/cluster: Removes all one-line assign and check statements.
  • lxd-generate: One-line assign and check statements.
  • lxd/db/generate: Removes all one-line assign and check statements.
  • lxd/db/generate: Use multiline import syntax.
  • lxd/db: Removes all one-line assign and check statements.
  • lxd/db: Use multiline import syntax.
  • lxd/config: Use multiline import syntax.
  • lxd/device: Removes all one-line assign and check statements.
  • lxd/device: Use multiline import syntax.
  • lxd/dnsmasq: Removes all one-line assign and check statements.
  • lxd/firewall/drivers: Removes all one-line assign and check statements.
  • lxd/firewall/drivers: Use multiline import syntax.
  • lxd/fsmonitor/drivers: Use multiline import syntax.
  • lxd/instance/drivers: Removes all one-line assign and check statements.
  • lxd/network/acl: Removes all one-line assign and check statements.
  • lxd/network/openvswitch: Removes all one-line assign and check statements.
  • lxd/network: Removes all one-line assign and check statements.
  • lxd/refcount: Removes all one-line assign and check statements.
  • lxd/resources: Removes all one-line assign and check statements.
  • lxd/response: Removes all one-line assign and check statements.
  • lxd/rsync: Removes all one-line assign and check statements.
  • lxd/seccomp: Removes all one-line assign and check statements.
  • lxd/storage/drivers: Removes all one-line assign and check statements.
  • lxd/storage: Removes all one-line assign and check statements.
  • lxd/util: Removes all one-line assign and check statements.
  • lxd/util: Use multiline import syntax.
  • lxd: Removes all one-line assign and check statements.
  • lxd-agent: Removes all one-line assign and check statements.
  • lxd-migrate: Removes all one-line assign and check statements.
  • shared/api: Use multiline import syntax.
  • shared/cancel: Use multiline import syntax.
  • shared/idmap: Removes all one-line assign and check statements.
  • shared/instancewriter: Removes all one-line assign and check statements.
  • shared/termios: Removes all one-line assign and check statements.
  • shared/usbid: Removes all one-line assign and check statements.
  • shared: Removes all one-line assign and check statements.
  • test: Removes all one-line assign and check statements.
  • test/lint: Adds shell based linters.
  • Makefile: Updates static-analysis target.
  • test/suites: Removes static analysis suite.
  • workflows: Adds static analysis job.
  • lxd/network/driver/common: Fix comment typos
  • lxd/db/network/forwards: Fix error handling in GetNetworkForward
  • lxd/network/driver/common: Adds forwardTarget type
  • lxd/network/driver/bridge: Update forwardConvertToFirewallForwards to support new forward target type
  • lxd/network/driver/common: Adds usageType field to externalSubnetUsage
  • lxd/network/driver/common: Update forwardValidate to use forwardTarget type
  • lxd/network/driver/bridge: Update subnet usage to use usageType
  • lxd/network/driver/ovn: Updates to support subnet use usageType field
  • lxd/network/openvswitch/ovn: Updates LoadBalancerApply to support multiple targets via OVNLoadBalancerTarget
  • lxd/network/driver/ovn: Update forwardFlattenVIPs to support updated openvswitch.OVNLoadBalancerVIP
  • lxd/network/driver/ovn: Fix network ForwardUpdate revert
  • test/lint/client-imports: grep for fixed string before sorting
  • test/lint/i18n-up-to-date: move lxd.pot instead of copying it
  • test/lint/mixed-whitespace: only process files with .sh extention
  • test/lint/mixed-whitespace: only process files with .sh extention
  • test/lint/negated-is-bool: use git grep and only check .go files
  • test/lint/newline-after-block: use git ls-files instead of find
  • test/lint/no-short-form-imports: use git grep and avoid early exit
  • test/lint/trailing-space: use git grep and only check .sh files
  • Makefile: use run-parts to run test/lint
  • test/lint: tell git grep to consider tracked and untracked files
  • test/lint: tell git ls-files to consider tracked and untracked files
  • lxd/network/driver/ovn: Inserts newlines after blocks.
  • i18n: Update translation templates
  • test/lint/i18n-up-to-date: donā€™t leave dirty .po files behind
  • workflows: Removes unit tests and reinstates ubuntu client tests.
  • lxd/db/generate/lex: Use cases.Title instead of deprecated strings.Title.
  • lxd/db/generate/db/method/v2: Fix config error handling
  • lxd/db/cluster/mapper: Update generated code
  • doc/ovn: fix steps for OVN cluster setup
  • doc: fix nested ordered lists
  • test: Update test_container_devices_disk_socket to test both start time and hotplug
  • test: Adds test_container_devices_disk_char to check passing char devices as disks
  • workflows/static-analysis: Download but do not update dependencies.
  • gomod: Update dependencies
  • client: Move to bakery.v3
  • lxc: Move to bakery.v3
  • lxd-migrate: Move to bakery.v3
  • lxd: Move to bakery.v3
  • test: Move to bakery.v3
  • gomod: Update dependenies
  • lxd/resources: Handle invalid VPD lengths
  • lxd/response: Fix swagger structs
  • doc/rest-api: Refresh swagger YAML
  • lxd/db/cluster/projects: Improve error in ToAPI
  • lxd/db/instances: Optimise query pattern for InstanceList
  • lxd/db/instance: Remove profiles arg from instanceFunc in InstanceList
  • lxd: InstanceList updated usage
  • lxd-benchmark: Add --project flag
  • lxd/db/instances/test: Specify expected and actual order correctly in TestInstanceList
  • lxd/db/instances: InstanceList
  • lxd/db/instances: Adds InstanceListOpts type to allow retrieving config and devices optional for InstanceList
  • lxd: Update InstanceList usage
  • shared/api: Adds network load balancer types
  • shared/api/event/lifecycle: Adds network load balancer lifecycle constants
  • client/lxd/server: Adds CheckExtension function
  • client: Adds network load balancer functions
  • doc/rest-api: Refresh swagger YAML
  • i18n: Update translation templates
  • doc: Add missing network forward delete section
  • lxd/storage/drivers/volume: Donā€™t use short arguments in NewVolume
  • lxd/storage/backend/lxd: Improve logging in CreateInstanceFromBackup
  • doc/storage: structure configuration options section
  • doc/storage: structure driver notes
  • lxd/instance/qemu: Fix qemuCPU template broken numa section
  • lxd/storage/backend/lxd: Add missing size.state check to UpdateInstance
  • lxd/storage/backend/lxd: Replaces instanceEffectiveRootVolume with applyInstanceRootDiskOverrides
  • lxd/storage/backend/lxd: b.applyInstanceRootDiskOverrides usage
  • lxd/storage/backend: Update b.applyInstanceRootDiskOverrides usage in CreateInstanceFromCopy
  • test: Updates tests to check for instance root disk size not leaking into storage volume DB record
  • lxd-agent: Remove legacy code
  • lxd/vsock: Undo double TLS
  • lxd-agent: Undo double TLS
  • lxd/instance/operationlock: Allow InstanceOperation.Action() to be called on nil InstanceOperation
  • lxd/instance/drivers/driver/lxc: Donā€™t wait for update operation to complete when removing disk from running container
  • Revert ā€œlxd/db/instances: Adds InstanceListOpts type to allow retrieving config and devices optional for InstanceListā€
  • Revert ā€œlxd: Update InstanceList usageā€
  • test: Fixes lint errors for shellcheck 0.8.0.
  • workflows: Installs shellcheck version 0.8.0.
  • Makefile: Warns if shellcheck version is not 0.8.0.
  • doc/storage: add introductions for storage drivers
  • doc/storage: clean up terminology
  • doc/storage: clean up driver notes
  • doc/storage: clean up tables
  • doc/storage/ceph: add information about remote storage
  • doc/storage/cephfs: clarify that the file system must exist
  • doc/instances: add link to NVIDIA video
  • lxd: Replace use of cluster ā€œnodeā€ with ā€œmemberā€ in user facing text
  • doc: add a more complete prometheus.yaml example
  • lxd/db/generate/db/method/v2: Properly attach package name for external calls
  • lxd/db/generate/db/stmt: Allow overriding table name with config key
  • lxd/db/generate/db/method/v2: Limit generated method references to same package
  • lxd/resources: Better handle invalid VPD
  • doc/storage: add tip about volume.* configuration
  • doc/storage: remove limitation about XFS as file system for Ceph
  • doc/storage: remove mentions of ceph.osd.force_reuse
  • doc: Fix use of setup/set up
  • lxd-agent: Always close file
  • lxd-agent: Introduce CONNECTED state
  • shared/api: Add API10Put
  • lxd-agent: Add PUT /1.0 endpoint
  • lxd/endpoints: Add vsock endpoint
  • lxd/vsock: Add port argument to HTTPClient
  • lxd/instance: Add VM interface
  • lxd/instance/drivers: Add advertiseVsockAddress
  • lxd/instance/drivers: Add AgentCertificate
  • lxd/db/instances: Add GetLocalInstanceWithVsockID
  • shared/api: Add VsockServerGet
  • lxd/response: Add devLxdResponse
  • lxd/devlxd: Use response.DevLxdResponse
  • lxd/devlxd: Allow setting hoist function for devlxd server
  • lxd: Add vsock server
  • lxd-agent: Use vsock interface for devlxd
  • lxd/instance/drivers/qemu: Handle LXD-AGENT-READY event
  • lxd/instance/drivers/qmp: Call event handler if lxd-agent becomes ready
  • lxd/instance/drivers/qemu: Remove instance-data file
  • api: Add vsock_api
  • lxd/instance/drivers: Handle security.devlxd config change
  • lxd/endpoints: Update endpoints test
  • lxd/storage: Add poolAndVolumeCommonRules function
  • lxd/storage/drivers: Support common pool and volume configuration options
  • lxd/storage/drivers: Support for propagation of the volume.* configuration options to the new storage volume
  • doc: Update storage config keys propagation
  • tests: Test propagation volume.* config keys for new storage volumes
  • lxd/storage/drivers/driver/ceph: Mark ceph.osd.force_reuse as deprecated
  • scripts/bash/lxd-client: Remove ceph.osd.force_reuse
  • lxc/monitor: Clarify that --log-level can only be used with pretty formatting mode
  • i18n: Update translation templates
  • doc/storage: add a howto for launching instances in a specific pool
  • doc/storage: add howto for resizing storage
  • doc/storage: ā€œsizeā€ option missing for Btrfs & LVM storage pools
  • lxd/storage/drivers/driver/lvm/utils: Fix parse errors when instance not running
  • doc/storage: move content from FAQ to storage section
  • lxd/resources: Better handle ethtool errors
  • lxd/instance/drivers: Handle QEMU I/O errors
  • client: Use 30s HTTP header timeout in GetImageFile and GetPrivateImageFile
  • lxd/daemon/images: Use 30s HTTP header timeout in ImageDownload
  • lxd/instance/drivers/driver/qemu: Fix instance reference leak in getMonitorEventHandler
  • doc: Update cloud-init.md with user-data examples
  • lxd/instance/drivers: Rename LXD-AGENT-READY to LXD-AGENT-STARTED
  • lxd/instance/drivers/qmp: Rename agentReady to agentStarted
  • lxd/instance/drivers: Rename AgenReady to AgentStarted
  • lxd/db/generate/db/method: Fix v1 generator code style
  • lxd/devices: Improve comments in devicesRegister
  • lxd/db/instances: Add support for instancetype.Any to InstanceList
  • lxd/instance/instance/utils: Updates LoadNodeAll to use InstanceList
  • lxd/instance: Updates instanceLoadNodeProjectAll to use InstanceList
  • lxd/cluster/config/config: Adds InstancesNICHostname function
  • lxd/cluster/config/config: Adds BackupsCompressionAlgorithm function
  • lxd/backup: Use s.GlobalConfig.BackupsCompressionAlgorithm
  • lxd/certificates: Updates certificatesPost to use config.TrustPassword
  • lxd/cluster/config/config: Adds NetworkOVNIntegrationBridge function
  • lxd/device/nic/ovn: Use d.state.GlobalConfig.NetworkOVNIntegrationBridge
  • lxd/cluster/config/config: Adds ImagesCompressionAlgorithm function
  • lxd/images: Updates imgPostInstanceInfo to use d.State().GlobalConfig.ImagesCompressionAlgorithm
  • lxd/cluster/config/config: Adds NetworkOVNNorthboundConnection function
  • lxd/network/openvswitch/ovn: Updates NewOVN to use s.GlobalConfig.NetworkOVNNorthboundConnection
  • lxd/instance/drivers/driver/common: Updates MAAS functions to use d.state.GlobalConfig.MAASController
  • lxd/cluster/config/config: Removes unused GetString function
  • lxd/cluster/config/config: Adds ImagesAutoUpdateCached function
  • lxd/instances/post: Updates createFromImage to use GlobalConfig.ImagesAutoUpdateCached
  • lxd/cluster/config/config: Removes unused GetBool function
  • lxd/cluster/config/config: Adds ImagesAutoUpdateIntervalHours function
  • lxd/daemon/images: Updates ImageDownload to use GlobalConfig.ImagesAutoUpdateIntervalHours
  • lxd/images: Updates autoUpdateImage to use GlobalConfig.ImagesAutoUpdateIntervalHours
  • lxd/cluster/config/config: Adds ImagesRemoteCacheExpiryDays function
  • lxd/images: Updates pruneExpiredImagesInProject to use GlobalConfig.ImagesRemoteCacheExpiryDays
  • lxd/cluster/config/config: Removes unused GetInt64 function
  • lxd/cluster/config/config: Removes unused configGet function
  • lxd/storage/utils: Remove unnecessary tx.GetLocalNodeName from VolumeUsedByExclusiveRemoteInstancesWithProfiles
  • lxd/network/network/utils/sriov: Remove unnecessary tx.GetLocalNodeName from SRIOVGetHostDevicesInUse
  • lxd/network/driver/bridge: Remove unnecessary tx.GetLocalNodeName from ForwardCreate
  • lxd/api/cluster: Remove unnecessary tx.GetLocalNodeName from clusterGet
  • lxd/db/node: Adds comment about usage to GetLocalNodeName
  • lxd/events: Remove unnecessary tx.GetLocalNodeName from eventsSocket
  • lxd/instance/instance/utils: Remove unnecessary tx.GetLocalNodeName from CreateInternal
  • lxd/instances/post: Remove unnecessary tx.GetLocalNodeName from createFromCopy
  • lxd/profiles/utils: Remove unnecessary tx.GetLocalNodeName from doProfileUpdate
  • lxd/profiles/utils: Remove unnecessary tx.GetLocalNodeName from doProfileUpdateCluster
  • lxd/storage/backend/lxd: Remove unnecessary tx.GetLocalNodeName from ImportInstance
  • lxd/storage/pools: Remove unnecessary tx.GetLocalNodeName from storagePoolsPostCluster
  • shared/api: Remove non-API structs
  • lxd-agent: Add API package
  • lxd-agent: Update for new API structs
  • lxd: Update for new API structs
  • gomod: Update dependencies
  • Doc: Fix LXD volume group to LVM
  • Remove redundant LXD before ZFS pool
  • Doc: change a LVM to an LVM
  • doc/authentication: add information about a server behind NAT
  • lxc/remote: Allow specifying alternate server address for tokens
  • i18n: Update translation templates
  • lxd/db/warningtype: Move warning type definitions to warningtype package
  • lxd: Update usages of warning types
  • lxd/db/cluster/warnings: Add cluster.Warnings
  • lxd/db/warnings.mapper: Remove db.Warnings and its code generation
  • lxd/db/cluster/warnings.mapper: Update generated code
  • lxd/db/cluster/mapper: Get Images/Certificates by ID
  • shared/api/certificate: Add api.Certificate URL helper
  • lxd/warnings: Add getWarningEntityURL
  • lxd/warnings/warnings: Use cluster package helpers for Warnings
  • lxd/db/warnings.mapper: Remove db package warnings generated files
  • lxd/db/generate: Remove v1 generator
  • lxd/db/cluster: Remove version flag from generator comments
  • lxd/db/warnings: Remove unused types
  • doc/storage: add link to video about benchmarking storage drivers
  • lxd/db/cluster/projects: Move ProjectFeatures and ProjectFeaturesDefaults into cluster package
  • lxd/db/cluster/open: Update EnsureSchema to use ProjectFeaturesDefaults for default project features
  • lxd/api/project: Use cluster.ProjectFeatures and cluster.ProjectFeaturesDefaults
  • lxd/db/network/forwards: Adds context arg to GetNetworkForwards and GetNetworkForward
  • lxd/network: GetNetworkForward and GetNetworkForwards usage
  • lxd/db/network/forwards: Adds optional listenAddresses filter to GetNetworkForwards
  • lxd/db/cluster/stmt: Export Stmt helper
  • lxd/db/cluster: Use exported Stmt helper
  • lxd/db/generate/db/method: Use exported Stmt helper
  • lxd/db/cluster/mapper: Update generated code
  • lxd/db/transaction: Remove Cluster/ClusterTx prepared stmts field
  • lxd/db: Use cluster.Stmt as the only statement store
  • lxd/storage/drivers/driver/lvm/volumes: Fix ā€œlvm.stripes cannot be used with thin pool volumesā€ error
  • shared/api/event/lifecycle: Fix typo in constant
  • lxd: Update response.SyncResponseLocation URL generation to use api.NewURL() helper
  • lxd/storage/volumes: Adds missing volume name to URL response in storagePoolVolumeTypePostRename
  • lxd/lifecycle: Reworks URL generation to use api.NewURL()
  • lxd/lifecycle/cluster/member: Update ClusterMemberAction.Event to use api.NewURL
  • lxd/lifecycle/instance/backup: Updates InstanceBackupAction.Event to clarify what backup name is expected
  • lxd/instance/backup: Pass full backup name to lifecycle.InstanceBackupRetrieved.Event
  • lxd/lifecycle/storage/volume: Make StorageVolumeAction.Event require volume with name and type
  • lxd/lifecycle/storage/volume/backup: Updates StorageVolumeBackupAction.Event to clarify the type of backup name required
  • lxd/storage/volumes/backup: Pass full backup name into lifecycle events
  • lxd/lifecycle/storage/volume/snapshot: Updates StorageVolumeSnapshotAction.Event to expect snapshot volume
  • lxd: Use lifecycle URL in SyncResponseLocation
  • lxd/lifecycle/storage/pool: Remove projectName arg from StoragePoolAction.Event
  • lxd/networks: Adds project to networksPost SyncResponseLocation response
  • lxd/storage/pools: Updates storagePoolsPost to use a common lifecycle var
  • lxd/storage/pools: Fix comment typo in storagePoolsPost
  • lxd/storage/pools: Updates storagePoolPut and storagePoolDelete to use updated lifecycle function
  • lxd/storage/volumes: Adds project to SyncResponseLocation in storagePoolVolumeTypePostRename
  • lxd/db/instances: Donā€™t use query parameters with IN statement when loading instance config in InstanceList
  • lxd/db/instances: Use query.Params in GetProjectAndInstanceNamesByNodeAddress
  • lxd/db/instances: Use query.Params in GetProjectInstanceToNodeMap
  • lxd/db/instances: Use consistent IN format
  • lxd/db/instances: Remove unused generateInClauseParams function
  • lxd/db/network/forwards: Use query.Params in GetNetworkForwards
  • lxd/db/cluster: Donā€™t use prepared statements in RemoveNodeFromClusterGroup and AddNodeToClusterGroup
  • lxd/db/images: Updates getImagesByFingerprintPrefix to use QueryScan rather than prepare
  • lxd/db/transaction: Removes unused prepare function
  • lxd/resources: Fix VPD parser crash
  • doc: add spellcheck
  • doc: add spellchecking to the tests
  • doc: add an extension to allow spelling exceptions
  • doc: update word list for spellchecker
  • doc: fix spelling README.md
  • doc: Update URLs for 5.0 branch
  • doc: fix spelling api-extensions.md
  • doc: fix spelling architectures.md
  • doc: fix spelling backup.md
  • doc: fix spelling events.md
  • doc: fix spelling faq.md
  • doc: fix spelling instances.md
  • doc: fix spelling security.md
  • doc: fix spelling server.md
  • doc: fix spelling network_bridge_resolved.md
  • doc: fix spelling metrics.md
  • doc: fix spelling projects.md
  • doc: fix spelling rest-api.md
  • doc: fix spelling network_bridge.md
  • doc: fix spelling network_macvlan.md
  • doc: fix spelling network_ovn.md
  • doc: fix spelling storage_btrfs.md
  • doc: fix spelling clustering.md
  • doc: fix spelling container-environment.md
  • doc: fix spelling database.md
  • doc: fix spelling dev-lxd.md
  • doc: fix spelling network_acls.md
  • doc: fix spelling userns-idmap.md
  • doc: fix spelling syscall-interception.md
  • doc: fix spelling requirements.md
  • doc: fix spelling remotes.md
  • doc: fix spelling storage_zfs.md
  • doc: fix spelling storage_lvm.md
  • doc: fix spelling storage_drivers.md
  • doc: fix spelling storage_dir.md
  • doc: fix spelling storage_cephfs.md
  • doc: fix spelling storage_ceph.md
  • doc: fix spelling network_sriov.md
  • doc: fix spelling network_physical.md
  • doc: fix spelling network_forwards.md
  • doc: fix spelling network_ovn_peers.md
  • doc: fix spelling network_zones.md
  • doc: fix spelling storage_add_volume.md
  • doc: fix spelling image_handling.md
  • doc: fix spelling migration.md
  • doc: fix spelling production-setup.md
  • doc: exclude some tags from spell checking
  • doc: allow Markdown syntax when we need markup in a link
  • doc: fix spelling authentication.md
  • doc: fix spelling cloud-init.md
  • doc: fix spelling containers.md
  • doc: fix spelling contributing.md
  • doc: fix spelling daemon-behavior
  • doc: fix spelling debugging.md
  • doc: fix spelling doc-cheat-sheet.md
  • doc: fix spelling networks.md
  • doc: fix spelling storage.md
  • doc: fix spelling network_bridge_firewalld.md
  • doc: fix spelling network_ovn_setup.md
  • doc: fix spelling storage_backup.md
  • doc: fix spelling installing.md
  • doc: fix spelling instance-exec.md
  • doc: fix spelling profiles.md
  • doc: fix spelling CONTRIBUTING.md
  • lxd/db/cluster/snapshots: Updates ToInstance to be more flexible
  • lxd: snapshot.ToInstance usage
  • lxd/db/instances: Refactors InstanceList into several smaller functions
  • lxd/db/instances: Adds snapshot support to InstancesToInstanceArgs and associated functions
  • lxd: Use consistent log context name for err
  • lxd/instances/get: Log instance render errors in doInstancesGet
  • lxd: Donā€™t pass duplicate profiles into instance.Load
  • lxd/instance/drivers/driver/common: Updates Snapshots to avoid using tx.GetInstanceSnapshotsWithName
  • lxd/instance/instance/utils: Removes inefficient unused LoadFromAllProjects function
  • lxd/network/driver/ovn: Update Leases to use InstanceList
  • lxd/network/driver/bridge: Updates Leases to use InstanceList
  • lxd/instance/instance/utils: Removes unused LoadByProject function
  • lxd/instance: Reworks autoCreateInstanceSnapshots and autoCreateInstanceSnapshotsTask to use InstancesToInstanceArgs
  • lxd/daemon: Updates usage of autoCreateInstanceSnapshotsTask
  • lxd/instance: Update pruneExpiredInstanceSnapshotsTask to use tx.InstancesToInstanceArgs
  • lxd/instance: Reworks pruneExpiredInstanceSnapshotsTask to use tx.InstancesToInstanceArgs
  • lxd/instance/instance/utils: Removes unused LoadAllInternal function
  • shared/api: Add Ready state
  • shared/api: Add function to get status code from status name
  • lxd/profiles/utils: Updates getProfileInstancesInfo to use tx.InstancesToInstanceArgs
  • docs: Update storage create pool howto
  • lxd/config: Fix expanded show of instance snapshot
  • doc: update version of lxd-sphinx-extensions
  • doc: mark up default values correctly for clustering.md
  • doc: mark up default values correctly for network_zones.md
  • doc: mark up default values correctly for instances.md
  • doc: mark up default values correctly for production-setup.md
  • doc: mark up default values correctly for projects.md
  • doc: mark up default values correctly for network_bridge.md
  • doc: mark up default values correctly for network_macvlan.md
  • doc: mark up default values correctly for network_ovn.md
  • doc: mark up default values correctly for network_physical.md
  • doc: mark up default values correctly for storage_btrfs.md
  • doc: mark up default values correctly for storage_ceph.md
  • doc: mark up default values correctly for storage_cephfs.md
  • doc: mark up default values correctly for storage_dir.md
  • doc: mark up default values correctly for storage_lvm.md
  • doc: mark up default values correctly for storage_zfs.md
  • doc: mark up default values correctly for security.md
  • doc: mark up default values correctly for server.md
  • lxd/network/forwards: Add support for config patching in networkForwardPut
  • lxd/fsmonitor/drivers/errors: Removes unused variable ErrNotImplemented
  • lxd/storage/drivers/driver/common: Adds default ā€œNot supportedā€ functions
  • lxd/storage/drivers/driver/cephfs/volumes: Fall back to using common (ā€œnot supportedā€) RefreshVolume function
  • lxd/storage/drivers/errors: Removes little used ErrNotImplemented
  • lxd/storage/backend/mock: Removes use of drivers.ErrNotImplemented
  • lxd/storage/backend/lxd: Switch to ErrNotSupported in CreateInstanceFromCopy
  • lxd/networks: Restrict network config view to admin users
  • lxd/storage/pools: Restrict storage pool config view to admin users
  • lxd/storage/drivers/driver/btrfs: Scan pool device source for BTRFS filesystems before mounting
  • lxd/db/instances: Adds snapshot support to instanceProfilesFill
  • lxd/db/instances: Adds fillProfiles argument to InstancesToInstanceArgs
  • lxd/instance/instance/utils: Switch to InstancesToInstanceArgs in LoadByProjectAndName
  • lxd/instance/instance/utils: Switch to InstancesToInstanceArgs in CreateInternal
  • lxd/instance/drivers/driver/common: Donā€™t reload snapshot profiles in Snapshots
  • lxd/profiles/util: InstancesToInstanceArgs usage in getProfileInstancesInfo
  • lxd/db/instances: InstancesToInstanceArgs usage in InstanceList
  • lxd/instance: InstancesToInstanceArgs usage in autoCreateInstanceSnapshotsTask
  • lxd/instance: InstancesToInstanceArgs in pruneExpiredInstanceSnapshotsTask
  • lxd/db/instances: Remove inefficient InstanceToArgs function
  • test: Move devlxd-client into its own directory
  • test: Remove source/baz file at end of filemanip test
  • lxd/daemon: Add explicit instancesLoaded bool to indicate if shared mounts can be cleaned up
  • lxd/storage/drivers/utils: Adds loopDeviceSetup and loopDeviceAutoDetach functions
  • lxd/storage/drivers/driver/btrfs: Switch to loopDeviceSetup for loop device management
  • lxd/storage/drivers/driver/lvm: Switch to loopDeviceSetup for loop device management
  • lxd/storage/drivers/utils/cgo: Removes unused file
  • lxd/storage/cgo: Removes unused file
  • doc: update project description
  • doc: update Project and community section
  • shared/util/linux: Fix typo in comment of ExitStatus
  • shared/util/linux: Adds detection of RunError to ExitStatus
  • shared/validate/validate: Adds IsRequestURL function
  • test: Run proxy listener command before adding proxy device
  • test: Sleep longer when starting up proxy listener process after restart
  • client/util: Set transport.DialTLSContext in tlsHTTPClient
  • test: Add retries to udhcpc6 calls
  • test: Add retries to udhcpc calls
  • doc/reference: improve description of storage option
  • test: Keep retrying to signal to container to reboot in basic_usage
  • lxd/profiles/utils: Removes incorrect comment from doProfileUpdateInstance
  • lxd: Fixes API version for instances in project usedby.
  • lxd/db: Fix escaped slashes in storage volume URIs.
  • lxd/cluster/membership: Improve error in membershipCheckClusterStateForAccept
  • lxd/db/cluster: Improve URL generation.
  • client/lxd/cluster: No reason to use queryStruct in DeleteClusterMember
  • gomod: Update dependencies
  • workflows: Adds edge ppaā€™s and removes make deps step.
  • lxd/storage/drivers/zfs: set atime=off and relatime=on
  • doc/reference: fix description of dir source param
  • lxd/cgroup/abstractions: Improve errors from GetIOStats
  • lxd/instance/instance/utils: Updates DeleteSnapshots to use more efficient Snapshots() function
  • lxd/instance/drivers: instance.DeleteSnapshots usage
  • shared/util: Adds context argument to RunCommandSplit, RunCommandInheritFds and RunCommandWithFds
  • shared/util: Adds RunCommandContext and deprecates RunCommand
  • lxd: RunCommand* context usage
  • shared/util: Unexports RunError fields and adds NewRunError function
  • shared/util: NewRunError usage
  • shared/util/linux: Use errors.As in ExitStatus
  • lxd/archive/archive: shared.NewRunError usage
  • lxd: RunError functions usage
  • cgo: ensure that lxd wrappers donā€™t conflict with libc provided wrapper
  • doc/storage/zfs: include link to related YouTube video
  • doc/authentication: clarify what to specify for admin password
  • lxc/remote: the admin password prompt also accepts a token
  • i18n: Update translation templates
  • lxd/instance/drivers: Adds instance type to instance-created lifecycle event context.
  • doc/storage/zfs: {remove_snapshots,use_refquota,reserve_space} are bools
  • lxd/storage/drivers: use SI units
  • lxd/main_init_interactive: use SI units
  • lxd/storage/drivers/utils: Support CentOS 7 in loopDeviceSetup
  • test: Increase storage pool delete timeout to 20s
  • lxd/storage/storage: Adds UsedBy function
  • lxd: Use storagePools.UsedBy function
  • doc/migration: clean up ā€œlive migrationā€ documentation
  • lxd/db/instances: Use stable sorting in GetInstanceSnapshotsWithName
  • lxd/instance/drivers: Use stable sorting
  • lxd/instances/get: Use stable sorting in doInstancesGet
  • lxd/resources/cpu: Use stable sorting in GetCPU
  • shared/api/instance: Adds GetParentAndSnapshotName function
  • shared/api/storage/pool/volume: Adds URL function to StorageVolume
  • lxd/storage/volumes: Fix volume get project resolution in storagePoolVolumeGet
  • lxd/project/project: Update StorageVolumeProjectFromRecord and StorageVolumeProject
  • lxd/db/storage/volumes: Rework GetStoragePoolVolumes to be more efficient
  • lxd/db/storage/volumes: Removes duplicate zero length check in GetStorageVolumeNodes
  • lxd/storage/volumes: Updates storagePoolVolumesGet to use tx.GetStoragePoolVolumes
  • doc: use HTTPS for links to CRIU site and inotify man
  • lxd/storage/volumes: Update storage-pools/{name}/volumes/{type} handler to use storagePoolVolumesGet
  • lxd/storage/volumes: Remove unused storagePoolVolumesTypeGet
  • lxd/storage/volumes: Fix golint error in storagePoolVolumesTypePost
  • lxd/db/storage/volumes: Adds memberSpecific support to GetStoragePoolVolumes
  • lxd/storage/volumes: Adds target member support to storagePoolVolumesGet
  • lxd/db/images: Clarifies argument name in GetImagesFingerprints
  • lxd/db/images: Adds GetProjectsUsingImage function
  • lxd/storage/storage: Reworks UsedBy to use tx.GetStoragePoolVolumes
  • lxd/storage/backend/lxd: UsedBy usage in IsUsed
  • lxd/storage/pools: storagePools.UsedBy usage in storagePoolsGet
  • lxd/storage/pools: storagePools.UsedBy usage in storagePoolGet
  • lxd/db/storage/pools: Removes unused GetStoragePoolUsedBy function
  • shared/api/storage/pool/volume: Adds target awareness to URL
  • lxd/storage/volumes/utils: Removes unused supportedVolumeTypesInstances var
  • lxd-user: Fix use with clusters
  • shared/instance: Removes InstanceGetParentAndSnapshotName
  • lxd: api.GetParentAndSnapshotName usage
  • lxc: api.GetParentAndSnapshotName
  • lxd/db/storage/volumes: Adds support for StorageVolumeFilter to GetStoragePoolVolumes
  • lxd/storage/volumes: Updates storagePoolVolumesGet to use tx.GetStoragePoolVolumes filtering
  • lxd/db/storage/volumes: Updates GetStoragePoolVolumes to return []StorageVolume
  • lxd/storage/storage: Updates UsedBy to use updated GetStoragePoolVolumes
  • lxd/storage/volumes: Updates storagePoolVolumesGet to use updated GetStoragePoolVolumes
  • lxd/storage/volumes: Updates storagePoolVolumesGet to avoid unnecessary conversions
  • lxd/storage/volumes/utils: Updates storagePoolVolumeUsedByGet to add target param
  • lxd/db/storage/volumes: Adds GetStoragePoolVolume function
  • lxd/storage/volumes/utils: Updates storagePoolVolumeUsedByGet to accept a db.StorageVolume
  • lxd/storage/volumes: Updates storagePoolVolumeUsedByGet usage
  • lxd/storage/volumes: Fix image in use detection in storagePoolVolumeDelete
  • lxd/projects: Ensure default project has features.networks
  • api: Adds storage_volumes_all_projects extension
  • client: Adds all-projects functions for storage volumes
  • shared/api: Add Project field to StorageVolume
  • doc/rest-api: Refresh swagger YAML
  • lxc/storage/volume: Adds --all-projects flag to lxc storage volume list
  • lxd/instances/get: Replace mentions of cluster node with member
  • lxd/db/storage/volumes: Removes Project field from StorageVolume
  • shared/api/storage/pool/volume: Remove projectName from URL function
  • lxd: Unify all-projects handling
  • lxd/events: Improve error handling in eventsSocket
  • lxd/storage/storage: Update UsedBy with updated URL function usage
  • lxd/storage/volumes: Adds all-projects support to storagePoolVolumesGet
  • i18n: Update translation templates
  • lxd/db/storage/volumes: Updates GetStoragePoolVolumes to accept variadic filters
  • lxd/storage/storage: tx.GetStoragePoolVolumes usage
  • lxd/storage/volumes: tx.GetStoragePoolVolumes usage
  • grafana: Only use instant queries on piechart graphs
  • lxd/device/nic_bridged: Fix static analysis
  • lxd/instance/instance/utils: Updates MoveTemporaryName to generate missing volatile.uuid
  • lxd/instance/post: instance.MoveTemporaryName usage
  • lxd/network/driver/bridge: Include error from n.populateAutoConfig
  • lxd/network/openvswitch/ovn: Lower case DNS names
  • lxd/storage/pools: Donā€™t use project param when deleting images before pool deletion
  • lxd/db/storage/volumes: Removes unused GetStoragePoolVolumesNames function

Try it for yourself

Try the latest LXD release on our demo service.

Downloads

The release tarballs can be found on our download page.

Binary builds are also available for:

  • Linux: snap install lxd
  • MacOS: brew install lxc
  • Windows: choco install lxc
2 Likes