Introduction
The LXD team would like to announce the release of LXD 6.4!
This is the fourth feature release in the 6.x series.
It includes many new features and improvements.
Thank you to everyone who contributed to this release!
New features and highlights
New snap track for the 6.x series
With the recent announcement that the MicroCloud snap’s latest/stable
channel is due to be closed in preference to series specific tracks (e.g. 2/stable
for the current LTS and the yet-to-be-released 3/stable
for the next series) the LXD snap is aligning by also using series specific tracks.
As such the 6.x series will now be published into both latest/stable
and 6/stable
.
The per-feature release tracks (e.g 6.x/stable
) will no longer be created.
However snap updates can still be controlled.
The 6/stable
channel will continue to follow the LXD 6.x series as it progresses from a feature release series into an LTS release in 2026.
There are no plans currently for LXD’s latest/stable
channel to be closed, however we would encourage you to install from a series specific track so that your systems are not on a forever rolling release, and instead remain with particular series until manually switched.
snap refresh lxd --channel=6/stable
A reminder that the current LTS series for LXD is available from the 5.21/stable
snap channel.
New backup metadata format
The backup.yaml
file that contains the instance (and its related) configuration has changed to a new v2 format. This replaces references to “container” with “instance” and supports recording the configuration of attached volumes.
LXD still supports importing backups made with the older format as well as optionally exporting in the older format too.
When exporting an instance, the specific version to use can be provided using the --export-version
flag:
lxc export v1 --export-version 2
The same applies when exporting a custom storage volume:
lxc storage volume export pool1 vol1 --export-version 2
This allows exporting in the older version 1 format that is compatible with importing into older LXD servers.
API extension: backup_metadata_version
Extended support for --all-projects
flag in CLI (from Incus)
Support for listing entities from all projects using the --all-projects
flag has been added to the lxc storage bucket list
, lxc network acl list
, lxc network list
CLI commands.
API extensions:
Skip restoring instances during cluster member restore
Sometimes after performing cluster member evacuation via lxc cluster evacuate
and performing maintenance on a cluster member it may not be desirable or not possible to restore the evacuated instances back to the cluster member that was evacuated.
However one may still want to bring that cluster member back online so that it can be used for new workloads or be a target for evacuees from other members in the future.
To accommodate this the lxc cluster restore
command now takes a “skip” value for the --action
flag. This restores only the cluster member status without starting local instances or migrating back evacuated instances.
API extension: clustering_restore_skip_mode
Cluster groups usage tracking and deletion protection
A new used_by
field has been added to the API response for a cluster group. Deletion of a cluster group is now disallowed if the cluster group is referenced by project configuration (see restricted.cluster.groups
).
API extension: clustering_groups_used_by
Override snapshot profiles on copy option
Added an API request option to specify that a snapshot’s target profile on an instance copy to should be inherited from the target instance. This fixes an issue when using the lxc copy --no-profiles
flag.
API extension: override_snapshot_profiles_on_copy
Container BPF delegation
Added new security.delegate_bpf.*
group of options in order to support eBPF delegation using BPF Token mechanism. See Privilege delegation using BPF Token for more information.
API extension: container_bpf_delegation
Device filesystem UUID in Resources API
Added a new field called device_fs_uuid
that containers the respective filesystem UUID of each disk and partition indicating whether or not a filesystem is located on the device.
API extension: resources_device_fs_uuid
Start up and shutdown improvements
In this release there has been a focus on start up and shutdown improvements, including:
Earlier signalling to instances during LXD shutdown
Previously LXD would wait up to core.shutdown_timeout
minutes (defaulting to 5) for running operations to finish before starting the instance shutdown process.
When the shutdown process eventually starts it signals to each of the instances asking them to shutdown cleanly, and then after boot.host_shutdown_timeout
seconds (defaulting to 30) the instance would be force stopped.
However this was problematic because a single running operation (such as lxc exec
) on a single instance would be sufficient to delay signalling to all other instances to shutdown until core.shutdown_timeout
had elapsed. This results in it taking longer for LXD to cleanly shutdown.
Instead now LXD will identify instances that have no running operations and signal for them to shutdown immediately whilst waiting for operations on other instances to complete.
The boot.stop.priority
shutdown ordering is still respected.
Support early shutdown when cluster not available
LXD now supports shutting down when it is not able to connect to other cluster members.
Previously LXD would get stuck in a connect loop and would need to be forcefully stopped.
However now when signalling to the LXD process (by way of systemctl stop snap.lxd.daemon
) the connection loop will be aborted and the daemon will shutdown normally.
Wait for storage pools and networks to be ready
LXD supports starting up with only partial storage pools and networks being operational.
This is useful when there are environmental changes that required manual intervention to correct.
However sometimes, especially with automation, it is useful to be able to wait for LXD to report that all storage pools and networks are operational before starting to interact with the LXD API.
To support this the lxd waitready
command now supports 2 new flags; --network
and --storage
which respectively wait for networks and storage pools to become ready.
These can be used separately or together alongside the --timeout
flag to place a cap on the time spent waiting.
Removal of lxc-to-lxd tool
The legacy lxc-to-lxd
tool has now been removed.
UI updates
Add SSH keys to instances
When creating an instance in the UI, you can now add SSH keys to it. The keys will be applied by cloud-init on boot. Alternatively you can create a profile with SSH keys and apply it to multiple instances.

Create TLS identity and simpler onboarding experience
On TLS identity creation, you can apply groups with permissions for the new identity.
The onboarding process was simplified. It now relies on a single client certificate file download to import into the local browser. Trusting the client certificate on the server now relies on trust tokens. This removes the need to download multiple files that can be mixed up and you don’t have to upload to the server in order to get started.
Network ACL support
You can create and manage Network ACLs directly in the UI. The network overview page shows ACLs applied to the network and allows changing the applied ACLs.
Instances from all projects
A new page in the UI lists all instances on a LXD server or cluster, from all projects the current user has access to.
Project creation with default network
On project creation, select a default network for the new default profile in the new project.
Instance export configurable
Additional options on exporting an instance are now available in the UI.

Disk and CPU metrics for instances
Memory and root filesystem usage graphs can be enabled as optional columns of the instance list.
Additional disk metrics and CPU usage are now available on the instance detail page.
Improved experience for users with restricted permissions
Users with restricted permissions will see all available actions in the UI. Interactions that the user has no permission to will be grayed out and a reason is available on hover.
Improved storage on clusters
Displaying pool usage on a per cluster member basis for storage pools that are local, like the directory or ZFS drivers. For cluster wide storage pools like ceph, there will be a single usage graph.
Snap packaging dependency updates
- lxd-ui: Bump to 0.17
- lxc: Bump to lxc-6.0.4.
- lxcfs: Bump to lxcfs-6.0.4.
- criu: Bump to v4.1.
- nvidia-container-toolkit: Bump to v1.17.7.
- nvidia-container: Bump to v1.17.17.
- qemu: Bump to import/1%8.2.2+ds-0ubuntu1.7.
- zfs: Bump to zfs-2.3.2.
- go: Bump to 1.24.2
Complete changelog
Here is a complete list of all changes in this release:
Full commit list
- lxd/instance/drivers/qemu: Fix QMP arguments typing
- lxd/instance/drivers/qemu: QEMU device naming consistency
- lxd/instance/drivers/qemu: Fix device_id warning on 9.2.x
- lxd/instance/drivers/qemu: Set O_DIRECT when passing in FDs
- lxc/file: Use the file extension of the edited file for the temp file, to help with syntax highlighting
- lxd/instance/drivers/qemu: Replace unnecessary fmt.Sprintf with concatenation
- lxd/instance/drivers/qemu: Check type assertions
- lxd/instance/drivers/lxc: Decorate errors
- lxd/storage/drivers/lvm: Remove nesting & improve clarity
- lxd/storage/drivers/lvm: Count LV activation separate from mounts
- build(deps): bump tags.cncf.io/container-device-interface/specs-go
- lxd/db/cluster: Add StoragePoolVolumeType newtype
- lxd/db/cluster: Add StoragePoolVolumeContentType newtype
- lxd/db: Validate newtypes from DB
- lxd/storage: Use StoragePoolVolumeType
- lxd/db: Use StoragePoolVolumeType for query params
- lxd/project: Use StoragePoolVolumeType
- lxd/device: Use StoragePoolVolumeType
- lxd/instance/drivers: Use StoragePoolVolumeType.Name
- lxd: Use StoragePoolVolumeType
- lxd/db: Use StoragePoolVolumeContentType
- lxd/storage: Use StoragePoolVolumeContentType
- lxd/storage: Replace VolumeTypeNameToDBType with StoragePoolVolumeTypeFromName
- lxd: Replace VolumeTypeNameToDBType with StoragePoolVolumeTypeFromName
- lxd/storage: Replace VolumeContentTypeNameToContentType
- lxd/device/disk: Replace VolumeContentTypeNameToContentType
- lxd: Replace VolumeContentTypeNameToContentType
- lxd/db/test: Use StoragePoolVolumeType
- lxd/test: Fix misused ContentType constant
- lxd/storage: Take advantage of type safety guarantee
- lxd/storage: Remove unneeded error checks
- lxd/device: Remove unneeded error checks
- lxd: Remove uneeded error checks
- lxd: Fix linter errors
- tests/suites/network.sh: Add test for fetching bridge info
- lxd: start BGP listener after networks are set up
- github: Wait for microovn to be ready before bootstrapping the cluster
- lxd/storage/drivers/lvm: Decrement activation refcount when not deactivating
- lxd/db/cluster: Rename StorageVolumeType Name → String
- lxd/db: Use StoragePoolVolume{Content}Type.String
- lxd/instance/drivers/qemu: Implicitly convert VolumeType
- lxd/storage: Use StoragePoolVolume{Content}Type.String
- lxd/device: Use VolumeType String() method
- doc: add oidc configuration for ory hydra howto
- lxd/bgp: Rework start/stop logic
- tests: Check starting BGP listener in network forward tests
- tests: Simplify getting bgpIP in network forward test
- doc: Adds
clustering_groups_used_by
API extension.
- shared/api: Add used-by field to cluster group.
- doc/rest-api: Refresh swagger YAML
- lxd/db: Remove ClusterGroupToAPI function.
- lxd/db/cluster: Add
GetClusterGroupUsedBy
function.
- lxd/db/cluster: Update
(*ClusterGroup).ToAPI
to return used by.
- lxd: Fix
make
usage in cluster APIs.
- lxd: Return cluster group used-by on GET requests.
- lxd: Prevent cluster group deletion when referenced by a project.
- test/suites: Test that a cluster group cannot be deleted when referenced by a project.
- deps: switch to github.com/moby/sys/capability
- github: add actions/require-gha-pinning
- github: require all GHA to be pinned
- github: pin actions/setup-node@v4 to v4.3.0’s SHA
- lxd/api_project: Fix condition checking associated profiles in projectIsEmpty
- lxd: Fix untrusted TLS identity POST endpoint description.
- doc/rest-api: Refresh swagger YAML
- gomod: Update dependencies
- docs: add oidc configuration with keycloak
- test: check deleting non-empty project fails in test_clustering_storage
- github: fix regex allow list for local actions
- lxd/bgp: Fix comment
- lxd/network/driver/ovn: Don’t run bgpSetup twice
- lxd/network/driver/physical: Do full start following change of parent
- lxd/cloudinit: Update comment to reflect support for
none
value
- shared/validate: Support
none
for cloud-init.ssh-keys.*
- lxd/storage/drivers/pure: Unmap volume when connection is freshly created
- doc/cloud-init: Document
none
SSH key
- lxd/network/driver_bridge: add “/” back into
fanAddress()
output
- lxd/storage/drivers/ceph: Apply OSD pool settings in its own func
- lxd/storage/drivers/ceph: Persist ceph.osd.pg_num changes
- lxd/storage/drivers/ceph: Reject update of immutable options
- Makefile: ignore Go toolchain when building
- github: check that binaries are compiled with Go minimum version
- doc/howto/oidc_keycloak: minor revisions
- lxd/network/driver/common: Handle missing BGP peer
- lxd/main_checkfeature: add bpf_token kernel feature detection logic
- lxd/main_forkmount: bpffs mount with delegation support
- lxd/api_internal: add start-host instance hook
- lxd/instance/lxc: add security.delegate_bpf support
- lxd/instance/instancetype/instance: add security.delegate_bpf* config options
- doc: add explanation page about security.delegate_bpf and friends
- api: add bpf_delegation API extension
- doc: Update metadata
- lxd/main_forkmount: Fix linter error
- doc: hard-code additional link titles
- build(deps): bump actions/setup-go from 5.3.0 to 5.4.0
- build(deps): bump actions/cache from 4.2.2 to 4.2.3
- build(deps): bump github/codeql-action from 3.28.11 to 3.28.12
- build(deps): bump actions/download-artifact from 4.1.9 to 4.2.1
- build(deps): bump actions/upload-artifact from 4.6.1 to 4.6.2
- build(deps): bump github.com/miekg/dns from 1.1.63 to 1.1.64
- golangci-lint: Migrate
.golangci
to v2.0.0
format
- Makefile: Add explicit version for
golangci-lint
- golangci-lint: Inline
nolint
for deep-exit
in lxd/api_cluster.go
- lxd/response: Remove deprecated
deadcode
linter from nolint
exclusions
- lxd: Replace deprecated
gosimple
linter with staticcheck
for inline nolint
exclusion
- lxd: Fix linter errors in
lxd/api_cluster.go
- golangci-lint: Add
staticcheck
exclusion for ST1005
- lxd: Fix linter errors in
lxd/main_recover.go
- client/util: add legacyCurvesOnly param to
tlsHTTPClient()
- client/connection: use legacyCurvesOnly for simplestreams connections
- github: add bug report issue form
- github: add config file for issue templates
- lxd/firewall/drivers/driver/nftables: Fix regression in nftables port range rules
- lxc: Fix QF1004 staticcheck and use ReplaceAll instead
- lxd: Fix QF1007 staticcheck and check condition in assignment
- lxd/instance/drivers: Fix QF1007 staticcheck and check condition in assignment
- lxd/instances/drivers: Fix QF1003 staticcheck and use switch statement
- lxd/instances/drivers: Fix QF1008 staticcheck and remove embedded field
- lxd/instances/drivers: Fix QF1009 staticcheck and use time.Equal
- lxd/instance: Fix QF1001 staticcheck by applying De Morgan’s law
- lxd/storage: Fix QF1003 staticcheck and use switch statement
- doc: add google analytics consent banner
- github: add feature request issue form
- doc: add localhost:8080 to linkcheck_ignore
- doc/api-extensions: add doc reference link to container_bpf_delegation
- lxd/api_internal: use logger with context in internalContainerOn* hooks
- lxd/instance/drivers: Use full device name in
device_id
- meta/instance-types: drop now unused instance types
- lxd/db/cluster: create admin group with server admin permission on install WD-20464
- doc: annotations when integrated in microcloud docs only
- api: Add override_snapshot_profiles_on_copy extension
- shared/api: Add OverrideSnapshotProfiles to InstanceSource
- doc/rest-api: Refresh swagger YAML
- client: Add OverrideSnapshotProfiles to InstanceCopyArgs
- lxc/copy: Set snapshots to receive target profiles with --no-profiles
- lxd: Fix profile on instance snapshot copy
- shared/api: Add OverrideSnapshotProfiles to InstancePost
- doc/rest-api: Refresh swagger YAML
- lxc/move: Set snapshots to receive target profiles with --no-profiles
- lxd: Fix profile of instance snapshots on server-side instance move
- test/suites/container_move: Improve test for server-side instance move with snapshot and profile assigned
- test/suites/snapshots: Add test for copy of instance with snapshots and profile assigned into new project
- add steps to verify lxd host support for vms
- github: run LXD UI tests on ubuntu-24.04 runners
- Makefile: drop version check on shellcheck (0.8.0 is old anyway)
- test/suites/storage_volume_initial_config: quote variables
- Makefile: be less verbose when checking lint scripts
- test/suites/container_devices_proxy: use IPv4 variant of socat listener
- test/suites/pki: drop support for pkitool
- test/suites/pki: create vars file to silence warning
- test/suites/pki: use ECDSA instead of RSA
- test: Fix deprecated chown syntax
- test/suites/storage: modern xfs can only handle 300MiB or more disks
- test/suites/storage_driver_ceph: modern xfs can only handle 300MiB or more disks
- test/suites/storage_driver_pure: align xfs min size comment with other tests
- test/main: report
ceph status
on failure
- lxd/instance/drivers/lxc: reduce log level when unable to get disk usage
- lxd/instance/drivers/lxc: reduce log level when unable to get volume disk usage
- lxd/instance/drivers/qemu: reduce log level when unable to get disk usage
- lxd/instance/drivers: Device
serial
with a max lenght of 36
- update: how-to-manage-storage-pools-update
- lxd: Fix request body struct in swagger doc.
- doc/rest-api: Refresh swagger YAML
- lxd/storage/drivers/ceph: Fix import of iso images smaller than 512B
- test/storage_volume_import: Test with unaligned image sizes
- lxd/instance/drivers/qemu: Fix NUMA node binding with simple CPU count
- build(deps): bump github/codeql-action from 3.28.12 to 3.28.13
- Makefile: Bump go min to 1.23.7
- Makefile: Pin tags.cncf.io/container-device-interface to v0.8.1
- gomod: Update dependencies
- lxd/operations: Replace waitForOperations by
pendingInstanceOperations
- lxd/daemon: fix linter warning (
QF1001: could apply De Morgan's law (staticcheck)
)
- lxd/daemon_storage: refactor
daemonStorageVolumesUnmount
- lxd/instances: utility functions used for by the refactored
instancesShutdown
function
- lxd/instances: Refactor
instancesShutdown
- daemon: Refactor daemon.Stop method with new instances shutdown logic
- lxd/operations: Add internal operationWaitHandler API handler logic.
- test/includes: various helper functions for the LXD shutdown sequence tests
- test: Add lxd shutdown sequence tests
- lxd/storage/drivers/lvm: Correct comment
- lxd/storage/drivers/lvm: Move log message to after unmount
- lxd/storage/drivers/lvm: Use
UnmountVolumeSnapshot
for snapshot volume
- lxd/storage/drivers/lvm: Factor out volume mount logic
- lxd/storage/drivers/lvm: Factor out volume unmount logic
- lxd/storage/drivers/lvm: Only unmount on deletion when mounted
- lxd/storage/drivers/lvm: Use
ReplaceAll
(staticcheck)
- lxd/storage/drivers/lvm: Use
Split
(staticcheck)
- lxd/storage/drivers/lvm: Use tagged switch (staticcheck)
- test/suites: Test container volume activation
- lxd/db/cluster: Delete unused instance
ToAPI
method.
- lxd/db/cluster: Remove
cluster_test
package.
- client: Fix lint error (revive: unused-parameter).
- lxc: Fix lint error (revive: unused-parameter).
- lxd/db/cluster: Fix lint error (revive: unused-parameter).
- lxd/instance/drivers: Fix lint error (revive: unused-parameter).
- lxd/storage: Fix lint error (revive: unused-parameter).
- lxd: Fix lint error (revive: unused-parameter).
- lxd: Fix lint error (revive: early-return).
- lxd/db/cluster: Fix unique constraint test.
- test/godeps: Update dep lists
- lxc: Fix linter error (staticcheck).
- github: add ‘Feature’ type to feature request template/form
- github: add ‘Bug’ type to bug report template/form
- github: replace ‘container’ with ‘instance’ in bug report template/form
- docs: add scripted grafana setup WD-20339 for recent LXD-UI 0.16 onwards
- lxd/instance: Don’t enforce device/config validation on snapshots
- lxd/device/cdi: ubuntu core: add mesa-2404 contents to config search paths
- lxd/instances: Adds missing project context to logging in instancesShutdown
- lxd/instances: Uses instance level contextual logger in instancesShutdown
- lxd/instances: Logs failure to update instance volatile.last_state.power during shutdown
- lxd/daemon: Reduce scope of shutdown context and dont use for storage unmount context
- lxd/instances: Add repeat log message every 10s when waiting for instance operations to finish in instancesShutdown
- test/suites/migration: Add test for config override for migration of instance with snapshot
- lxc/move: Set snapshots to receive target profiles with --profile
- lxc/copy: Set snapshots to receive target profiles with --profile
- test/suites/snapshots: Add test for move of instance with snapshots into new project with new profile
- lxd/main_forkproxy: Improve variable naming consistency in
genericRelay
function
- lxd/main_forkproxy: Rework
genericRelay
function to support half-closed TCP connections
- tests: Add container proxy device test for half-closed TCP connections
- lxd/device/tpm: use
%q
format specifier in fmt.Errorf
- lxd/storage/drivers/ceph: use
%q
format specifier in fmt.Errorf
- lxd/storage/drivers/cephfs: use
%q
format specifier in fmt.Errorf
- lxd/storage/drivers/zfs: use
%q
format specifier in fmt.Errorf
- lxd/storage/drivers/zfs: check ZFS kmod version earlier
- lxd/storage/drivers/zfs: suggest
zfs.external
if in snap and ZFS tools are missing
- test/lint/godeps: allow updating lists
- test/lint/godeps: improve messages
- Makefile: add update-godeps target
- lxd/network: Improve network priority in networkStartup
- lxd/network: Fix linter errors
- test/suites/backup: On cephfs add sync calls after
file push
- github: enable code coverage for client tests
- github: merge multi-arch lxc client build
- lxd/db/cluster/open: Return api.StatusError from checkClusterIsUpgradable
- lxd/db/cluster/open: Improve error messages in checkClusterIsUpgradable
- lxd/db/cluster/open/test: Update tests
- lxd/db/schema/errors: Removes unneeded ErrGracefulAbort error
- lxd/db/schema/schema: Plumbs api.StatusError returned from s.check in Ensure
- lxd/db/db: Handle api.StatusErrors returned from EnsureSchema in OpenCluster
- lxd/daemon: Handle api.StatusError returned from db.OpenCluster
- lxd/cluster/membership: Updates cluster.EnsureSchema usage in Join
- lxd/db/schema/schema/test: Update tests
- lxd/db/db: Linter fix
- lxd/db/schema/schema: Linter fix
- lxd/db/node: Align error messages in NodeIsOutdated
- lxd/db/node: Use passed context in nodes function
- lxd/api/cluster: Only get failure domains during recursive mode for clusterNodesGet
- lxd/cluster/upgrade: Replace node with member in MaybeUpdate
- test: Fix typo in clustering tests
- lxd/db/node: Updates ToAPI to correctly account for status in comparison to other member version
- lxd/api/cluster: Update clusterNodeGet to use updated ToAPI function
- lxd/api/cluster: Updates updateClusterNode to use updated ToAPI function
- lxd/scriptlet/instance/placement: Updates InstancePlacementRun to use updated ToAPI function
- lxd/db/node: Removes unnecessary function GetNodeMaxVersion
- test/suites/clustering: Fix clustering_upgrade test
- test/suites/clustering: Adds clustering_downgrade test
- github: Enable clustering_upgrade tests
- doc: Force white background for swagger API
- lxd/db/cluster/open: Update comments in checkClusterIsUpgradable
- lxd/instance/drivers/driver/qemu: Fix regression when hotplugging virtio-blk drives in addDriveConfig
- api: Add resources_device_fs_uuid extension
- shared/api: Add DeviceFSUUID field to disks and partitions
- lxd/storage/block: Move GetDisksByID to prevent import cycle
- lxd/storage/block: Move the DevDiskByID const
- lxd/storage/block: Add DiskFSUUID
- lxd/resources: Populate the DeviceFSUUID fields for disks and partitions
- doc/rest-api: Refresh swagger YAML
- lxd/storage/drivers: Use block.DiskFSUUID instead
- lxd/storage/drivers: Apply De Morgan’s law (staticcheck)
- shared: Use ReplaceAll (staticcheck)
- build(deps): bump tiobe/tics-github-action from 3.3.0 to 3.4.0
- build(deps): bump actions/dependency-review-action from 4.5.0 to 4.6.0
- build(deps): bump github.com/mattn/go-sqlite3 from 1.14.24 to 1.14.27
- build(deps): bump github/codeql-action from 3.28.13 to 3.28.14
- build(deps): bump golang.org/x/sys from 0.31.0 to 0.32.0
- build(deps): bump golang.org/x/text from 0.23.0 to 0.24.0
- lxd/storage/block: Fix DiskFSUUID for pristine disks
- build(deps): bump golang.org/x/crypto from 0.36.0 to 0.37.0
- github: fix macos client build due to
mkdir -p
- github: Go coverage options need to be last for
go test
- build(deps): bump golang.org/x/oauth2 from 0.28.0 to 0.29.0
- lxd/device/disk: Fix attachment of ceph instance volumes in default project
- lxd/device/config/device/runconfig: Moves DevSource types
- lxd/device/device/utils/unix: deviceConfig.DevSourcePath usage
- lxd/device/disk: deviceConfig.DevSourcePath usage
- lxd/device/gpu/physical: deviceConfig.DevSourcePath usage
- lxd/instance/drivers/driver: deviceConfig.DevSourcePath usage
- lxd/storage/pool/interface: Change MountInfo to return a deviceConfig.DevSource rather than string DiskPath
- lxd/instance/drivers/driver/qemu: mountInfo.DevSource usage
- lxd/storage/backend/lxd: Update MountInstance* to return mountInfo.DevSource
- lxd/storage/utils: Updates InstanceDiskBlockSize to use mountInfo.DevSource
- lxd/device/device/utils/unix: Linter fix in unixDeviceAttributes
- lxd/device/disk: Linter fix in validateConfig
- lxd/device/disk: Linter fix in storagePoolVolumeAttachShift
- lxd/device/disk: Linter fix in generateVMConfigDrive
- Revert “github: fix macos client build due to
mkdir -p
”
- github: don’t hardcode the runner home in GOCOVERDIR
- Makefile: bump golangci-lint version to 2.0.2
- lxd: Log warning if Loki server is unreachable during init process
- github: only keep shellcheck report artifacts for 1 day
- github: only keep coverage report artifacts for 1 day
- github: only keep documentation artifacts for 5 days
- Revert “lxd/ubuntu-pro: Change Ubuntu Pro directory.”
- Makefile: Add auto-commit for
make update-auth
- lxd/storage: Move
volumeDetermineNextSnapshotName
to storage
- lxd/storage: Lock operation before creating DB record
- lxd/storage/utils: Update
volumeIsUsedByDevice
’s arguments
- lxd/device/disk: Minor simplification
- lxd/storage: Use
IsSnapshot
instead of GetParentAndSnapshotName
- lxd/storage/utils: Fix import format (gci)
- client: Update client functions in
lxd_cluster.go
to construct URLs using api.NewURL()
and replace HTTP method literals with constants from http
package
- lxd/storage: Log a warning if syncing a container volume fails
- lxd/storage: Flush writes before custom volume snapshot
- doc: update spellcheck custom wordlist
- doc/rest-api: update put vs patch
- lxd/storage: Fix instance path on
SyncFS
- doc/reference/instance-options: clarify wording about volatile key manipulation
- lxd/device/disk: Avoid duplicate iso9660 logic by not creating a new mount var in startVM
- lxd/device/disk: Ensure mountPoolVolume() is called even when using Qemu’s librbd ceph client in startVM
- test/includes/storage: unset
core.storage_buckets_address
in delete_object_storage_pool()
- build(deps): bump github/codeql-action from 3.28.14 to 3.28.15
- build(deps): bump actions/setup-node from 4.3.0 to 4.4.0
- build(deps): bump github.com/openfga/openfga from 1.8.8 to 1.8.9
- build(deps): bump golang.org/x/tools from 0.31.0 to 0.32.0
- build(deps): bump github.com/miekg/dns from 1.1.64 to 1.1.65
- Makefile: Pin github.com/go-jose/go-jose/v4@v4.0.5
- gomod: Update dependencies
- lxc/file: Linter fixes
- lxd/network: Linter fixes
- lxd/patches: Linter fixes
- lxd/project/limits/permissions: Linter fixes
- lxd/storage/volumes: Linter fix
- lxd: Check groups in
restricted.cluster.target
.
- lxd: Filter cluster group used by URLs.
- test/suites: Test restricted/fine-grained clients can’t view projects via used-by URLs.
- lxd/instance/drivers/driver/lxc: Trigger schedule rebalance after DB changes made
- lxd/instance/drivers/driver/qemu: Update comments
- Amended documentation with a better way to setup DNS-resolving LXD containers from the host machine.
- doc: Update manage storage volumes
- doc: use redirects_map.py to store redirects
- lxd: Fix regression that prevents listing members in non-recursive mode
- lxd/instance/drivers/driver/qemu: Add link to qemu commit related to disk serial length
- test/suites/clustering: Check recursive and non-recursive mode when listing cluster members
- doc/custom/conf: Ignore link checking of https://www.schlachter.tech/solutions/pongo2-template-engine/
- test/suites/clustering: fix typo (
s/firth/fifth/
)
- github: rework how GOCOVERDIR is handled
- api: Add backup_metadata_version extension
- shared/api: Add BackupMetadataVersion type
- lxd/backup/config: Add DefaultMetadataVersion const
- lxd/backup/config: Add MaxMetadataVersion const
- lxd/backup/config: Add new keys and mark outdated ones as deprecated
- lxd/backup/config: Add new utility functions to retrieve pools and vols
- lxd/backup: Add new helper to upgrade and downgrade the backup config schema
- lxd: Use the new config format keys
- lxd/backup: Use the new config format keys
- lxd/instance/drivers: Use the new config format keys
- lxd/instance: Use the new config format keys
- lxd/storage: Use the new config format keys
- lxd/migration: Add new index header version 2
- lxd/storage: Upgrade or downgrade the migration config metadata
- shared/api: Add BackupVersion to InstanceBackupsPost
- lxc: Allow setting the backup version when exporting instances
- lxd/storage/interface: Allow passing backup file version
- lxd/storage/backend: Modify function signatures to allow passing backup format version
- lxd: Pass the backup format version when creating instance backups
- lxd: Fall back to the original (old) backup format when exporting instances
- lxd/instance/drivers: Update invocations of UpdateInstanceBackupFile
- lxd/storage: Update invocations of UpdateInstanceBackupFile
- lxd/storage: Downgrade instance backup file only in the last step
- shared/api: Add BackupVersion to StoragePoolVolumeBackupsPost
- lxc: Allow setting the backup version when exporting custom storage volumes
- lxd: Fall back to the original (old) backup format when exporting custom storage volumes
- lxd: Pass the backup format version when creating custom storage volume backups
- lxd/migration: Linter fixes
- lxd: Fix error messages
- doc: Document new --export-version flag for backup creation
- shared/api: Add new BackupMetadataVersionRange field to server environment
- lxd: Add BackupMetadataVersionRange to server environment
- doc/rest-api: Refresh swagger YAML
- i18n: Update translation templates.
- i18n: Update translations.
- test: Add yq as dependency
- test/suites: Add test_backup_metadata
- lxd/backup/config: Set DefaultMetadataVersion to 2 for LXD 6.x onwards
- lxc: Add note about export version for LXD 6.x onwards
- i18n: Update translation templates (LXD 6.x only)
- i18n: Update translations (LXD 6.x only)
- lxd/network/driver/bridge: Validate forwards for collisions with OVN ranges
- lxd/network/driver/ovn: Validate forwards & load balancers for collisions with OVN
- shared/network: Add ParseNetworks function
- lxd/network/driver/common: Add validateRoutes function
- lxd/network/driver/physical: Validate ip routes for existing forwards
- lxd/network/driver/bridge: Validate ip routes for existing forwards
- lxd/device/nic/ovn: Add validateExternalRoutes function
- lxd/device/nic/ovn: Fix linter errors
- test: Expand OVN tests
- lxd/devlxd: Rename devlxd to devLXD
- lxd/dameon: Rename devlxd to devLXD
- lxd/response: Rename devlxd response to devLXD
- lxd/devlxd: Regroup vSock and devLXD functions
- lxd/devlxd: Add devLXD security config key constants
- lxd/devlxd: Introduce devLXD API endpoints
- lxd/devlxd: Remove http.Writer from handler func
- lxd/request: Add devLXD instance context key
- lxd/devlxd: Rename instance variable
- lxd/devlxd: Pass request instance using request context
- lxd/devlxd: Set devLXD authentication method in handleFunc
- lxd/devlxd: Handle panic recovery
- lxd/devlxd: Handle security flags
- lxd/devlxd: Remove no longer needed method checks
- lxd/devlxd: Apply de morgan’s law in check (linter)
- lxd/api_devlxd: Fix func name (linter)
- lxd/api_{devlxd,vsock}: Add comments to hoist funcs
- lxd/devlxd_test: Improve error message and test url
- lxd-agent: Rename devlxd to devLXD
- lxd-agent/response: Rename devlxd to devLXD response
- lxd-agent: Modernize for loop
- lxd-agent: Add render function to devLXD response
- lxd-agent: Refactor devLXD API handling
- lxd-agent: Remove http writer from handler function
- lxd-agent: Remove unnecessary method checks
- lxd-agent: Remove unnecessary config filter
- lxd-agent: Handle nil response
- client/interfaces: Add DevLXDServer interface
- shared/api: Add public DevLXD response
- shared/api/response: Improve response helper function comments
- client/devlxd: Scaffolding for devLXD client
- client/connection: Add functions for connecting to devLXD
- client/devlxd: Add internal RawQuery function
- client/devlxd: Add state endpoints
- client/devlxd: Add devices endpoint
- client/devlxd: Add metadata endpoint
- client/devlxd: Add Ubuntu Pro endpoint
- client/devlxd: Handle websockets
- client/events: Introduce EventListenerManager
- client/devlxd: Add events endpoint
- client/devlxd: Add image export
- client/devlxd: Add config endpoint
- lxd/ucred: Prevent potential panic by using empty type assertion
- lxd/api_devlxd: Prevent potential panic by safely asserting connection type
- test/godeps: Add new client deps
- test/godeps: Add new lxc config deps
- test/devlxd-client: Use devlxd client instead of raw http
- lxd/cluster/events: Omit type from variable declaration (linter)
- lxd/instances_put: Preallocate arrays (linter)
- lxd/instance_state: Drop else when previous block returns (linter)
- lxd/images: Apply De Morgan’s law (linter)
- lxd/images: Use tagged switch (linter)
- lxd/daemon_images: Use tagged switch (linter)
- lxd/instance_instance_types: Use tagged switch (linter)
- lxd/instances_get: Use tagged switch (linter)
- lxd/project/permissions: Use split instead of splitN (linter)
- lxd/storage_pools: Merge conditional assignment (linter)
- github: fix GOCOVERAGE boolean values
- github: switch to
ubuntu-24.04
runners for security workflow
- github: switch to
ubuntu-24.04
runners for triage workflow
- test/suites/basic: init a small empty container to test CPU/mem limits
- test/suites/basic: use shell comparison for last_used_at tests
- test/suites/basic: test using alias with slashes
- doc: Update create a network
- test/includes/lxd: chmod the lxddir in spawn_lxd()
- test/suites: stop chmod’ing the lxddir as spawn_lxd() does it
- doc/howto/instances_configure: add more device config info
- doc/howto/network_acls: copyedit updates to intro
- doc/howto/network_acls: add list ACLs section
- doc/howto/network_acls: add show ACL section
- doc/howto/network_acls: move ACL name requirements to own section
- doc/howto/network_acls: update create via CLI section and add ref target
- doc/howto/network_acls: add API tab to create section
- doc/howto/network_acls: add reference target for ACL properties
- doc/howto/network_acls: update intro to ACL rules section
- doc/howto/network_acls: update how to add rules
- doc/howto/network_acls: update how to remove rules
- doc/howto/network_acls: add section on how to edit rules
- doc/howto/network_acls: update section on rule ordering
- doc/howto/network_acls: add reference target for rule properties
- doc/howto/network_acls: update intro for using rule selectors
- doc/howto/network_acls: update subject name selectors section
- doc/howto/network_acls: update network subject selectors section
- doc/howto/network_acls: update log traffic section
- doc/howto/network_acls: bridge limitations section copyedits
- doc/howto/network_acls: default actions section intro copyedits
- doc/howto/network_acls: add CLI/API steps for network default actions
- doc/howto/network_acls: add CLI/API steps for NIC default actions
- doc/howto/network_acls: add delete an ACL section
- doc/howto/network_acls: add additional properties section
- doc/howto/network_acls: update assign section and add ref target
- doc/howto/network_acls: update assign to network section
- doc/howto/network_acls: update assign to NIC section
- doc/howto/network_acls: update rename ACL section
- doc/howto/network_acls: add edit other properties section and CLI tab
- doc/howto/network_acls: add edit other properties section’s API tab
- doc/howto/network_acls: add example to edit other properties section’s API tab
- doc/howto/network_acls: add edit custom keys section
- doc/howto/network_acls: add example to edit custom keys section
- Change Cloud Init “user” to “users”
- doc/cloud-init: Update network example to v2
- doc/idmap: Clarify subuid/subgid configuration
- build(deps): bump github.com/mattn/go-sqlite3 from 1.14.27 to 1.14.28
- build(deps): bump github.com/go-acme/lego/v4 from 4.22.2 to 4.23.1
- lxd/backup/config: Add dedicated struct for Buckets
- lxd/storage: Use new format when defining backup struct
- lxc: Add getExportVersion func
- lxc: Use getExportVersion for instances and custom storage volumes
- lxd/storage: Try downgrading the config before vol mount
- Makefile: update golangci-lint to 2.1.2
- lxd/lxd-metadata: reorder Go imports
- lxd/device/cdi/spec_unsupported: reorder Go imports
- lxd/lxd-metadata: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- shared/simplestreams/products: use tagged switch instead of if/else
- lxc/action: use tagged switch instead of if/else
- lxc/config_trust: use tagged switch instead of if/else
- lxc/auth: use tagged switch instead of if/else
- lxc/info: use tagged switch instead of if/else
- lxc/monitor: use tagged switch instead of if/else
- lxc/network_acl: use tagged switch instead of if/else
- lxc/network_peer: use tagged switch instead of if/else
- lxd-migrate: use tagged switch instead of if/else
- lxd/cgroup/abstraction: use tagged switch instead of if/else
- lxd/db/generate/db/method: use tagged switch instead of if/else
- lxd/device/nic_bridged: use tagged switch instead of if/else
- lxd/device/unix_common: use tagged switch instead of if/else
- lxd/device/unix_hotplug: use tagged switch instead of if/else
- lxd/device/usb: use tagged switch instead of if/else
- lxd/firewall/drivers/xtables: use tagged switch instead of if/else
- lxd/instance/drivers/driver_qemu_bus: use tagged switch instead of if/else
- lxd/instance/drivers/driver_qemu_templates: use tagged switch instead of if/else
- lxd/instance/drivers/load: use tagged switch instead of if/else
- lxd/instance/drivers/qmp/monitor: use tagged switch instead of if/else
- lxd/loki: use tagged switch instead of if/else
- lxd/main_init_interactive: use tagged switch instead of if/else
- lxd/migration/migration_volumes: use tagged switch instead of if/else
- lxd/network/acl/firewall: use tagged switch instead of if/else
- lxd/network/acl/driver_common: use tagged switch instead of if/else
- lxd/resources/network_ethtool: use tagged switch instead of if/else
- lxd/storage/drivers/btrfs_volumes: use tagged switch instead of if/else
- lxd/storage/drivers/ceph_volumes: use tagged switch instead of if/else
- lxd/storage/drivers/poweflex_utils: use tagged switch instead of if/else
- lxd/storage/drivers/poweflex_volumes: use tagged switch instead of if/else
- lxd/storage/drivers/pure_volumes: use tagged switch instead of if/else
- lxd/storage/drivers/zfs_volumes: use tagged switch instead of if/else
- lxd/storage/drivers/utils_ceph: use tagged switch instead of if/else
- lxd/storage/pool_load: use tagged switch instead of if/else
- lxd/storage: use tagged switch instead of if/else
- lxd/subprocess/proc: use tagged switch instead of if/else
- lxd/subprocess/proc: use tagged switch instead of if/else
- lxc/image: Apply De Morgan’s law (staticcheck)
- lxc/list: Apply De Morgan’s law (staticcheck)
- lxd/db/network_forwards: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- lxd/db/network_load_balancers: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- lxd/db/schema/update: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- lxd/db/storage_buckets: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- lxd/db/storage_pools: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- lxd/main_netcat: use fmt.Fprintf() instead of WriteString(fmt.Sprintf())
- shared/filter/match: Apply De Morgan’s law (staticcheck)
- lxd/instance_get: Apply De Morgan’s law (staticcheck)
- lxc/list: Use strings.ReplaceAll instead (staticcheck)
- lxc/main_aliases: Use strings.ReplaceAll instead (staticcheck)
- lxc/warning: Use strings.ReplaceAll instead (staticcheck)
- lxd/apparmor/apparmor: Use strings.ReplaceAll instead (staticcheck)
- lxd/apparmor/archive: Use strings.ReplaceAll instead (staticcheck)
- lxd/apparmor/instance: Use strings.ReplaceAll instead (staticcheck)
- lxd/auth/generate/main: Use strings.ReplaceAll instead (staticcheck)
- lxd/db/generate/db/mapping: Use strings.ReplaceAll instead (staticcheck)
- lxd/db/generate/db/method: Use strings.ReplaceAll instead (staticcheck)
- lxd/db/generate/db/parse: Use strings.ReplaceAll instead (staticcheck)
- lxd/db/generate/db/stmt: Use strings.ReplaceAll instead (staticcheck)
- lxd/device/nic_bridged: Use strings.ReplaceAll instead (staticcheck)
- lxd/device/nic_ipvlan: Use strings.ReplaceAll instead (staticcheck)
- lxd/device/nic_routed: Use strings.ReplaceAll instead (staticcheck)
- lxd/instance/drivers/qemu_metrics: Use strings.ReplaceAll instead (staticcheck)
- lxd/ip/route: Use strings.ReplaceAll instead (staticcheck)
- lxd/storage/drivers/ceph_volumes: Use strings.ReplaceAll instead (staticcheck)
- lxd/storage/filesystem/fs: Use strings.ReplaceAll instead (staticcheck)
- lxd/main_netcat: unexport command and run funcs
- lxd/main: netcatCmd.command func was unexported
- lxc/action: merge conditional assignment into var declaration (staticcheck)
- lxc/config_trust: merge conditional assignment into var declaration (staticcheck)
- lxd/network/acl/driver_common: merge conditional assignment into var declaration (staticcheck)
- lxd/storage/drivers/btrfs_volumes: remove embedded field Volume from selector (staticcheck)
- lxd/storage/drivers/ceph_volumes: remove embedded field Volume from selector (staticcheck)
- lxd/storage/drivers/pure_volumes: remove embedded field Volume from selector (staticcheck)
- lxc/main_aliases: ignore prealloc suggestion
- lxd/auth/generate/main: preallocate entityType slice
- shared/filter/match: early return from if (revive)
- lxc/main_aliases: use named results (revive)
- lxd/instance/drivers/qemu_bus: use named results (revive)
- lxd/ip/route: avoid deprecated shared.Runcommand
- shared/filter/match: verify type cast results (revive)
- lxd/subprocess/proc: drop struct tag of unexported fields of Process struct
- lxd/subprocess: unexport some fields of Process struct
- lxd/firewall/drivers/nftables: unexport some fields of nftGenericItem struct
- lxd/storage/drivers/pure_util: unexport statusCode field of pureError struct
- api: Add
storage_buckets_all_projects
extension
- shared/api: Add
Project
field to StorageBucket
struct
- client: Add
GetStoragePoolBucketsAllProjects
function
- lxc/storage_bucket: Add
all-projects
flag to list
command
- lxd/db: Fill
StorageBucket
struct Project
field
- lxd/storage_buckets: Add support for
all-projects
flag
- doc/rest-api: Refresh swagger YAML
- tests: Add
storage list --all-projects
authorization tests
- lxd/db: Fix lint error (staticcheck - QF1012)
- i18n: Update translation templates.
- i18n: Update translations.
- doc/initialize: update maas anchor link
- client: Use
http
package HTTP method constants
- client: Fix lint error (staticcheck - QF1008)
- lxc/query: Use
http
package HTTP method constants
- lxd/cluster: Use
http
package HTTP method constants
- lxd/instance/drivers: Use
http
package HTTP method constants
- lxd/loki: Use
http
package HTTP method constants
- lxd: Use
http
package HTTP method constants
- lxd: Fix lint error (revive - unchecked-type-assertion)
- lxd: Fix lint error (revive - exported)
- lxd: Fix lint error (revive - useless-break)
- lxd-user/callhook: Use
http
package HTTP method constants
- shared: Use
http
package HTTP method constants
- shared/simplestreams: Use
http
package HTTP method constants
- lxd-agent: Use
http
package HTTP method constants
- lxd/devlxd: Enable access to GET devlxd/1.0 endpoint without security.devlxd flag
- lxd/response: Fix devLXD in comments
- api: Add
network_acls_all_projects
extension
- shared/api: Add
Project
field to NetworkACL
struct
- client: Add
GetNetworkACLsAllProjects
function
- lxc/network_acl: Add
all-projects
flag to list
command
- lxd/db: Add
GetNetworkACLsAllProjects
- lxd/network/acl: Set
Project
field
- lxd/network_acls: Add support for
all-projects
flag
- doc/rest-api: Refresh swagger YAML
- tests: Add tests for listing network ACLs across all projects
- tests: Update network acl tests
- tests: Replace use of
wc -l = 0
in favor of equating empty string to network acl list
test
- tests: Add
network acl list --all-projects
tests to authorization tests
- tests: Add additional
network zone list --all-projects
test to authorization tests
- tests: Add TLS restrictions tests for network ACLs
- i18n: Update translation templates.
- i18n: Update translations.
- lxd/db/generate/db/lex: replace more
fmt.Sprintf()
(perfsprint)
- lxd/db/generate/db/method: use
strings.ReplaceAll()
- lxd/db/generate/db/method: replace more
fmt.Sprintf()
(perfsprint)
- lxd/db/generate/db/method: replace more
fmt.Sprintf()
(perfsprint)
- lxd/storage/drivers/powerflex_utils: replace more
fmt.Sprintf()
(perfsprint)
- lxd/util/net: replace more
fmt.Sprint()
(perfsprint)
- lxd/network/openvswitch/ovn: replace more
fmt.Sprint()
(perfsprint)
- lxd/network/openvswitch/ovs: replace more
fmt.Sprint()
(perfsprint)
- lxd/network/openvswitch/ovs: use
strings.Split()
instead (staticcheck)
- lxd/network/physical: replace more
fmt.Sprint()
(perfsprint)
- lxd/network/driver_ovn: replace more
fmt.Sprint()
(perfsprint)
- lxd/cluster/membership: Improve error in Handover
- lxd/db/cluster/open: Improve error in EnsureSchema
- lxd/api/cluster: Improve errors, logging and comments
- lxd/cluster/gateway: Simplify Shutdown() indenting
- lxd/networks: Adds check for DB cluster in networkShutdown
- lxd/cluster/gateway: Fix ineffectual assignment of err
- lxd-user: Linter fixes
- lxd: Linter fixes
- lxd/main/forkfile: Linter fixes
- lxd/daemon: Get state first in Stop before triggering shutdown
- lxd/daemon: Handle missing DB connection when shutting down instances in Stop
- lxd/daemon: Load local config before setting up dqlite gateway
- lxd/daemon: Add clustering config sense check during init
- github: workaround LP 504 error with PPAs
- lxd: Use
api.NewURL()
to construct network-acl
result urls
- lxd/device/disk: simplify
vmVirtiofsdPaths()
- api: Add
networks_all_projects
extension
- shared/api: Add
Project
field to Network
struct
- client: Add
GetNetworksAllProjects
function
- lxc/network: Add
all-projects
flag to list
command
- lxd/db: Add
GetNetworksAllProjects
function
- lxd/networks: Add support for
all-projects
flag
- tests: Add
network list --all-projects
authorization tests
- doc/rest-api: Refresh swagger YAML
- tests: Add TLS restrictions test for listing networks
- i18n: Update translation templates.
- i18n: Update translations.
- lxd: Pass
*Daemon
to expireLogsTask
rather than long lived state
- lxd: Retrieve fresh state for
expireLogs
task
- lxd/storage/drivers/zfs_volumes: use
shared.VarPath()
to join path components
- lxd/storage/drivers/btrfs_volumes: stop looking for subvol ID once found
- lxd-agent/state: replace
strings.SplitN()
by strings.Cut()
- lxd-agent/state: do not report IPv6 address starting with
127
as being local
- lxd-agent/state: micro-optimise scope evaluation
- lxd-agent/state: micro-optimise family evaluation
- lxd/network/openvswitch/ovn: simplify turning IP into CIDR notation (avoid
fmt.Sprint()
)
- shared/api/instance: simplify
GetParentAndSnapshotName()
that is essentially a wrapper for strings.Cut()
- lxd/network/openvswitch/ovs: use
--columns
with ovs-vsctl
- lxd/network/openvswitch/ovn: use
--columns
with ovn-nbctl
- lxd/db: Replace use of
queryScan
function with query.Scan
function
- lxd/db: Remove unused
queryScan
function
- api: On file push to containers, only change uid/gid if it fits within uidmap range
- lxd/instance_file: static analysis fixes
- test: Add test for
file push
of a file owned by uid outside of container range
- lxd: Pass
d.State
func to task functions launched by daemon
- lxd/api/internal: Always exit with non-error status if shutdown has been triggered manually in internalShutdown
- lxd/main/daemon: Always exit with non-error status code when stop signal is received
- lxd/networks: Rename networkShutdown to networkingStop
- lxd/daemon: Call networkingStop()
- lxd/api/cluster: Call networkingStop()
- lxd/device: Only remove GPU CDI device files for device being started
- github: actions/install-lxd-runtimedeps only install
yq
if not there already
- github: use libselinux-dev is a virtual package on Jammy+
- test/main: check for
setfattr
- api: Improve logging on file push
- lxd/resources/usb: the vendor ID is 16-bit by definition
- lxd/resources/usb: the product ID is 16-bit by definition
- lxd/resources/usb: the class ID is 8-bit by definition
- lxd/resources/usb: the subclass ID is 8-bit by definition
- lxd/storage: Add storageStop
- lxd/daemon: Call storageStop()
- lxd/db/db: Improve handling of closingCtx in OpenCluster
- lxd/daemon: Pass shutdownCtx to db.OpenCluster
- lxd/daemon: Add startStop lock for init() and Stop()
- lxd/daemon: Don’t populate d.db.Cluster until global database is fully initialised
- lxd/daemon: Improve logging
- lxc/config: Add method to override default connection arguments.
- lxc: Update calls to GetInstanceServerWithTransportWrapper.
- lxd/main/daemon: Rework cmdDaemon.run() to allow shutdown during start up
- lxd/daemon: Remove stop handling on error
- lxd/cluster: Adds context support to WaitUpgradeNotification
- lxd/cluster/heartbeat/test: Fix State for Bootstrap to indicate server is clustered
- lxd/daemon: Update d.gateway.WaitUpgradeNotification usage with context
- lxc/config: Make the images remote static.
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.90 to 7.0.91
- build(deps): bump github.com/NVIDIA/nvidia-container-toolkit
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.16
- build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0
- doc: Move contributing out of “Getting Started”
- lxc: Add generalised functions for comparing top-level resources.
- lxc: Refactor cluster group completion.
- lxc: Refactor cluster member completion.
- lxc: Refactor instance completion.
- lxc: Refactor network ACL completion.
- lxc: Refactor network completion.
- lxc: Refactor network zone completion.
- lxc: Refactor profile completion.
- lxc: Update project flag completion to attempt to use the correct remote.
- lxc: Refactor project completions.
- lxc: Refactor storage pool completions.
- lxd/main/waitready: No need to call /1.0 repeatedly in waitready
- lxc: Update
cmpRemotes
to use filters.
- lxc: Update calls to cmpRemotes.
- lxd/db/query/retry: Improve readability with early return
- Remove Rican7/retry dependency
- gomod: Removes Rican7/retry dependency
- lxc: Refactor cmpInstancesAndSnapshots.
- lxc: Add completion for
lxc snapshot
.
- lxc: Add completion for
lxc restore
.
- lxc: Fix completion for
lxc rename
.
- lxc: Remove
cmpImageFingerprintsFromRemote
.
- lxc: Allow suggesting only instance remotes when comparing images.
- lxc: Update calls to
cmpImages
.
- lxc: Refactor file completion.
- lxc: Add completion for
lxc import
.
- lxc: Add completion for
lxc export
.
- lxc: Remove unused completion func in
lxc file delete
.
- lxc: Prevent file completion for all commands that haven’t explicitly set it.
- gomod: Update dependencies
- Makefile: fix typo in .PHONY target name
- Makefile: bump golangci-lint to v2.1.5
- lxc: Add configOptionAppender function.
- lxc: Refactor
cmpServerSetKeys
.
- lxc: Refactor
cmpServerAllKeys
.
- lxc: Don’t complete server configuration when comparing instance configuration.
- lxc: Refactor instance configuration completion.
- lxc: Refactor
cmpInstanceAllDevices
.
- lxc: Add completions for device subtypes.
- lxc: Refactor cmpInstanceAllDeviceOptions.
- lxc: Update
lxc config
command with refactored completions.
- lxc: Update
lxc config device
command with refactored completions.
- lxc: Update
lxc profile set
command with refactored completions.
- lxc/completion: Use
strings.HasPrefix
over strings.Contains
.
- lxc/completion: use
strings.HasPrefix()
to check for default remote name
- lxd: Use UTC as reference for snapshot expiry
- api: Add
clustering_restore_skip_mode
API extension
- shared/api: Fix extension typo (
clustering_evacuate_mode
→ clustering_evacuation_mode
)
- lxd: Update
restoreClusterMember
to migrate back remote instances only when not in skip
mode
- lxc/cluster: Add
--action
flag and skip
mode to lxc cluster restore
command
- lxc/cluster: Update
lxc cluster evacuate
description
- client: Add extension check for
clustering_restore_skip_mode
- test/suites: cluster restore test with
--skip
flag
- i18n: Update translation templates.
- i18n: Update translations.
- lxd/daemon: Make d.gateway.Cluster available even if OpenCluster returns with PreconditionFailed
- lxd/main/waitready: Increase waitready poll time
- test/suites/snapshots: Make expiry test more concrete
- test/suites/storage_snapshots: Make expiry test more concrete
- lxd/network/driver/bridge: Kill DNS services before removing interfaces in Stop()
- lxd: Always set the expiry date for snapshots
- lxd/query: Allow running manual queries against LXD without hitting /1.0
- test/suites: Check snapshot expiry zero value in recursive list mode if unset
- lxd: Add wait parameter to /internal/ready endpoint and use it in lxd waitready command
- lxd/daemon: Sync DB dir on shutdown
- lxd/api/internal: Don’t leave request go routine running if client disconnects in internalShutdown
- lxd/storage/drivers: Skip GPT alt‐header move on non-GPT disks (handle
sgdisk
exits 2 & 3)
- shared/ws/upgrader: Adds StartKeepAlive function
- lxd/instance/exec: Switch to ws.StartKeepAlive in Connect
- lxd/instance/exec: Improve comments
- client/lxd/instances: Lose unnecessary var definition in ConsoleInstance
- client/lxd/instances: Consume server generated websocket pings on Console* control connections
- lxd/instance/console: Send server-side initiated websocket keepalives
- lxd/storage: Improve error message wording in
CreateInstanceFromConversion
- lxd/node: Add link to debug_address config doc
- doc: Update metadata
- lxd/api/internal: Switch to configurable timeout parameter in internalWaitReady
- lxd/main/waitready: Rework cmdWaitready to use contexts and server-side timeout support
- lxd/events/connections: use nil payload on websocket.PingMessage
- shared/ws/upgrader: use nil payload on websocket.PingMessage
- lxd/events/connections: remove embedded field
Conn
from selector (staticcheck)
- doc: Document core.debug_address debugging
- lxd/events/connections: avoid shadowing builtin function close (revive)
- lxd/events/connections: add comments to exported funcs
- doc: update admonitions for microcloud integrated docs
- lxd/instance_put: Use proper status for error
- lxd/main/waitready: Use uint64 for flag timeout for consistency with server side
- Makefile: bump GOMIN to 1.24.2 for OpenFGA update
- doc/requirements: Go min is now 1.24.2
- Revert “Makefile: Pin github.com/go-jose/go-jose/v4@v4.0.5”
- gomod: Update dependencies
- github: bump allowed size for lxd-agent
- test/godeps: Update client deps
- test/godeps: Update lxc-config deps
- test/godeps: Update lxd-agent deps
- test/godeps: Update shared-api deps
- lxd/db/query/marshal: unused, drop
- client/simplestreams_images: avoid deprecated
shared.RunCommand()
- lxd/rsync/rsync: avoid deprecated
shared.RunCommand()
- lxd/storage/block/discard: avoid deprecated
shared.RunCommand()
- lxd/rsync/rsync: avoid shadowing builtin
min
- lxd/db/schema/query: avoid shadowing builtin
new
- fuidshift: unexport some funcs
- lxc-to-lxd: unexport some funcs
- client/lxd_oidc: remove embedded field
Token
from selector (staticcheck)
- lxd/dnsmasq/dhcpalloc/dhcpalloc: move condition evaluation (staticcheck)
- lxd/dnsmasq/dnsmasq: use
strings.Split()
(staticcheck)
- lxd/ip/link: remove embedded field
Link
from selector (staticcheck)
- lxd/network/network_utils: use
strings.Split()
(staticcheck)
- shared/api/url: remove embedded field
URL
from selector (staticcheck)
- lxd/refcount/refcount_test: remove unneeded type specifier (staticcheck)
- lxd/migration/migration_volumes: use
api.NewStatusError()
- shared/cmd/ask: avoid shadowing builtin
min
and max
- lxd/ip/addr: avoid deprecated
shared.RunCommand()
- lxd/ip/class: avoid deprecated
shared.RunCommand()
- lxd/storage/s3/miniod/admin: avoid deprecated
shared.RunCommand()
- shared/logger/types: use any instead of
interface{}
(revive)
- lxd/device/gpu_sriov: preallocate parentPCIAddresses
- lxd-migrate: unexport some funcs
- lxd/main: unexport some funcs
- lxd/main_forklimits: early return on error
- shared/cmd/ask: ignore suggestion to apply De Morgan’s law
- lxd/scriptlet/load: ignore starlark.SourceProgram deprecation
- lxd/db/migration: check type cast results
- lxd/idmap/idmapset_linux: avoid unnessary string formatting when logging
- golangci-lint: exclude
lxd/idmap/idmapset_linux.go
for now
- shared/json: drop unused
GetInt()
- lxd/warnings: remove tautological check
- shared/json: use
%q
for quoted strings
- shared/json: add comment for exported type and funcs
- shared/json: rework
GetString()
for early return (revive)
- shared/json: rework
GetMap()
for early return (revive)
- shared/json: rework
GetBool()
for early return (revive)
- lxc-to-lxd/utils: use
errors.New()
(perfsprint)
- lxd/main_migratedumpsuccess: use
errors.New()
(perfsprint)
- lxd/db/migration: use
%q
specifier to quote entity
- golangci-lint: enable testifylint
- golangci-lint: disable testifylint float-compare and require-error
- shared/util_test: compare the expected and actual dates
- shared/util_test: remove useless re-assignment
- *_test: reverse actual and expected values (testify)
- *_test: use
assert.Empty()
(testifylint)
- *_test: use proper functions for bool comparisons (testifylint)
- *_test: use
NoError
for error nil checks (testifylint)
- *_test: simplify len checks (testifylint)
- lxc/cluster: Improve error when evacuating offline member
- lxd/db/cluster/update_test: use
require.ErrorAs()
(testifylint)
- lxd/instance_test: don’t use
fmt.Errorf()
to report about test failures
- lxd/db/cluster/update_test: drop now unused
errors
import
- *_test: use
assert.Positive()
where applicable (testifylint)
- lxd/db/cluster/update_test: use
assert.Nil()
(testifylint)
- lxd/auth/drivers/tls_test: simplify assertion checks (testifylint)
- lxd/util/net_test: use
assert.NoError()
in goroutine
- lxc/utils_properties_test: replace
interface{}
by any
(revive)
- lxc/utils_properties_test: ignore type cast checks in tests
- github: Add KEV matching to security alerts
- lxc: Add completions for
lxc monitor
.
- lxc: Add completions for
lxc rebuild
.
- lxc: Completions for init and launch second arguments (instance remotes).
- test/suites: Add tests for CLI completions.
- lxd/db/generate: Add errors package import.
- lxd-generate: Remove fmt.Errorf occurrences without formatting.
- lxd/db/cluster: Run make update-schema.
- client/devlxd: use
errors.New()
(perfsprint)
- client/devlxd_images: use
errors.New()
(perfsprint)
- client/events: use
errors.New()
(perfsprint)
- client/lxd: use
errors.New()
(perfsprint)
- client/lxd_auth: use
errors.New()
(perfsprint)
- client/lxd_certificates: use
errors.New()
(perfsprint)
- client/lxd_containers: use
errors.New()
(perfsprint)
- client/lxd_events: use
errors.New()
(perfsprint)
- client/lxd_images: use
errors.New()
(perfsprint)
- client/lxd_instances: use
errors.New()
(perfsprint)
- client/lxd_oidc: use
errors.New()
(perfsprint)
- client/lxd_storage_volumes: use
errors.New()
(perfsprint)
- client/operations: use
errors.New()
(perfsprint)
- client/simplestreams: use
errors.New()
(perfsprint)
- client/simplestreams_images: use
errors.New()
(perfsprint)
- client/util: use
errors.New()
(perfsprint)
- fuidshift/main_shift: use
errors.New()
(perfsprint)
- lxc-to-lxd/main_migrate: use
errors.New()
(perfsprint)
- lxc-to-lxd/main_netcat: use
errors.New()
(perfsprint)
- lxc/auth: use
errors.New()
(perfsprint)
- lxc/config/errors: use
errors.New()
(perfsprint)
- lxc/config/remote: use
errors.New()
(perfsprint)
- lxc/file: use
errors.New()
(perfsprint)
- lxc/image: use
errors.New()
(perfsprint)
- lxc/move: use
errors.New()
(perfsprint)
- lxc/network_forward: use
errors.New()
(perfsprint)
- lxc/network_load_balancer: use
errors.New()
(perfsprint)
- lxc/storage_volume: use
errors.New()
(perfsprint)
- lxd-agent/events: use
errors.New()
(perfsprint)
- lxd-agent/exec: use
errors.New()
(perfsprint)
- lxd-agent/server: use
errors.New()
(perfsprint)
- lxd-migrate/main_migrate: use
errors.New()
(perfsprint)
- lxd-migrate/main_netcat: use
errors.New()
(perfsprint)
- lxd-migrate/utils: use
errors.New()
(perfsprint)
- lxd-user/lxd: use
errors.New()
(perfsprint)
- lxd-user/main_callhook: use
errors.New()
(perfsprint)
- lxd-user/main_daemon: use
errors.New()
(perfsprint)
- lxd/api_1.0: use
errors.New()
(perfsprint)
- lxd/api_cluster: use
errors.New()
(perfsprint)
- lxd/api_devlxd: use
errors.New()
(perfsprint)
- lxd/api_internal: use
errors.New()
(perfsprint)
- lxd/api_internal_recover: use
errors.New()
(perfsprint)
- lxd/api_project: use
errors.New()
(perfsprint)
- lxd/apparmor/instance: use
errors.New()
(perfsprint)
- lxd/archive/archive: use
errors.New()
(perfsprint)
- lxd/auth/drivers/authorization: use
errors.New()
(perfsprint)
- lxd/auth/drivers/common: use
errors.New()
(perfsprint)
- lxd/auth/drivers/openfga: use
errors.New()
(perfsprint)
- lxd/auth/oidc/oidc: use
errors.New()
(perfsprint)
- lxd/backup: use
errors.New()
(perfsprint)
- lxd/backup/backup_config_utils: use
errors.New()
(perfsprint)
- lxd/backup/backup_utils: use
errors.New()
(perfsprint)
- lxd/backup/config/backup_config: use
errors.New()
(perfsprint)
- lxd/bgp/errors: use
errors.New()
(perfsprint)
- lxd/bgp/server: use
errors.New()
(perfsprint)
- lxd/certificate/type: use
errors.New()
(perfsprint)
- lxd/certificates: use
errors.New()
(perfsprint)
- lxd/cgroup/abstraction: use
errors.New()
(perfsprint)
- lxd/cgroup/errors: use
errors.New()
(perfsprint)
- lxd/cgroup/load: use
errors.New()
(perfsprint)
- lxd/cluster/config/config: use
errors.New()
(perfsprint)
- lxd/cluster/gateway: use
errors.New()
(perfsprint)
- lxd/cluster/heartbeat: use
errors.New()
(perfsprint)
- lxd/cluster/membership: use
errors.New()
(perfsprint)
- lxd/cluster/notify_test: use
errors.New()
(perfsprint)
- lxd/cluster/recover: use
errors.New()
(perfsprint)
- lxd/cluster/tls: use
errors.New()
(perfsprint)
- lxd/cluster/upgrade: use
errors.New()
(perfsprint)
- lxd/config/map: use
errors.New()
(perfsprint)
- lxd/config/map_test: use
errors.New()
(perfsprint)
- lxd/config/schema: use
errors.New()
(perfsprint)
- lxd/config/schema_internal_test: use
errors.New()
(perfsprint)
- lxd/convert_instance: use
errors.New()
(perfsprint)
- lxd/daemon: use
errors.New()
(perfsprint)
- lxd/daemon_images: use
errors.New()
(perfsprint)
- lxd/daemon_storage: use
errors.New()
(perfsprint)
- lxd/db/cluster: use
errors.New()
(perfsprint)
- lxd/db/cluster/certificates: use
errors.New()
(perfsprint)
- lxd/db/cluster/entities: use
errors.New()
(perfsprint)
- lxd/db/cluster/identities: use
errors.New()
(perfsprint)
- lxd/db/cluster/open: use
errors.New()
(perfsprint)
- lxd/db/db: use
errors.New()
(perfsprint)
- lxd/db/errors: use
errors.New()
(perfsprint)
- lxd/db/freshschema/main: use
errors.New()
(perfsprint)
- lxd/db/generate/db: use
errors.New()
(perfsprint)
- lxd/db/generate/lex/parse: use
errors.New()
(perfsprint)
- lxd/db/generate/root: use
errors.New()
(perfsprint)
- lxd/db/images: use
errors.New()
(perfsprint)
- lxd/db/instances: use
errors.New()
(perfsprint)
- lxd/db/migration: use
errors.New()
(perfsprint)
- lxd/db/network_forwards: use
errors.New()
(perfsprint)
- lxd/db/network_load_balancers: use
errors.New()
(perfsprint)
- lxd/db/networks: use
errors.New()
(perfsprint)
- lxd/db/node: use
errors.New()
(perfsprint)
- lxd/db/openfga/openfga: use
errors.New()
(perfsprint)
- lxd/db/query/count: use
errors.New()
(perfsprint)
- lxd/db/query/objects: use
errors.New()
(perfsprint)
- lxd/db/query/transaction_test: use
errors.New()
(perfsprint)
- lxd/db/raft: use
errors.New()
(perfsprint)
- lxd/db/schema/query: use
errors.New()
(perfsprint)
- lxd/db/schema/schema: use
errors.New()
(perfsprint)
- lxd/db/schema/schema_test: use
errors.New()
(perfsprint)
- lxd/db/storage_buckets: use
errors.New()
(perfsprint)
- lxd/db/storage_pools: use
errors.New()
(perfsprint)
- lxd/db/storage_volume_snapshots: use
errors.New()
(perfsprint)
- lxd/db/storage_volumes: use
errors.New()
(perfsprint)
- lxd/db/warnings: use
errors.New()
(perfsprint)
- lxd/device/cdi/configure: use
errors.New()
(perfsprint)
- lxd/device/cdi/spec: use
errors.New()
(perfsprint)
- lxd/device/device_load: use
errors.New()
(perfsprint)
- lxd/device/device_utils_disk: use
errors.New()
(perfsprint)
- lxd/device/device_utils_infiniband: use
errors.New()
(perfsprint)
- lxd/device/device_utils_network: use
errors.New()
(perfsprint)
- lxd/device/device_utils_unix: use
errors.New()
(perfsprint)
- lxd/device/device_utils_unix_events: use
errors.New()
(perfsprint)
- lxd/device/disk: use
errors.New()
(perfsprint)
- lxd/device/errors: use
errors.New()
(perfsprint)
- lxd/device/gpu_mdev: use
errors.New()
(perfsprint)
- lxd/device/gpu_mig: use
errors.New()
(perfsprint)
- lxd/device/gpu_physical: use
errors.New()
(perfsprint)
- lxd/device/gpu_sriov: use
errors.New()
(perfsprint)
- lxd/device/infiniband_physical: use
errors.New()
(perfsprint)
- lxd/device/infiniband_sriov: use
errors.New()
(perfsprint)
- lxd/device/nic_bridged: use
errors.New()
(perfsprint)
- lxd/device/nic_ipvlan: use
errors.New()
(perfsprint)
- lxd/device/nic_macvlan: use
errors.New()
(perfsprint)
- lxd/device/nic_ovn: use
errors.New()
(perfsprint)
- lxd/device/nic_p2p: use
errors.New()
(perfsprint)
- lxd/device/nic_physical: use
errors.New()
(perfsprint)
- lxd/device/nic_routed: use
errors.New()
(perfsprint)
- lxd/device/nic_sriov: use
errors.New()
(perfsprint)
- lxd/device/pci: use
errors.New()
(perfsprint)
- lxd/device/pci/pci: use
errors.New()
(perfsprint)
- lxd/device/proxy: use
errors.New()
(perfsprint)
- lxd/device/tpm: use
errors.New()
(perfsprint)
- lxd/device/unix_common: use
errors.New()
(perfsprint)
- lxd/device/unix_hotplug: use
errors.New()
(perfsprint)
- lxd/device/usb: use
errors.New()
(perfsprint)
- lxd/dnsmasq/dhcpalloc/dhcpalloc: use
errors.New()
(perfsprint)
- lxd/endpoints/endpoints: use
errors.New()
(perfsprint)
- lxd/endpoints/listeners/starttls: use
errors.New()
(perfsprint)
- lxd/endpoints/socket: use
errors.New()
(perfsprint)
- lxd/endpoints/vsock: use
errors.New()
(perfsprint)
- lxd/events/events: use
errors.New()
(perfsprint)
- lxd/firewall/drivers/drivers_nftables: use
errors.New()
(perfsprint)
- lxd/firewall/drivers/drivers_util: use
errors.New()
(perfsprint)
- lxd/firewall/drivers/drivers_xtables: use
errors.New()
(perfsprint)
- lxd/fsmonitor/drivers/errors: use
errors.New()
(perfsprint)
- lxd/identities: use
errors.New()
(perfsprint)
- lxd/idmap/idmapset_linux: use
errors.New()
(perfsprint)
- lxd/images: use
errors.New()
(perfsprint)
- lxd/instance/drivers/driver_common: use
errors.New()
(perfsprint)
- lxd/instance/drivers/driver_lxc: use
errors.New()
(perfsprint)
- lxd/instance/drivers/driver_qemu: use
errors.New()
(perfsprint)
- lxd/instance/drivers/driver_qemu_cmd: use
errors.New()
(perfsprint)
- lxd/instance/drivers/driver_qemu_metrics: use
errors.New()
(perfsprint)
- lxd/instance/drivers/load: use
errors.New()
(perfsprint)
- lxd/instance/drivers/qmp/commands: use
errors.New()
(perfsprint)
- lxd/instance/drivers/qmp/errors: use
errors.New()
(perfsprint)
- lxd/instance/drivers/qmp/monitor: use
errors.New()
(perfsprint)
- lxd/instance/drivers/uefi/uefi: use
errors.New()
(perfsprint)
- lxd/instance/instance_errors: use
errors.New()
(perfsprint)
- lxd/instance/instance_utils: use
errors.New()
(perfsprint)
- lxd/instance/instancetype/instance: use
errors.New()
(perfsprint)
- lxd/instance/instancetype/instance_type: use
errors.New()
(perfsprint)
- lxd/instance/operationlock/operationlock: use
errors.New()
(perfsprint)
- lxd/instance_backup: use
errors.New()
(perfsprint)
- lxd/instance_console: use
errors.New()
(perfsprint)
- lxd/instance_delete: use
errors.New()
(perfsprint)
- lxd/instance_exec: use
errors.New()
(perfsprint)
- lxd/instance_file: use
errors.New()
(perfsprint)
- lxd/instance_get: use
errors.New()
(perfsprint)
- lxd/instance_logs: use
errors.New()
(perfsprint)
- lxd/instance_metadata: use
errors.New()
(perfsprint)
- lxd/instance_patch: use
errors.New()
(perfsprint)
- lxd/instance_post: use
errors.New()
(perfsprint)
- lxd/instance_put: use
errors.New()
(perfsprint)
- lxd/instance_rebuild: use
errors.New()
(perfsprint)
- lxd/instance_sftp: use
errors.New()
(perfsprint)
- lxd/instance_snapshot: use
errors.New()
(perfsprint)
- lxd/instance_state: use
errors.New()
(perfsprint)
- lxd/instance_uefi_vars: use
errors.New()
(perfsprint)
- lxd/instances_get: use
errors.New()
(perfsprint)
- lxd/instances_post: use
errors.New()
(perfsprint)
- lxd/ip/link: use
errors.New()
(perfsprint)
- lxd/loki/loki: use
errors.New()
(perfsprint)
- lxd/maas/controller: use
errors.New()
(perfsprint)
- lxd/main_activateifneeded: use
errors.New()
(perfsprint)
- lxd/main_callhook: use
errors.New()
(perfsprint)
- lxd/main_cluster: use
errors.New()
(perfsprint)
- lxd/main_daemon: use
errors.New()
(perfsprint)
- lxd/main_forkconsole: use
errors.New()
(perfsprint)
- lxd/main_forkdns: use
errors.New()
(perfsprint)
- lxd/main_forklimits: use
errors.New()
(perfsprint)
- lxd/main_forkmigrate: use
errors.New()
(perfsprint)
- lxd/main_forkstart: use
errors.New()
(perfsprint)
- lxd/main_forksyscallgo: use
errors.New()
(perfsprint)
- lxd/main_forkzfs: use
errors.New()
(perfsprint)
- lxd/main_import: use
errors.New()
(perfsprint)
- lxd/main_init: use
errors.New()
(perfsprint)
- lxd/main_init_auto: use
errors.New()
(perfsprint)
- lxd/main_init_interactive: use
errors.New()
(perfsprint)
- lxd/main_manpage: use
errors.New()
(perfsprint)
- lxd/main_netcat: use
errors.New()
(perfsprint)
- lxd/main_recover: use
errors.New()
(perfsprint)
- lxd/main_shutdown: use
errors.New()
(perfsprint)
- lxd/main_sql: use
errors.New()
(perfsprint)
- lxd/migrate_instance: use
errors.New()
(perfsprint)
- lxd/migrate_storage_volumes: use
errors.New()
(perfsprint)
- lxd/migration/wsproto: use
errors.New()
(perfsprint)
- lxd/migration_connection: use
errors.New()
(perfsprint)
- lxd/network/acl/acl_ovn: use
errors.New()
(perfsprint)
- lxd/network/acl/acl_validation: use
errors.New()
(perfsprint)
- lxd/network/acl/driver_common: use
errors.New()
(perfsprint)
- lxd/network/driver_bridge: use
errors.New()
(perfsprint)
- lxd/network/driver_common: use
errors.New()
(perfsprint)
- lxd/network/driver_ovn: use
errors.New()
(perfsprint)
- lxd/network/driver_physical: use
errors.New()
(perfsprint)
- lxd/network/errors: use
errors.New()
(perfsprint)
- lxd/network/network_utils: use
errors.New()
(perfsprint)
- lxd/network/network_utils_sriov: use
errors.New()
(perfsprint)
- lxd/network/openvswitch/ovn: use
errors.New()
(perfsprint)
- lxd/network/openvswitch/ovs: use
errors.New()
(perfsprint)
- lxd/network/zone/zone: use
errors.New()
(perfsprint)
- lxd/network_acls: use
errors.New()
(perfsprint)
- lxd/network_zones: use
errors.New()
(perfsprint)
- lxd/networks: use
errors.New()
(perfsprint)
- lxd/operations: use
errors.New()
(perfsprint)
- lxd/operations/operations: use
errors.New()
(perfsprint)
- lxd/patches: use
errors.New()
(perfsprint)
- lxd/profiles: use
errors.New()
(perfsprint)
- lxd/profiles_utils: use
errors.New()
(perfsprint)
- lxd/project/limits/permissions: use
errors.New()
(perfsprint)
- lxd/project/project: use
errors.New()
(perfsprint)
- lxd/resources/cpu: use
errors.New()
(perfsprint)
- lxd/resources/gpu: use
errors.New()
(perfsprint)
- lxd/response/upgrade: use
errors.New()
(perfsprint)
- lxd/rsync/rsync: use
errors.New()
(perfsprint)
- lxd/scriptlet/instance_placement: use
errors.New()
(perfsprint)
- lxd/scriptlet/load/load: use
errors.New()
(perfsprint)
- lxd/storage/backend_lxd: use
errors.New()
(perfsprint)
- lxd/storage/block/discard: use
errors.New()
(perfsprint)
- lxd/storage/block/utils: use
errors.New()
(perfsprint)
- lxd/storage/connectors/connector_sdc: use
errors.New()
(perfsprint)
- lxd/storage/connectors/utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_btrfs: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_btrfs_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_btrfs_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_ceph: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_ceph_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_ceph_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_cephfs: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_cephfs_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_cephobject: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_cephobject_buckets: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_common: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_dir_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_dir_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_lvm: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_lvm_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_lvm_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_powerflex_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_pure: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_pure_util: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_zfs: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_zfs_utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/driver_zfs_volumes: use
errors.New()
(perfsprint)
- lxd/storage/drivers/errors: use
errors.New()
(perfsprint)
- lxd/storage/drivers/generic_vfs: use
errors.New()
(perfsprint)
- lxd/storage/drivers/utils: use
errors.New()
(perfsprint)
- lxd/storage/drivers/utils_ceph: use
errors.New()
(perfsprint)
- lxd/storage/drivers/volume: use
errors.New()
(perfsprint)
- lxd/storage/drivers/volume_test: use
errors.New()
(perfsprint)
- lxd/storage/errors: use
errors.New()
(perfsprint)
- lxd/storage/filesystem/fs: use
errors.New()
(perfsprint)
- lxd/storage/s3/policy: use
errors.New()
(perfsprint)
- lxd/storage/utils: use
errors.New()
(perfsprint)
- lxd/storage_buckets: use
errors.New()
(perfsprint)
- lxd/storage_pools: use
errors.New()
(perfsprint)
- lxd/storage_volumes: use
errors.New()
(perfsprint)
- lxd/storage_volumes_backup: use
errors.New()
(perfsprint)
- lxd/storage_volumes_snapshot: use
errors.New()
(perfsprint)
- lxd/subprocess/errors: use
errors.New()
(perfsprint)
- lxd/subprocess/proc: use
errors.New()
(perfsprint)
- lxd/task/schedule: use
errors.New()
(perfsprint)
- lxd/task/task_test: use
errors.New()
(perfsprint)
- lxd/template/chroot: use
errors.New()
(perfsprint)
- lxd/ucred/ucred: use
errors.New()
(perfsprint)
- lxd/util/http: use
errors.New()
(perfsprint)
- lxd/util/kernel: use
errors.New()
(perfsprint)
- lxd/util/net: use
errors.New()
(perfsprint)
- lxd/util/random: use
errors.New()
(perfsprint)
- lxd/util/version: use
errors.New()
(perfsprint)
- lxd/warnings: use
errors.New()
(perfsprint)
- lxd/warnings/warnings: use
errors.New()
(perfsprint)
- shared/api/operation: use
errors.New()
(perfsprint)
- shared/archive: use
errors.New()
(perfsprint)
- shared/cancel/http: use
errors.New()
(perfsprint)
- shared/cert: use
errors.New()
(perfsprint)
- shared/cmd/cancel: use
errors.New()
(perfsprint)
- shared/cmd/sort_test: use
errors.New()
(perfsprint)
- shared/cmd/table: use
errors.New()
(perfsprint)
- shared/cmd/table_test: use
errors.New()
(perfsprint)
- shared/filter/clause: use
errors.New()
(perfsprint)
- shared/filter/match: use
errors.New()
(perfsprint)
- shared/ioprogress/reader: use
errors.New()
(perfsprint)
- shared/network: use
errors.New()
(perfsprint)
- shared/network_ip: use
errors.New()
(perfsprint)
- shared/simplestreams/products: use
errors.New()
(perfsprint)
- shared/tcp/tcp_timeouts: use
errors.New()
(perfsprint)
- shared/trust/hmac_argon2: use
errors.New()
(perfsprint)
- shared/usbid/parse: use
errors.New()
(perfsprint)
- shared/util: use
errors.New()
(perfsprint)
- shared/util_linux: use
errors.New()
(perfsprint)
- shared/validate/validate: use
errors.New()
(perfsprint)
- test/mini-oidc/storage/storage: use
errors.New()
(perfsprint)
- lxd/response/swagger: annotate individual strucs for nolint:unused
- lxd/auth/oidc: Use hkdf from stdlib.
- lxd/network/driver_bridge: use
strings.Cut()
instead of strings.Split()
- lxd/network/driver_bridge: replace
fmt.Sprintf()
by string concatenations (perfsprint)
- lxd/network/driver_bridge: replace
fmt.Sprintf()
with strconv.FormatUint()
- lxd/network/driver_bridge: replace
fmt.Sprint()
with strconv.Itoa()
- test/main: add iptables to required commands
- test/main: add /bin/busybox to required commands
- test/main: only umount dev if needed
- test/main: remove TEST_DIR
- test/includes/lxd: ignore empty/missing daemons file
- test/suites/clustering: use smaller containers in
clustering_metrics()
- test/suites/clustering: add
clustering_fan()
- test/main: run
clustering_fan
test
- Revert “lxd/response/swagger: annotate individual strucs for nolint:unused”
- lxd/response/swagger: silence noise from
unused
linter
- build(deps): bump github/codeql-action from 3.28.16 to 3.28.17
- lxc/network_allocations: use
strconv.FormatBool()
(perfsprint)
- lxd/api_1.0: use
strconv.FormatBool()
(perfsprint)
- lxd/device/device_utils_network: use
strconv.FormatBool()
(perfsprint)
- lxd/device/nic_ipvlan: use
strconv.FormatBool()
(perfsprint)
- lxd/device/nic_macvlan: use
strconv.FormatBool()
(perfsprint)
- lxd/device/nic_physical: use
strconv.FormatBool()
(perfsprint)
- lxd/device/nic_routed: use
strconv.FormatBool()
(perfsprint)
- lxd/instance/drivers/driver_lxc: use
strconv.FormatBool()
(perfsprint)
- lxd/main_init_interactive: use
strconv.FormatBool()
(perfsprint)
- lxd/storage/drivers/driver_btrfs_utils: use
strconv.FormatBool()
(perfsprint)
- lxd/storage/drivers/driver_pure_util: use
strconv.FormatBool()
(perfsprint)
- client/lxd_images: use
hex.EncodeToString()
(perfsprint)
- lxd/apparmor/apparmor: use
hex.EncodeToString()
(perfsprint)
- lxd/daemon_images: use
hex.EncodeToString()
(perfsprint)
- lxd/images: use
hex.EncodeToString()
(perfsprint)
- lxd/util/http: use
hex.EncodeToString()
(perfsprint)
- shared/util: use
hex.EncodeToString()
(perfsprint)
- lxc/cluster_group: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/console: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/list: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/network: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/network_acl: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/network_forward: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/network_load_balancer: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/network_zone: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/profile: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/project: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/remote: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxc/warning: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd-benchmark/benchmark/report: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd-benchmark/benchmark/util: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd-user/lxd: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd-user/proxy: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/api_devlxd: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/archive/archive: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/daemon: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/db/cluster/open_test: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/cdi/configure: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/device_utils_network: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/device_utils_unix: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/gpu: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/gpu_sriov: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/infiniband_physical: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/infiniband_sriov: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_bridged: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_ovn: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_p2p: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_physical: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_routed: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/nic_sriov: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/proxy: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/device/usb: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/devices: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/firewall/drivers/drivers_util: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/firewall/drivers/drivers_xtables: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/instance/drivers/driver_lxc: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/instance/drivers/driver_qemu_templates: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/instance_file: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/instance_instance_types: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/ip/link: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/main_init_interactive: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/network/driver_ovn: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/network/network_utils: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/network/network_utils_sriov: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/network/openvswitch/ovn: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/network/zone/zone: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/project/limits/permissions: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/scriptlet/starlark_test: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_btrfs_volumes: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_cephfs_volumes: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_lvm: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_powerflex_volumes: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_pure_volumes: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_zfs: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_zfs_utils: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/driver_zfs_volumes: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/drivers/generic_vfs: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/filesystem/fs: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/storage/utils: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/util/net: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/util/random: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- shared/simplestreams/products: use
strconv
funcs to replace fmt.Sprint{,f}()
(perfsprint)
- lxd/init: do not use
fmt.Sprint()
on strings (perfsprint)
- lxd/lxd-metadata/lxd_metadata: do not use
fmt.Sprint()
on strings (perfsprint)
- client/lxd_network_zones: use string concatenation where possible (perfsprint)
- client/lxd_networks: use string concatenation where possible (perfsprint)
- client/lxd_storage_pools: use string concatenation where possible (perfsprint)
- client/lxd_warnings: use string concatenation where possible (perfsprint)
- client/simplestreams_images: use string concatenation where possible (perfsprint)
- lxc-to-lxd/main_migrate: use string concatenation where possible (perfsprint)
- lxc-to-lxd/transfer: use string concatenation where possible (perfsprint)
- lxd-migrate/main_migrate: use string concatenation where possible (perfsprint)
- lxd-migrate/transfer: use string concatenation where possible (perfsprint)
- lxd-migrate/utils: use string concatenation where possible (perfsprint)
- lxd/auth/generate/main: use string concatenation where possible (perfsprint)
- lxd/config/errors: use string concatenation where possible (perfsprint)
- lxd/daemon_images: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_certificate: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_cluster_group: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_cluster_member: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_container: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_identity: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_identity_provider_group: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_image: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_image_alias: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_instance: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_instance_backup: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_instance_snapshot: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_network: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_network_acl: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_network_zone: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_operation: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_profile: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_project: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_storage_bucket: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_storage_pool: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_storage_volume: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_storage_volume_backup: use string concatenation where possible (perfsprint)
- lxd/db/cluster/entity_type_storage_volume_snapshot: use string concatenation where possible (perfsprint)
- lxd/db/cluster/identity_provider_groups: use string concatenation where possible (perfsprint)
- lxd/db/cluster/update_test: use string concatenation where possible (perfsprint)
- lxd/db/generate/db/method: use string concatenation where possible (perfsprint)
- lxd/db/generate/db/stmt: use string concatenation where possible (perfsprint)
- lxd/db/generate/file/write: use string concatenation where possible (perfsprint)
- lxd/db/generate/lex/lang: use string concatenation where possible (perfsprint)
- lxd/db/migration: use string concatenation where possible (perfsprint)
- lxd/db/storage_pools: use string concatenation where possible (perfsprint)
- lxd/device/device_utils_usb_events: use string concatenation where possible (perfsprint)
- lxd/device/gpu_mdev: use string concatenation where possible (perfsprint)
- lxd/device/gpu_mig: use string concatenation where possible (perfsprint)
- lxd/device/infiniband_physical: use string concatenation where possible (perfsprint)
- lxd/device/infiniband_sriov: use string concatenation where possible (perfsprint)
- lxd/device/nic_bridged: use string concatenation where possible (perfsprint)
- lxd/device/nic_ipvlan: use string concatenation where possible (perfsprint)
- lxd/device/nic_macvlan: use string concatenation where possible (perfsprint)
- lxd/device/nic_ovn: use string concatenation where possible (perfsprint)
- lxd/device/nic_physical: use string concatenation where possible (perfsprint)
- lxd/device/nic_routed: use string concatenation where possible (perfsprint)
- lxd/device/pci/pci: use string concatenation where possible (perfsprint)
- lxd/device/proxy: use string concatenation where possible (perfsprint)
- lxd/device/tpm: use string concatenation where possible (perfsprint)
- lxd/devlxd_test: use string concatenation where possible (perfsprint)
- lxd/endpoints/network_test: use string concatenation where possible (perfsprint)
- lxd/instance: use string concatenation where possible (perfsprint)
- lxd/instance/drivers/driver_common: use string concatenation where possible (perfsprint)
- lxd/instance/drivers/driver_qemu_bus: use string concatenation where possible (perfsprint)
- lxd/instance/instance_utils: use string concatenation where possible (perfsprint)
- lxd/instance_instance_types: use string concatenation where possible (perfsprint)
- lxd/maas/controller: use string concatenation where possible (perfsprint)
- lxd/main_forkdns: use string concatenation where possible (perfsprint)
- lxd/main_migratedumpsuccess: use string concatenation where possible (perfsprint)
- lxd/main_shutdown: use string concatenation where possible (perfsprint)
- lxd/main_test: use string concatenation where possible (perfsprint)
- lxd/network/acl/acl_firewall: use string concatenation where possible (perfsprint)
- lxd/network/acl/acl_ovn: use string concatenation where possible (perfsprint)
- lxd/network/acl/driver_common: use string concatenation where possible (perfsprint)
- lxd/network/driver_ovn: use string concatenation where possible (perfsprint)
- lxd/network/network_utils: use string concatenation where possible (perfsprint)
- lxd/network/network_utils_sriov: use string concatenation where possible (perfsprint)
- lxd/network/openvswitch/ovn: use string concatenation where possible (perfsprint)
- lxd/network_allocations: use string concatenation where possible (perfsprint)
- lxd/operations: use string concatenation where possible (perfsprint)
- lxd/patches: use string concatenation where possible (perfsprint)
- lxd/resources/gpu: use string concatenation where possible (perfsprint)
- lxd/resources/storage: use string concatenation where possible (perfsprint)
- lxd/rsync/rsync: use string concatenation where possible (perfsprint)
- lxd/scriptlet/instance_placement: use string concatenation where possible (perfsprint)
- lxd/storage/connectors/connector_nvme: use string concatenation where possible (perfsprint)
- lxd/storage/drivers/driver_ceph_utils: use string concatenation where possible (perfsprint)
- lxd/storage/drivers/driver_ceph_volumes: use string concatenation where possible (perfsprint)
- lxd/storage/drivers/driver_cephfs: use string concatenation where possible (perfsprint)
- lxd/storage/drivers/driver_common: use string concatenation where possible (perfsprint)
- lxd/storage/s3/miniod/admin: use string concatenation where possible (perfsprint)
- shared/osarch/release_test: use string concatenation where possible (perfsprint)
- lxc/cluster: use
errors.New()
(perfsprint)
- lxd/instance/drivers/load: use
error.Error()
(perfsprint)
- lxd/instances: use
error.Error()
(perfsprint)
- lxd/main_forkcoresched: use
errors.New()
- lxd/main_forkexec: use
errors.New()
- lxd/storage/quota/projectquota: use
errors.New()
- lxd/main_forkmount: use
errors.New()
- lxd/main_forknet: use
errors.New()
- lxd/linux/socket_linux_cgo: use
strconv.FormatInt()
- lxd/idmap/shift_linux: use
errors.New()
- lxd/main_forksyscall: use
errors.New()
- lxd/main_forkuevent: use
errors.New()
- lxd/main_forkproxy: use
errors.New()
- lxd/main_forkproxy: use
strconv.FormatUint()
- shared/netutils/network_linux_cgo: use
strconv.FormatUint()
- shared/netutils/network_linux_cgo: use
errors.New()
- lxd/seccomp/seccomp: use
errors.New()
- lxd/seccomp/seccomp: use string concatenation
- lxd/seccomp/seccomp: avoid unneeded
fmt.Sprintf()
- lxd/seccomp/seccomp: use
strconvFormatUint()
to convert from _Ctype___u32 to string
- lxd/seccomp/seccomp: fix format
- lxd/seccomp/seccomp: use
strconv.Itoa()
for int->string
- lxd/seccomp/seccomp: use
strconv.FormatInt()
for int64->string
- golangci-lint: enable perfsprint linter
- lxd/devlxd_test: gci
- lxd/util/net: gci
- shared/simplestreams/products: gci
- lxd/db/cluster/open_test: gci
- lxd/instances: gci
- lxd/main_test: gci
- lxd/linux/socket_linux_cgo: drop = nil from declaration of var
- lxd: unexport command and run funcs
- lxd/main_fork*: add trailing dot to comment
- lxd/idmap/shift_linux: add trailing dot to comments
- lxd/device/gpu: ignore suggestion to apply De Morgan’s law
- lxd/linux/socket_linux_cgo: don’t comment constants from C
- lxd/linux/socket_linux_cgo: add comments to exported funcs
- lxd/idmap/shift_linux: stop godot from wanting a trailing dot
- lxd: Don’t persist vol users inside DB transaction in storagePoolVolumeUpdateUsers
- lxd/storage: Add PoolUsedByInstanceDevices
- lxd/storage: Update instance config file when pool gets updated
- test/suites/backup: Test the on disk backup file in backup_metadata
- lxd/instance: Pass pointer time snapshot expiry
- lxd/instance/drivers: Pass pointer time to internal snapshot funcs
- lxd/instance: Retrieve default expiry closer to snapshot creation
- lxd: Pass nil time in autoCreateInstanceSnapshots
- lxd/storage: Pass pointer time snapshot expiry
- lxd/storage: Retrieve default expiry closer to snapshot creation
- lxd: Pass nil time in autoCreateCustomVolumeSnapshots
- test/suites: Revert comparing creation/expiry dates without microseconds
- lxd/device: Skip address conflict validation for instance NIC rename
- tests: Add tests for bridged NIC device renaming
- tests: Initialize instances with
SMALL_ROOT_DISK
in bridged NIC container device tests
- tests: Launch instance with
SMALL_ROOT_DISK
in bridged NIC container device tests
- github: Update repo of lp-snap-build
- shared/entity: Add a
requiresLocation
method to typeInfo
.
- shared/entity: Only set the
target
parameter if location is required.
- shared/entity: Test target parameter is removed from normalised instance URLs.
- doc: Update storage volumes > Create an instance [WD-21423]
- lxd: Add response forwarding for remote targets to
storagePoolVolumeSnapshotsTypeGet
- tests: Add test to
clustering_storage
for creating and viewing storage volume snapshots
- lxd/storage: Check instance size during migration
- lxd/storage: Fix migration error due to rounding
- lxd/storage: Reword error message in
CreateInstanceFromMigration
for consistency with conversion API
- doc: update absolute URL link to MicroCloud docs
- update absolute URL links to LXD docs
- doc: use double instead of single quotes around relatedlinks
- doc/howto/snap: update snap store proxy to enterprise store
- shared/cancel: Reworks Canceller to be an interface and avoid using internal context.WithCancel
- lxd/daemon: Update cancel.Canceller usage
- lxd/daemon: Change shutdownCtx to a cancel.Canceller
- lxd/events: Update cancel.Canceller usage
- lxd/instance/exec: Update cancel.Canceller usage
- lxd/instance/exec: Use sync.OnceFunc for conciseness
- lxd/operations: Update cancel.Canceller usage
- lxd/storage/s3/miniod: Update cancel.Canceller usage
- lxd/loki: Switch to cancel.Canceller
- lxd/patches/test: Update cancel.Canceller usage
- lxd/auth/drivers: Log access denials where OpenFGA couldn’t find the requested tuple.
- lxd: Update instance permissions on move.
- test/suites: Update clustering move tests to use fine-grained auth.
- doc/migration: remove reference to
howto/migrate_from_lxc
- doc/instances: remove reference to
howto/migrate_from_lxc
- doc/howto/migrate_from_lxc: delete doc about
lxc-to-lxd
tool
- test/main: stop calling lxc_to_lxd test
- test/suites/lxc-to-lxd: stop testing
lxc-to-lxd
- Makefile: stop building
lxc-to-lxd
- gitignore: remove
lxc-to-lxd
- github: stop pulling
lxc-utils
in actions/install-lxd-builddeps
- github: replace
lxc-utils
by liblxc-common
in actions/install-lxd-runtimedeps
- lxc-to-lxd: remove code
- lxc/storage_volume: Improve error messages for
lxc storage volume export
- lxc/config_device: Improve error message when attempting to set instance device from profile
- i18n: Update translation templates.
- i18n: Update translations.
- doc/ref/userns-idmap: add info about lxd snap
- lxd/db: Move GetImageSource and ImageSourceProtocol to db/cluster
- lxd/db/cluster/images: Adds ToAPI()
- lxd/db/images: Updates GetImageByFingerprintPrefix to use ToAPI
- lxd/db/images: Updates GetImageFromAnyProject to use ToAPI
- lxd/db/images: Removes unused imageFillProfiles and imageFill functions
- doc: remove unused topical migration landing page
- doc: rename move_instances to instances_migrate, update links/redirect
- doc: use migrate wording to describe moving instances between servers
- doc: Update Storage docs - Move or Copy a Volume
- doc: Updates outdated UI image screenshots + optimises [WD-21424]
- lxd/device/nic/bridged: Handle invalid configuration
- lxd/db/cluster/images: Only populate UpdateImageSource if source is found in ToAPI()
- lxd/db/cluster/images: Update GetImageSource to return pointer to image
- lxd/images: Updated GetImageSource usage
- build(deps): bump actions/setup-go from 5.4.0 to 5.5.0
- build(deps): bump actions/dependency-review-action from 4.6.0 to 4.7.0
- build(deps): bump golang.org/x/tools from 0.32.0 to 0.33.0
- build(deps): bump github.com/miekg/dns from 1.1.65 to 1.1.66
- build(deps): bump github.com/vishvananda/netlink from 1.3.0 to 1.3.1
- build(deps): bump github.com/osrg/gobgp/v3 from 3.36.0 to 3.37.0
- doc/howto/instances_migrate: add related topics list
- github: improve efficiency of lxc/lxd-agent bin size checks
- test/main: rsync is a required dependency
- test/main: try to set GOPATH if not done already
- test/main: verify that other users can access all parent dirs of the test dir
- test/includes/lxd: bail early in panic_checker if no daemons file exist
- test/suites/exec: use smaller sleep when checking back on ops
- lxd: Add target request forwarding to
storagePoolVolumeTypeCustomBackupsGet
- lxd: Consolidate function calls into one database transaction in
storagePoolVolumeTypeCustomBackupsPost
- github: only check lxc/lxd-agent bin sizes of not built for coverage
- staticcheck.conf: add dedicated config to ignore ST1005
- lxd/seccomp: avoid int overflow in process count
- shared/util_linux: avoid int overflow in terminal
SetSize()
- lxd: Disallow deletion of server certificates.
- test/suites: Test that server certificates can’t be deleted.
- tests: Switch clustering test subnet
- Makefile: add dqlite target (deps calls it)
- Makefile: prepare for more deps
- Makefile: simplify how dqlite is updated
- Makefile: add
liblxc
target
- Makefile: check that liblxc.so is linked against some critically important libs
- Makefile: call liblxc target as part of
make deps
- doc/installing: replace
liblxc1
& liblxc-dev
packages by tools to build their equivalent
- github: update actions/install-lxd-builddeps to not use lxc daily PPA
- github: update actions/install-lxd-builddeps to explicitly depend on python3-venv
- doc/installing: python3-venv is a build requirement (for the docs)
- github: add libapparmor-dev to actions/install-lxd-builddeps
- doc/installing: libapparmor-dev is needed to build liblxc
- github: update actions/install-lxd-runtimedeps to not use lxc daily PPA
- github: include liblxc dependencies for system tests
- github: add PKG_CONFIG_PATH to list of env vars preserved for unit tests
- github: make runner’s home executable and set sub{uid,gid}
- github: remove unneeded liblxc build deps from actions/install-lxd-builddeps
- tests: Fix
command not found
error
- lxd: Replace use of
shared.ValueInSlice
with slices.Contains
- shared: Replace use of
ValueInSlice
with slices.Contains
- shared: Delete
ValueInSlice
(unused)
- Makefile: Pin github.com/olekukonko/tablewriter@v0.0.5 due to breaking API in later versions
- gomod: Update dependencies
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.91 to 7.0.92
- build(deps): bump github/codeql-action from 3.28.17 to 3.28.18
- build(deps): bump actions/dependency-review-action from 4.7.0 to 4.7.1
- doc: add info about Ubuntu Pro for instances
- lxd/storage/drivers/driver_cephobject: Fix typo in error
- test: Use jq raw output
- test: Check for min and max metadata versions
- lxd/daemon: Add network and storage pool cancellers
- lxd/state: Add Update(Network|Storage)Ready funcs
- lxd: Notify the daemon if all networks and storage pools are ready
- lxd/api_internal: Extend the ready endpoint to allow waiting for networks and storage pool
- lxd/main_waitready: Allow waiting for networks and storage pools to be ready
- util/http: Improve etag error message to guide towards a solution
- github: ask codeql to check actions themselves
- github: stop ignoring
.github/
dir for CodeQL scans
- Revert “lxd/storage: Add PoolUsedByInstanceDevices”
- Revert “lxd/storage: Update instance config file when pool gets updated”
- Revert “test/suites/backup: Test the on disk backup file in backup_metadata”
- test/includes/setup: don’t abort pipelines early with
grep -q
- test/suites/backup: don’t abort pipelines early with
grep -q
- test/suites/basic: don’t abort pipelines early with
grep -q
- test/suites/clustering: don’t abort pipelines early with
grep -q
- test/suites/clustering_instance_placement_scriptlet: don’t abort pipelines early with
grep -q
- test/suites/clustering_move: don’t abort pipelines early with
grep -q
- test/suites/concurrent: use safer
grep
patterns
- test/suites/concurrent: don’t abort pipelines early with
grep -q
- test/suites/config: don’t abort pipelines early with
grep -q
- test/suites/config: avoid antipattern
grep -v
- test/suites/container_devices_nic_bridged_filtering: don’t abort pipelines early with
grep -q
- test/suites/database: don’t abort pipeline early with
grep -q
- test/suites/deps: don’t abort pipeline early with
grep -q
- test/suites/devlxd: don’t abort pipelines early with
grep -q
- test/suites/filemanip: don’t abort pipeline early with
grep -q
- test/suites/image: don’t abort pipelines early with
grep -q
- test/suites/image_acl: don’t abort pipelines early with
grep -q
- test/suites/image_auto_update: don’t abort pipelines early with
grep -q
- test/suites/image_prefer_cached: don’t abort pipelines early with
grep -q
- test/suites/image_profiles: don’t abort pipelines early with
grep -q
- test/suites/init_auto: don’t abort pipelines early with
grep -q
- test/suites/init_interactive: don’t abort pipelines early with
grep -q
- test/suites/init_preseed: don’t abort pipelines early with
grep -q
- test/suites/migration: don’t abort pipelines early with
grep -q
- test/suites/network: don’t abort pipelines early with
grep -q
- test/suites/projects: don’t abort pipelines early with
grep -q
- test/suites/remote: don’t abort pipelines early with
grep -q
- test/suites/serverconfig: don’t abort pipelines early with
grep -q
- test/suites/snapshots: don’t abort pipelines early with
grep -q
- test/suites/sql: don’t abort pipeline early with
grep -q
- test/suites/storage_driver_ceph: don’t abort pipelines early with
grep -q
- test/suites/storage_driver_zfs: don’t abort pipelines early with
grep -q
- test/suites/storage_local_volume_handling: don’t abort pipelines early with
grep -q
- test/suites/storage_snapshots: don’t abort pipelines early with
grep -q
- test/suites/storage_volume_import: don’t abort pipelines early with
grep -q
- test/suites/tls_restrictions: don’t abort pipelines early with
grep -q
- test/suites/warnings: don’t abort pipelines early with
grep -q
- test/includes/lxd: remove dead code to kill lxc-monitord
- test/suites: Add waitready
- test/suites/backup: ignore failures when inspecting expected error messages
- test/suites/basic: avoid antipattern
grep -v
- test/suites/basic: fix activateifneeded test after unsetting
boot.autostart
- test/suites/basic: avoid
lxd activateifneeded
failures due to LXD being shutdown
- test/suites/clustering: simplify config check
- test/suites/clustering: use shell comparison for member listing
- test/suites/init_interactive: avoid
printf
- test/suites/init_preseed: avoid
printf
- test/suites/network: use safer
grep
patterns
- test/suites/network: simplify busybox’s udhcpc6 test
- test/suites/network: avoid antipattern
grep -v
- test/suites/remote: improve
awk
patterns
- test/suites/remote: use safer
grep
patterns
- test/suites/remote: ignore failure due to bad token when inspecting expected error message
- test/suites/remote:
echo
what’s going on in remote_admin
- test/suites/remote: avoid
grep -v
antipattern
- test/suites/tls_restrictions: don’t abort on expected failure from
curl
- test/suites/metrics: remove unneeded
sudo
call
- test/suites/network: remove unneeded
sudo
call
- test/suites/storage_driver_dir: remove unneeded
sudo
calls
- test/suites/storage_buckets: roAccessKey cannot get the
info
- test/main: catch errors in pipelines
- lxd/storage/s3/miniod: use
net.JoinHostPort()
- lxd-migrate/utils: use
net.JoinHostPort()
- test/main: improve
LXD_INSPECT=1
by spawning an interactive shell
- test/main: highlight the failed test function
- test/main: drop
test_
from from fallback description
- test/includes/lxd: if DEBUG is not set, return 0 in
panic_checker()
- doc/faq: add troubleshooting tips for GPU pass-through
- doc: add related topics for gpu devices
- github: update TICS’ CGO_CFLAGS for
liblxc
dep
- github: add LD_RUN_PATH env var to TICS
- github: update TICS env to run LXD daemon
- github: update LXD UI e2e env to run LXD daemon
- github: make runner home listable by others in LXD UI e2d
- github: remove unneeded vars setting in LXD UI e2e tests
- github: simplify env var settup and invocation of npx
- Makefile: add
env
target to export useful vars
- Makefile: remove broken lookup for system PKG_CONFIG_PATH
- github: limit PKG_CONFIG_PATH to just what’s needed
- lxd/seccomp: allow unprivileged whiteout creation
- lxd/storage/backend: Ensure storage bucket config is applied during bucket activation
- lxd/db/networks: Add GetNetworksNodeParent function
- lxd/network/driver/physical: Improve checkParentUse function for clustered mode
- Apply suggestions from code review
- test/main: avoid accidental re-execution from inside LXD_INSPECT session
- test/main: tweak
LXD_INSPECT=1
welcome text and prompt
- test/suites/network_forward: improve
grep
patterns
- test/suites/network_acl: fix indentation
- test/suites/network_acl: improve
grep
patterns
- test/suites/network_acl: use variable destination address
- test/suites/network_acl: verify firewall rules
- lxd/network/driver/physical: Change signature of checkParentUse function
- test: Expand clustering network test
- lxd/db/cluster: Switch order of entity type check in
GetEntityURLs
- lxd/device: Switch order of nesting check in
UnixDeviceCreate
- lxd/device: Move slice creation out of loop in
UnixDeviceCreate
- lxd: Simplify check in
promptConfirmation
- lxd/migration: Move slice creation out of loop in
TypesToHeader
- lxd/network: Move slice creation out of loop in NIC bridge
Validate
- lxd: Move slice creation out of loop in
networkAllocationsGet
- lxd/project: Switch order of checks in
NetworkAllowed
- shared: Move slice creation out of loop in
ParseLXDFileHeaders
- lxd/storage/drivers/zfs: Fix block-backed storage bucket validation
- test: Add storage bucket tests
- test/suites/clustering: check network statuses with full line patterns
- Makefile: use consistent syntax to reference variables
- Makefile: don’t use recursion when deleting old archive file in
make dist
- Makefile: simplify how HEAD hash is extracted
- Makefile: include liblxc in tarball produced by
make dist
- Makefile: have
make dist
produce reproducible archives
- test/deps/import-busybox: try to use LXD snap unix socket if available
- github: remove unused tests-snap workflow
- github: create test instance before LXD UI e2e tests
- github: tune disk perf early on in LXD UI e2e tests
- github: provide a default TARGET profile for playwright
- github: allow skipping static-analysis and unit-tests on manually triggered test runs
- test/main: Add timeout to ceph status command
- lxd: Update the users in storagePoolVolumeTypePostRename after the actual volume rename
- test/suites/clustering: Remove testing for false positives due to bug in LXD
- shared/api: Add missing ‘version’ struct tag
- doc/rest-api: Refresh swagger YAML
- Makefile: bump golangci-lint to v2.1.6
- golangci: enable musttag linter from now on
- Makefile: use
git rev-parse HEAD
to get current commit hash
- Makefile: use
git rev-parse HEAD
for dqlite
and liblxc
- gomod: Update dependencies
- test/godeps: Update client deps
- test/godeps: Update lxc-config deps
- test/godeps: Update lxd-agent deps
- github: do not reclaim disk space during cluster tests
- github: make sure the LXD snap is purged before installing microceph
- github: use caching in actions/download-minio
- github: split env vars update from building LXD deps
- github: cache dqlite/liblxc deps
- lxd/backup/config: Add missing struct tags (musttag)
- lxd/migration: Add missing struct tags (musttag)
- shared/api: Add missing struct tags (musttag)
- test/backends: cosmetic changes
- test/backends: use a variable for the pool name
- test/includes/check: test explicitly for non-emptiness
- test/includes/lxd: remove unneeded shellcheck ignores
- test/includes/storage: test explicitly for non-emptiness
- test/lint/godeps: double quote variable
- test/lint/newline-after-block: double quote variable
- test/suites/backup: add default case
- test/suites/exec: replace inconsistent variable use by
x1
- test/suites/clustering: double quote variables
- test/suites/clustering_move: double quote variable
- test/suites/container_devices_nic_bridged_filtering: double quote variable
- test/suites/container_devices_nic_bridged: improve
grep
patterns
- test/suites/container_devices_nic_bridged: double quote variables
- test/suites/container_devices_nic_ipvlan: avoid
grep -v
verdict when checking for volatile NIC cleanup
- test/suites/container_devices_nic_ipvlan: improve
grep
patterns
- test/suites/container_devices_nic_ipvlan: double quote variables
- test/suites/container_devices_nic_p2p: double quote variables
- test/suites/container_devices_nic_p2p: avoid
grep -v
verdict when checking for volatile NIC cleanup
- test/suites/container_devices_nic_p2p: improve
grep
patterns
- test/suites/container_devices_proxy: double quote variables
- test/suites/container_devices_proxy: improve
grep
patterns
- test/suites/container_local_cross_pool_handling: use shell comparisons
- test/suites/container_local_cross_pool_handling: silence shellcheck SC2248
- test/suites/container_move: double quote variables
- test/suites/devlxd: double quote variables
- test/suites/fdleak: double quote variable
- test/suites/filemanip: double quote variable
- test/suites/syslog: double quote variable
- test/suites/tls_restrictions: double quote variables
- test/suites/storage_local_volume_handling: silence shellcheck SC2248
- shellcheck: enable some optional checks
- doc/installing: split long
apt install
lines
- doc/installing: split build, run and test deps properly
- doc/installing: mention that
make deps
pulls dqlite
and liblxc
- test/main: msgmerge and msgfmt (gettext) are build-deps, not used in tests
- test/main:
xz
is required by test/deps/import-busybox
- github:
gettext
is not needed for running LXD
- github:
curl
is not needed for building LXD
- github: add libs needed to build
dqlite
- github: sort build-deps
- github: sort runtime-deps
- lxd/idmap: Add missing struct tags (musttag)
- lxd/backup/config: Revert linter fixes and use legacy tags instead
- doc: Update Network docs - Configure networks [WD-22189]
- Makefile: reuse GOPATH variable
- Makefile: export default values for
make env
- Makefile: add
make tics
- Release LXD 6.4
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