Back to the news overview

LXD 4.0.9 リリースのお知らせ

3rd of February 2022

はじめに

LXD チームが LXD 4.0.9 のリリースをお知らせします!

このリリースは、2025 年 6 月までサポートされる LXD 4.0 に対する 9 つめのバグフィックスリリースです。

バグ修正と改良点

このリリースには、開発ブランチで行われた数ヶ月分のバグ修正とマイナーな改良が含まれています。

主な変更点は次の通りです:

  • lxc copy--allow-inconsistent オプションを追加しました
  • lxc info が一貫して IEC 単位を使うようになりました
  • lxc help--sub-commands オプションを追加しました
  • lxc alias で数値の引数(@ARG1)が指定できるようになりました
  • lxc storage volume copy--destination-target オプションを追加しました
  • lxc cluster list が現在のクラスターリーダーを表示するようになりました(database-leader
  • Ceph の負荷を減らすためにストレージの設定オプションに ceph.rbd.du を追加しました
  • イメージの制限のサポート(我々のイメージサーバで有効化予定)
  • mig GPU での uuid サポート
  • 新しい security.agent.metrics 設定オプションを使って、(falseに設定した時)VM の lxc info で表示するデータを QEMU が提供する情報に制限できるようになりました

これらはすべて LXD のフィーチャーリリースからバックポートされた改良です。これらの改良はデータベースの変更や、API の動きの変更が不要で、LTS リリースにバックポートするのに十分な操作性の改良になると考えられたものです。

コミットの全リストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • lxd/db/query/transaction: Adds 10s timeout to Transaction
  • lxd/cluster/gateway: Add 30s idle timeout in dqliteProxy
  • lxd/cluster/gateway: Close remote connection in dqliteProxy
  • lxd/cluster/events: Disconnect event listeners for offline members in eventsUpdateListeners
  • lxd/events/events: Rework events.Listener to use websocket heartbeats
  • lxd/device/nic/bridged: Prevent specifying ipv{n}.address when NIC is connected to unmanaged parent bridge
  • test: Add test for bridged NIC not able to specify static IPs when using unmanaged parent bridge
  • lxd/events/events: Moves blocking reader into heartbeat function
  • lxd: Removes blocking reader from event client
  • lxd-agent: Removes blocking reader from event client
  • lxd/fsmonitor/drivers: Log warning instead of failing
  • lxd/cluster/gateway: Removes dqliteProxy idle timeout
  • lxd/cluster/gateway: Update logging in dqliteProxy
  • lxd/cluster/gateway: Set 30s TCP_USER_TIMEOUT and keep alive timers in dqliteProxy
  • lxd/util/net: Adds SetTCPUserTimeout function
  • lxd/db/db: retry cluster transactions once if context deadline exceeded
  • shared/validate: Add IsListOf
  • shared: Add network zone API
  • client: Rename lxd_network_forwards for consistency
  • client: Add network zone functions
  • doc/rest-api: Refresh swagger YAML
  • lxd/instance/qemu: Fix host-nodes on multi-node
  • lxd/migrate: Fix deadlock in sendControl
  • lxd/migrate: Time out when waiting for connections
  • lxd/storage/backend/lxd: Clarify errors in CreateInstanceFromCopy and CreateInstanceFromMigration
  • lxd/instances/post: Wrap error in createFromMigration
  • lxd/instances/post: Update comment in createFromMigration
  • lxd/instance/post: Replace node in errors with member
  • lxd/instances/post: Replace node with member in error in clusterCopyContainerInternal
  • test: Update teardown_clustering_netns to succeed if process has already gone
  • lxd/device/nic/bridged: Allow static IP on unmanaged bridge when MAAS subnet specified
  • bash-completion: Add restore snapshots
  • lxd/operations: Updates waitForOperations to accept consoleShutdownTimeout arg
  • lxd/daemon: Load shutdown timeout from DB in Stop()
  • lxd/daemon: Only call waitForOperations during Stop if cluster DB is available
  • lxd/api/internal: Wait for daemon to finish starting up before shutting down in internalShutdown
  • forkuevent: minor fixes
  • forkuevent: fix "--" placement
  • lxd/instances/qemu: Enable topoext on x86_64 with SMT
  • doc/instances: Explain CPU topology in VMs
  • lxc/file: Don't use HostPath on temp files
  • lxd/cluster: Log leader address on failure
  • lxd/api/cluster: Sleep for 100ms to allow http.Flush to render
  • lxd/fsmonitor: Don't crash on Walk errors
  • lxd/cluster: Add missing import
  • lxd/instance/lxc: Only mount for file operations if stopped
  • lxd/instance_exec: Improve and expand default PATH setting
  • lxd/instance/drivers/driver/lxc: Adds release function to reduce repetition of liblxc clearing logic
  • lxd/instance/drivers/driver/lxc: Release liblxc cache when stopping or shutting down
  • Replace 'which' with 'command -v'
  • Use which to resolve lxc's path without resolving the shell function of the same name
  • lxc: better advertise support for VMs
  • i18n: Update translation templates
  • lxd/device/device/utils/network: Renames networkSnapshotPhysicalNic to networkSnapshotPhysicalNIC
  • lxd/device: networkSnapshotPhysicalNIC usage
  • lxd/device/device/utils/network: Renames networkRestorePhysicalNic to networkRestorePhysicalNIC
  • lxd/device: networkRestorePhysicalNIC usage
  • shared/instance: Add .last_state.vf.parent support to ConfigKeyChecker
  • Remove the last 'which' occurence.
  • doc/rest-api: Refresh swagger YAML
  • lxd: Move to new protobuf when possible
  • lxd/storage/btrfs: Support 5.14.2
  • lxd/db: Use upstream context package
  • lxd/storage/ceph: Properly support pre-existing empty pools
  • lxd/cluster/gateway: Don't restart gateway in Reset
  • lxd/api/cluster: Don't update certificate on endpoints during clusterPutDisable
  • lxd/db/images: Change nullable fields in Image to sql.NullTime type
  • lxd/db/images: Image sql.NullTime field usage
  • lxd/db/instances: Changes nullable datetime fields in Instance to sql.NullTime type
  • lxd/db/instances: Instance sql.NullTime field usage
  • lxd/db/snapshots: Updates InstanceSnapshot nullable datetime fields to sql.NullTime
  • lxd/db/snapshots: InstanceSnapshot sql.NullTime field usage
  • lxd/instance/instance/utils: InstanceSnapshot sql.NullTime field usage
  • lxd/api/internal: Updates internalShutdown to wait until request context is done before exiting
  • shared/api/error: Update StatusErrorf to not parse format to fmt.Sprintf if no replacement arguments
  • lxd/operations: Consistent comment endings
  • lxd/operations: Don't duplicate local operations in operationsGet when running in single member cluster
  • lxd/api/1.0: Prevent update of cluster.https_address in doApi10Update
  • lxd/cluster/gateway: Change client loop logic in LeaderAddress
  • lxd/cluster/gateway: Comment cleanup
  • lxd/cluster/gateway: Error wrapping
  • lxd/cluster/gateway: Don't ever return an empty leader address in LeaderAddress
  • lxd/api/cluster: Add leader address check in internalClusterPostAccept
  • lxd/device: Clean up mdev vGPU on failure
  • lxd/device: Log error message on GPU mdev cleanup failure
  • lxd/device: Switch to github.com/jochenvg/go-udev
  • doc: Elaborate on pongo2 date-time syntax for snapshots
  • lxc/info: Use consistent units
  • lxc/list: Use consistent units
  • lxc/storage: Use consistent units
  • lxd/api_internal: Use consistent units
  • lxd/patches_utils: Use consistent units
  • lxd/projects: Use consistent units
  • tests/macaroon-identity: Switch to go-httprequest
  • lxd/migrate: Only use pointers to migration.MigrationControl to avoid shallow copies
  • Update default volume.size from 10GB to 10GiB
  • Update default state volume size from 100MB to 100MiB
  • lxd/db/networks: Fix panic in networkConfigAdd
  • lxd/db/storage/pools: Fix panic in CreateStoragePool
  • lxd/db/storage/volumes: Fix panic in storageVolumeConfigAdd
  • shared/util: Removes unused IsUnixDev function
  • lxd/project/permissions: Removes unnecessary wrapping
  • lxd/device/proxy: Improve comment in proxy validateConfig
  • lxd/device/device/utils/disk: Error quoting and wrapping in DiskMount
  • lxd/device/device/utils/disk: Remove block device filesystem detection from DiskMount
  • lxd/device/disk: Unify srcPath argument treatment in createDevice
  • lxd/device/disk: Clarify isFile logic in createDevice
  • lxd/device/disk: Removes duplicated source path exists check in createDevice
  • lxd/device/disk: Removes revert arg from createDevice
  • lxd/device/disk: Switch to using open file handle for createDevice mount
  • lxd/device/disk: Add block device filesystem detection to createDevice
  • lxd/device/disk: Updates createDevice to return isFile boolean indicator
  • lxd/device/disk: Updates d.createDevice usage now it returns isFile boolean
  • lxd/device/disk: Require local source paths to be absolute in validateConfig
  • lxd/device/disk: Stop using global logger
  • lxd/device/disk: Adds diskSourceNotFoundError type
  • lxd/device/disk: Replace calls to isRequired with returning diskSourceNotFoundError instead
  • lxd/device/disk: Remove duplicated source path exists check in startVM
  • lxd/device/disk: Add d.validateEnvironmentSourcePath function
  • lxd/device/disk: Update Start to handle diskSourceNotFoundError
  • lxd/devlxd: stricter regexp
  • lxd/instance/drivers/driver/lxc: Fix liblxc handle leak in renderState
  • lxd/migrate/instance: Code style tweak in migrationSink
  • lxc/copy: Add comment clarifying post-migration start up logic in copyInstance
  • lxd/storage/drivers/driver/ceph/volumes: Improve comment in MigrateVolume
  • lxd/instance/post: Remove trailing newline in instancePostClusteringMigrateWithCeph
  • lxd/instance/post: Use http.StatusOK in instancePostClusteringMigrateWithCeph
  • lxd/storage/drivers/driver/ceph/volumes: Fix MigrateVolume to support VM cluster migration
  • lxd/device/nic: Split up SR-IOV functions
  • gomod: Update dependencies
  • lxd/instance: Instance sql.NullTime field usage
  • lxd/device: Records SRIOV VF parent device in last_state.vf.parent
  • lxd/device/device/utils/network: Adds useSpoofCheck arg to networkSRIOVSetupVF and networkSRIOVRestoreVF
  • lxd/device/device/utils/network: Add support for last_state.vf.parent in networkSRIOVRestoreVF
  • lxd/device/nic/sriov: useSpoofCheck argument usage
  • lxd/network/network/utils/sriov: Rename sriovFindFreeVirtualFunctionMutex to SRIOVVirtualFunctionMutex
  • lxd/network/network/utils/sriov: Remove use of lock from SRIOVFindFreeVirtualFunction
  • lxd/device/nic/sriov: Use network.SRIOVVirtualFunctionMutex.Lock
  • lxc/import: read from stdin
  • cleanup: remove subtest
  • lxd/daemon: Adds systemdSocketActivated
  • lxd/api/cluster: Exit LXD after removal from cluster if systemd socket activated in clusterPutDisable
  • lxd/api/cluster: Adds clusterPutDisableMu to control daemon replace/stop until request finished in clusterNodeDelete
  • test/suites/clustering: Fix condition in test_clustering_remove_leader
  • test/suites/clustering: Change test_clustering_remove_leader to test_clustering_remove_members
  • lxd/api/cluster: Reformat clusterAcceptMember function
  • lxd/db/cluster/update: Fix upgrade from 2.0/3.0 when using go-dqlite v1.10.1 NULLable fields
  • lxd/instances/qemu: fix usb pass-through with more than one device
  • shared/api: Allow cert modification
  • doc/rest-api: Refresh swagger YAML
  • lxd: Drop fingerprint in doCertificateUpdate
  • doc/projects: Improve doc on restricted key
  • seccomp: use stricter regexps when looking for Uid/Gid/Tgid in /proc/$pid/status
  • lxd/device/config/device/runconfig: Add Revert reverter field to RunConfig
  • lxd/instance/drivers/driver/lxc: Call runConf.Revert revert in startCommon
  • lxd/instance/drivers/driver/qemu: Call runConf.Revert revert in Start
  • lxd/device/disk: Switch to using file handles for local disk VM passthrough
  • lxd/instance/drivers/driver/qemu: Rework addDriveConfig to support file descriptors encoded into device paths
  • lxd/ip/neigh/proxy: Adds NeighProxy type for managing neighbour proxy entries
  • lxd/ip/neigh: Removes conflation of neighbour proxy functionality from Neigh type
  • lxd/device/nic/routed: Switch to ip.NeighProxy for neighbour proxy removal
  • lxd/ip/neigh: Rework Show to return a useful struct rather than just a raw string
  • lxd/network/network/utils: Update GetNeighbourIPs to use ip.Show()
  • lxd/device/nic/bridged: Updated network.GetNeighbourIPs and ip package constant usage
  • test: Add routed NIC tests for neighbour proxy add/remove
  • test: Adds check for routed NIC MAC
  • test: Improves grep MAC test
  • doc/instances: Updates routed NIC with VM support
  • doc: Fix misspelling in server.md
  • lxd/device/device/utils/disk: Change DiskMount mount options arg to []string
  • lxd/device/device/utils/disk: Update diskCephfsOptions to return []string for mount options
  • lxd/instance/drivers/driver/qemu: device.DiskMount usage
  • lxd/device/disk: Update createDevice to use []string for mount options
  • lxd: Update for new certificate structs
  • lxd/device/device/utils/unix: DiskMount usage
  • lxd/instance/drivers/driver/lxc: Align start error with VM type
  • lxd/device/disk: Readonly setting cleanup
  • shared/validate/validate: Adds IsAbsFilePath function
  • shared/validate/validate: Fixes comment on IsListOf
  • shared/validate/validate: Wraps item value in IsListOf error
  • lxd/device/disk: Adds localSourceOpen function
  • lxd/device/disk: Use d.localSourceOpen in startVM
  • lxd/device/disk: Use d.localSourceOpen in createDevice
  • shared/api: Add Project to InstancePost and SourceProject to StorageVolumePost
  • client: Support for moving instances and custom volumes between projects
  • doc/rest-api: Refresh swagger YAML
  • doc/instances: Clarify shift disk property is only for containers
  • lxd: switch main_nsexec to config.h
  • tests: Split cluster and standalone
  • lxd: add forkusernsexec()
  • lxd/main/daemon: Actually ignore shutdown request if shutdown ongoing
  • shared/subprocess/proc: Simplify process cleanup channel closure
  • lxd/instance/drivers/driver/qemu: Updates fdFiles to be slice of os.File
  • lxd/instance/drivers/driver/qemu: Improve error in addDriveConfig
  • lxd/instance/drivers/driver/qemu: Cancel operation on d.UpdateBackupFile error in Start
  • lxd/device/disk: Change mountPoolVolume to return a revert function
  • lxd/device/disk: Updates createDevice to return a revert function
  • lxd/device/disk: createDevice should always return a non-empty device path or an error now
  • lxd/device/device/utils/disk: Adds DiskVMVirtfsProxyStart function
  • lxd/device/device/utils/disk: Adds DiskVMVirtfsProxyStop function
  • lxd/device/disk: Switch to using DiskVMVirtfsProxyStart for VM 9p proxy
  • lxd/device/disk: DiskVMVirtfsProxyStop usage
  • lxd/device/device/utils/disk: Returns revert function from DiskVMVirtiofsdStart
  • lxd/device/disk: DiskVMVirtiofsdStart revert usage
  • lxd/instance/drivers/driver/qemu: device.DiskVMVirtiofsdStart revert usage
  • lxd/device/device/utils/disk: Updates DiskVMVirtiofsdStart to pass the listen socket via file descriptor
  • lxd/instance/drivers/driver/qemu: Remove openUnixSocket function
  • lxd/device/device/utils/disk: Updates DiskVMVirtiofsdStart to return unix listener
  • lxd/device/disk: Remove old virtiofsd log if needed
  • lxd/device/disk: Close virtiofsd unix listener after VM start
  • lxd/instance/drivers/driver/qemu: Close virtiofsd unix listener after VM start
  • lxd/main/forkusernsexec: Return error if uid or gid map FDs not supplied
  • lxd/instance/drivers/driver/qemu: Make sure operation is cancelled in Stop
  • lxd/device/device/utils/disk: Close unnecessary file handles in DiskVMVirtfsProxyStart
  • lxd/device/device/utils/disk: Close unnecessary file handles in DiskVMVirtiofsdStart
  • lxd/device/disk: Add disk unmount call to createDevice reverter
  • util_linux: ensure that O_NOCTTY is raised when opening terminals
  • util_linux: ensure that pty fds are O_CLOEXEC too
  • forkusernsexec: close file descriptors before exec
  • forkusernsexec: add --keep-fd-up-to
  • lxd/project/permissions: Fix wrapping in checkRestrictions
  • lxd/project/permissions: Updates entity checkers to accept instancetype.Type
  • shared/validate/validate: Improve comment on IsListOf
  • shared/validate/validate: Improve error in IsInRange
  • shared/validate/validate: Adds ParseUint32Range and IsUint32Range functions
  • shared/validate/validate: Reworks IsNetworkPortRange to behave the same as IsUint32Range
  • lxd/instance/instance/utils: Removes ParseRawIdmap
  • shared/idmap/parse: Adds ParseRawIdmap function
  • lxd/instance/drivers/driver/lxc: idmap.ParseRawIdmap usage
  • lxd/instance/instance/utils: idmap.ParseRawIdmap usage
  • lxd/device/device/utils/disk: Uses fmt.Error for wrapping errors in DiskVMVirtfsProxyStart
  • forkusernsexec: parse command section correctly
  • forkusernsexec: log verbosely
  • forkusernsexec: allow for --arg= and --arg syntax
  • lxd/api/project: Ensure restricted projects have their own profiles
  • lxd: Move to cron/v3
  • gomod: Update dependencies
  • shared/validate/validate: Fix bug in ParseUint32Range
  • shared/idmap/idmapset/linux: Adds HostIDsCoveredBy function
  • shared/idmap/idmapset/linux/test: Adds tests for HostIDsCoveredBy
  • lxd/project/permissions/test: Fix import ordering
  • shared: Add context to DownloadFileHash
  • client: Pass empty context to DownloadFileHash
  • client/lxd_storage_volumes: Add destination target flag; Respect target flag
  • lxc/storage_volume: Add destination target flag; Respect target flag
  • i18n: Update translation templates
  • doc: clean up headings in files
  • doc: update links to configuration.md
  • lxd/instance/drivers/driver/qemu: Return shutdown error to caller
  • lxd/instance/drivers/driver/lxc: Return shutdown error to caller
  • lxd/instance/drivers/driver/lxc: Return stop error to caller
  • lxd/instance/drivers/driver/qemu: Return stop error to caller
  • lxd/instance/drivers/driver/lxc: Make sure onStop unmount has full operation lock time
  • lxd/instance/drivers/driver/qemu: Handle unmount errors in onStop
  • lxd/storage/drivers/driver/zfs/volumes: Increase ZFS unmount wait time to operationlock.TimeoutSeconds
  • lxd/instance/drivers/driver/qemu: Moves readonly config volume mount to devices directory
  • lxd/storage/drivers/generic/vfs: Removes VMConfigDriveMountDir
  • lxd/instance/drivers: Remove cloud-init from config share
  • forkusernsexec: use unix.Stderr as standard --keep-fd-up-to value
  • doc: Add initial sphinx support
  • github: Add a workflow to build the documentation
  • doc: Add sphinx navigation
  • doc/index: Fix header level
  • sphinx: Add substitutions
  • sphinx: Add example redirect
  • lxd/db/generate/db/mapping: Accept sql.NullTime in the generator
  • lxd: Fix test with new certificate structs
  • lxd/device/nic/routed: Port routed NIC (without gvrp support) from main branch
  • doc/instances: Updates routed NIC docs to reflect backported code features
  • doc/instances: Remove unnecessary full stops from routed NIC table
  • test: Remove duplicate ping tests from routed NIC
  • test: Enable IPv4 forwarding for NIC routed
  • shared/termios: manually copy termios settings between Go and C
  • shared/termios: actually copy the values not the index
  • doc: add a cheat sheet for documentation
  • Revert "shared/termios: actually copy the values not the index"
  • Revert "shared/termios: manually copy termios settings between Go and C"
  • shared/termios: Remove requirement on cgo when setting raw mode
  • shared/termios: Removes dependency on lxd package github.com/lxc/lxd/shared
  • test: Update test_concurrent_exec to also test with --force-noninteractive
  • test: Add non-concurrent exec test
  • lxc/exec: Always connect control websocket
  • lxd/instance/drivers/driver/lxc/cmd: Use exitErr.ExitCode functions
  • lxd/instance/drivers/driver/lxc: Close forkexec log file
  • lxd/instance/drivers/driver/lxc: release liblxc in DevptsFd function
  • lxd/instance/drivers/driver/lxc: Remove empty newline
  • shared/network: Use contextual logging for websocket proxy functions
  • lxd/instance/exec: Adds execWS constants for websocket numbers
  • lxd/instance/exec: Replace allConnected with requiredConnectedCtx
  • lxd/instance/exec: Replaces controlConnected with controlConnectedCtx
  • lxd/instance/exec: Rework Connect to make control connection required for interactive exec
  • lxd/instance/exec: Adds comment documenting variable use of connection number 0
  • lxd/instance/exec: Simplify connection slot secret setup loop
  • lxd/instance/exec: Add a timeout waiting for all required websockets to connect
  • lxd/instance/exec: Adds belt-and-braces websocket close defer
  • lxd/instance: Remove whitespace
  • lxd/instance/exec: Don't get lock to access same control connection on every message in control handler
  • lxd/instance/exec: Improve exec logger context
  • lxd/instance/exec: Remove duplication of interactive/non-interactive control handler go routines
  • lxd/instance/exec: Improve logging of websocket mirroring go routines
  • lxd/instance/exec: Remove duplication of connection locking code
  • lxd/instance/exec: Adds cmdKill and cmdKillOnce
  • lxd/instance/exec: Removes need for controlExit
  • lxd/instance/exec: Adds a check for remote stdout reader closing and kills command if no control connection
  • lxd/instance/exec: Fix container devpts FD leak in non-interactive exec requests
  • lxd/instance/exec: Log exit code of command
  • lxd/instance/exec: Only try to detect extra PATH locations for containers
  • doc: Increases recommended subuid and subgid ranges in machine setup.
  • lxd-agent/main/agent: Avoid duplicate log lines by only logging to stdout/stderr
  • lxd/instance/drivers/driver/qemu: Dont force WaitForWS
  • lxd-agent/exec: Adds execWS constants for websocket numbers
  • lxd-agent/exec: Replace allConnected with requiredConnectedCtx
  • lxd-agent/exec: Adds comment documenting variable use of connection number 0
  • lxd-agent/exec: Simplify connection slot secret setup loop
  • lxd-agent/exec: Add a timeout waiting for all required websockets to connect
  • lxd-agent/exec: Adds belt-and-braces websocket close defer
  • lxd-agent/exec: Remove whitespace
  • lxd-agent/exec: Improve exec logger context
  • lxd-agent/exec: Start command before websocket handler go routines
  • lxd-agent/exec: Capture command not found errors and convert them to 127 exit code
  • lxd-agent/exec: Log exit code and use exitErr.ExitCode()
  • lxd-agent/exec: Removs controlConnected channel and simplifies Connect function
  • lxd-agent/exec: Use same function for interactive/non-interactive control handler go routines
  • lxd-agent/exec: Removes controlExit
  • doc: split out installation instructions from doc start page
  • doc: split out FAQ from doc start page
  • doc: clean up support information on doc start page
  • doc: clean up doc start page
  • shared/util/linux: Adds ExitStatus function
  • lxd/instance/exec: Use exitStatus rather than exitCode
  • lxd/instance/drivers/driver/qemu/cmd: Use exitStatus rather than exitCode
  • lxd-agent/exec: Use exitStatus rather than exitCode and use shared.ExitStatus() helper
  • lxd/instance/drivers/driver/lxc/cmd: Use exitStatus rather than exitCode and use shared.ExitStatus() helper
  • lxd/instance/drivers/driver/qemu: Do not treat stdin as pty
  • lxd/instance/exec: Remove internal PTY/TTY emulation use on LXD side for VM exec
  • doc: css: temporary fixes for theme issues
  • doc: Update Ceph docs with details for erasure coded pools
  • Replace 18.04/Bionic Beaver by 20.04/Focal Fossa
  • doc: add redirect to index.html
  • shared/util/linux: Remove empty line in ExitStatus
  • shared/validate/validate: Return nil error if OK in ParseUint32Range
  • lxd/device: Improves error message for custom storage volumes when shift is true.
  • lxd/instance/exec: Simplify and add logging for non-websocket based exec
  • test: Adds tests for non-websocket based instance exec
  • lxd/device: Fix golint
  • lxd-agent/exec: Detect invalid exec requests
  • lxd/instance/drivers/driver/qemu: Always send req.WaitForWS to lxd-agent exec
  • lxd/db/generate/db/stmt: remove '-ref' support from stmt
  • lxd/db/generate/db/method: remove '-ref' support from method
  • lxd/db/generate/db/lex: remove indexType function
  • lxd/db/generate/db/method: add ifErrNotNil helper
  • lxd/db: remove unused generator comments
  • lxd/db/cluster/constants: format used-by uris to drop default project
  • lxd/db: update generated code
  • lxd/db: add URI generation and ID fields to entities with references
  • lxd/db:update generated code
  • lxd/db/generate/db/mapping: add TableType to Mapping
  • lxd/db/generate/db/parse: determine TableType on parse struct
  • lxd/db/generate/db/mapping: add Filterable field to Mapping
  • lxd/db/generate/db/parse: don't require filters ReferenceTable/MapTable
  • lxd/db/generate/db/stmt: support programmatic sql stmts
  • lxd/db/generate/db/method: add support for generating reference tables
  • lxd/db/generate/db/method: add support for filling reference fields from tables
  • lxd/db/devices: add Devices struct and generator comments
  • lxd/db/devices: Devices to/from API helpers
  • lxd/db/generate/db/mapping: add DeviceType to mapping
  • lxd/db/config: add Config struct and generator comments
  • lxd/db: add association table files
  • lxd/db: use Device type for Devices
  • lxd: convert between db.Devices and API map format
  • lxd/db/projects: use UpdateConfig to update project config
  • lxd/db/instances: replace addProfilesToInstance with non-generated UpdateInstanceProfiles method
  • lxd/db: add manual get-URI methods for networks/acls/storage volumes
  • lxd/db: add non-generated GetProjectUsedBy and GetProfileUsedBy
  • lxd/db: update generated code
  • lxd/db/generate: use fmt.Errorf for errors
  • lxd/db/snapshots.mapper: update generated code
  • lxd/db: Drop irrelevant table
  • lxd/db: Update GetNetworkURIs to work with stable-4.0
  • lxd/db: Fix bad call in GetNetworkURIs
  • i18n: Update translation templates
  • lxd/db: Add database-leaader role
  • lxd: Support for database-leader role
  • tests: Support for database-leader role
  • api: Add database_leader extension
  • doc: added link between installing.md and doc/installing.md Signed-off-by: Dillon Samra dillonsamra9@utexas.edu
  • lxd/storage/backend/lxd: Restore VM filesystem size.state quota on backup restore
  • lxd/storage/drivers/generic/vfs: Improve logging during backup unpack
  • lxd/storage/drivers/driver/btrfs/volumes: Enable nodatacow on subvolume for block volumes
  • lxd/project/permissions: Separate limits.disk validate from other keys in getInstanceLimits
  • lxd/device/config/consts: Moves DefaultVMBlockFilesystemSize from storage/drivers package
  • lxd/storage/drivers/volume: Switch to deviceConfig.DefaultVMBlockFilesystemSize
  • lxd/storage/backend/lxd: Switch to deviceConfig.DefaultVMBlockFilesystemSize
  • lxd/events/events: Switch events heartbeat to counter rather than using absolute deadline times
  • lxd/project/permissions: Accounts for VM root disk size.state in getInstanceLimits
  • doc/storage: Add warning about using VMs on BTRFS storage pools
  • doc/storage: fix 2 typos
  • lxc/--sub-command: Added --sub-command flag
  • lxc/main: More depth in sub-commands
  • i18n: Update translation templates
  • lxd/storage: Switch to deviceConfig.DefaultVMBlockFilesystemSize
  • doc: add files requires for Swagger output
  • doc: include the Swagger API
  • doc: override Swagger UI CSS
  • doc: shallow clone of theme
  • lxc/copy: Replaces profiles when -p is set.
  • lxd/firewall/drivers: Adds util to convert port list to port ranges.
  • lxd/firewall/drivers: Optimises SNAT rules in Xtables.
  • doc: Clarify btrfs resize documentation
  • shared/api: Add Project field to Instance
  • lxd/instance/drivers: Fill Project field for instance
  • client: Add GetInstancesAllProjects, GetInstancesFullAllProjects, GetInstanceNamesAllProjects
  • lxd/db: Support for retrieving data from multiple projects
  • tests: Support for retrieving instances for all projects
  • lxd: Ability to retrieve instances for all projects
  • doc/rest-api: Refresh swagger YAML
  • api: Add instance_all_projects extension
  • lxd/firewall/drivers: Optimises SNAT rules in nftables.
  • lxd/ucred: Add connection functions
  • lxd/cluster: Require full admin for clusterNodesPost
  • tests: Make reboot test more reliable
  • lxd/ip/route: Add support for 'via' when creating routes
  • lxd/firewall/drivers: Adds util to calculate DNAT rule optimisations.
  • lxd/firewall/drivers: Optimises DNAT rules for xtables.
  • lxd/firewall/drivers: Optimises DNAT rules for nftables.
  • tests: Updates proxy device integration tests with port range optimisations.
  • doc: fix link to rest-api.yaml
  • shared/api: Add cluster group structs
  • lxd: Disallow node names starting with "@"
  • client: Add cluster group
  • doc/rest-api: Refresh swagger YAML
  • doc: fixed typo in gpu_mig section. Signed-off-by: Dillon Samra dillonsamra9@utexas.edu
  • doc/storage: Split storage driver config tables
  • doc/storage: Add missing ceph keys under cephfs
  • doc/storage: Consistent line endings
  • lxd/storage: Add const LO_FLAGS_DIRECT_IO flag
  • lxd/storage: Check for kernel support and O_DIRECT flag before setting direct IO
  • lxd/storage: Enable direct IO for loop devices in lvm
  • lxd/storage: Enable direct IO for loop devices in btrfs
  • lxd/db: Make GetNonPendingNetworkIDs project aware
  • lxd/cluster: Update for GetNonPendingNetworkIDs changes
  • lxd/cluster: Modernize coding style
  • lxd/db: Properly initialize network map
  • lxd/db: Coding style
  • lxd/daemon: Ensure heartbeat member refresh task is only called with full state list
  • lxd/network/driver/bridge: Exclude offline peers in HandleHeartbeat
  • lxd/daemon: Update hasNodeListChanged to detect member state changes
  • lxd/daemon: Don't remove offline members from supplied heartbeat member list in NodeRefreshTask
  • lxd/daemon: Move calculation of member state metrics into leader-only section of NodeRefreshTask
  • lxd/daemon: Renames hasNodeListChanged to hasMemberStateChanged
  • lxd/daemon: Make heartbeat member state change task refresh failure retry more explicit in NodeRefreshTask
  • test: Give exec chance to finish before capturing output
  • lxd/cluster/gateway: Include endpoint address in dqlite connect errors
  • client: Adds method to get events for all projects.
  • lxd/cluster: Use GetEventsAllProjects to monitor events in the cluster.
  • lxd/daemon: Rework how heartbeat member role rebalancing works to take into account online members
  • lxd/daemon: Improves NodeRefreshTask comments
  • lxd/daemon: Log when cluster member state changes as info level in NodeRefreshTask
  • lxd/cluster/heartbeat: Use node.IsOffline in heartbeat member data
  • lxd/db/node: Update nodeIsOffline to consider a node offline if time now is equal to offline threshold
  • lxd/request: Adds function to save connection to request context.
  • lxd: Adds save connection in context function to api and dev servers.
  • lxd/ucred: Refactors GetConnFromWriter to use request context.
  • test: Updates clustering_remove_raft_node to take into account updated offline threshold logic
  • lxd/cluster/events: Updates eventsUpdateListeners to accept a heartbeat member list
  • lxd/cluster/events: Load members from global DB if no heartbeat members provided in eventsUpdateListeners
  • lxd/cluster/events: Updates eventsUpdateListeners to use heartbeat members
  • lxd/cluster/events: Updates eventsUpdateListeners member handling
  • lxd: Remove running eventsUpdateListeners as a continuous task
  • lxd/cluster/events: Rename eventsUpdateListeners to EventsUpdateListeners
  • lxd/daemon: Call cluster.EventsUpdateListeners asynchronously from heartbeat NodeRefreshTask
  • lxd/api/cluster: Call cluster.EventsUpdateListeners asynchronously from internalClusterPostRebalance
  • lxd/api/cluster: Don't start clustering tasks until member has actually joined the cluster in clusterPutJoin
  • lxd/daemon: Call cluster.EventsUpdateListeners asynchronously from startClusterTasks
  • lxc/monitor: Use GetEventsAllProjects to monitor events with lxc monitor.
  • lxd: Accepts 'all-projects' query parameter on /1.0/events.
  • lxd/events: Adds allGroups field to listener.
  • lxd/storage: add ceph.rbd.du storage option
  • doc: add new ceph.rbd.du storage option to storage configuration docs
  • api: Add ceph_rbd_du
  • gomod: Update dependencies
  • doc/cluster: Clarify join question handling
  • doc/clustering: Fix typo
  • tests: Bump pg_num to 16
  • doc/rest-api: Refresh swagger YAML
  • lxd/events/events: Don't mention node in user facing error
  • lxd/events/event: Error quoting
  • lxd/cluster/events: Adds EventListenerWait to allow waiting for a event listener to connect
  • lxd/cluster/connect: Switch Connect to use EventListenerWait
  • lxd/cluster/heartbeat: Removes deprecated Raft field from heartbeat
  • test: Add 1s between running non-interactive exec and checking for exit status in operation
  • lxd/cluster/membership: Move notifyNodesUpdate call out of transaction in Join
  • shared/api/network/peer: Adds UsedBy field to NetworkPeer
  • doc/rest-api: Refresh swagger YAML
  • i18n: Update translation templates
  • lxd/db: Tweak GetNonPendingNetworkIDs for stable-4.0
  • lxc/list_test: Fix for stable-4.0
  • doc: Fixed incorrect type of ceph.rbd.clone_copy.
  • lxd/cluster: Update not clustered error
  • lxd/db: Update comments
  • fuidshift: Remove accidental binary build
  • lxd/device/nic/routed: Enable IP forwarding on veth host_name interface
  • test: Restores old routed NIC IPv4 forwarding behaviour
  • lxd/db/generate/db/mapping: Add Identifier method
  • lxd/cluster/upgrade: Don't panic in UpgradeMembersWithoutRole in raft ID not found
  • lxd/cluster/upgrade: Comment clean up in UpgradeMembersWithoutRole
  • lxd/cluster/upgrade: Removes empty line in UpgradeMembersWithoutRole
  • lxd/cluster/upgrade: Improve variable naming in UpgradeMembersWithoutRole
  • lxd/cluster/upgrade: Error wrapping and dont use node term in user facing errors
  • lxd/cluster/upgrade: Adds additional logging to UpgradeMembersWithoutRole
  • gitignore: Ignore potential binaries
  • lxd/network/driver/bridge: Adds UsesDNSMasq function
  • lxd/network/driver/bridge: Improve comments
  • lxd/device/nic/bridged: Don't depend on dnsmasq pid file existence to write static allocation file
  • lxd/device/nic/bridged: Removes duplicated pid check when killing dnsmasq
  • lxc/utils: Make byName sort all columns
  • lxd/db/generate/db/method: Generate URIs from get-objects stmt
  • lxd/db: Replace 'name' generation comments and tags with 'objects'
  • shared/api/url: Don't allow 'none' as target
  • lxd/db/generate/db/stmt: Remove 'name' statement generation
  • lxd/db/db: Duplicate urlsToResourceNames from client/util.go
  • lxd/db/projects: Add generator comment for fetching projects by ID
  • lxd/db/projects: Pass both project ID and Name to networks
  • lxd/db: Use api.NewURL for non-generated GetURIs
  • lxd/db: Remove unused URI fetching methods
  • lxd/db: Update generated code
  • lxd/db/instance/profiles: Add missing error to stmt.Exec
  • lxd/api/cluster: Only take clusterMembershipMutex on leader
  • doc: use customized Furo theme
  • doc: customize footer
  • doc: add a header
  • doc: remove Vanilla theme from Makefile
  • lxd/endpoints: Make socketUnixListen return a UnixListener
  • lxd/db/node: nodeIsOffline should always use UTC
  • lxd/api/cluster: Improve logging
  • lxd/cluster/heartbeat: Adds NewAPIHearbeat function
  • lxd/cluster/heartbeat: Adds HearbeatCancelFunc
  • lxd/cluster/heartbeat: Export HeartbeatRestart
  • lxd/cluster/membership: Set tx.SetNodeHeartbeat in Join
  • lxd/cluster/membership: Renames notifyNodesUpdate to NotifyHeartbeat
  • lxd/cluster/gateway: Moves heartbeatLock to other heartbeat related variables
  • lxd/daemon: Use contextual logging with local address in NodeRefreshTask
  • lxd/daemon: Adds heartbeatHandler function
  • lxd/daemon: Update nodeRefreshTask to only perform role changes if called from leader heartbeat send
  • lxd/cluster/gateway: Pass HeartbeatHandler into HandlerFuncs
  • lxd/cluster/gateway: Error message and log improvements
  • lxd/api: d.gateway.HandlerFuncs usage
  • lxd/cluster/heartbeat: Initialise unavailableMembers as empty slice in heartbeat
  • lxd/cluster/heartbeat: Updates HeartbeatTask to skip starting new heartbeat if already running
  • lxd/endpoints: Add STARTTLS and BufferedUnixConn wrappers
  • lxd/ucred: Add support for BufferedUnixConn
  • lxd/endpoints: Add STARTTLS support on unix socket
  • lxd: Allow TLS auth on unix socket
  • lxd/device/nic/routed: Don't setup auto gateway if IP family not in use
  • test: Adds test for single family routed NIC operation
  • lxd/db: Updates GetInstanceNamesByNodeAddress to also return project name.
  • lxd: Prevents overwriting instances with same name but different project.
  • test: Adds tests for passing through unix socket with disk device
  • lxd/device/disk: Open source with O_PATH to support directories and unix sockets
  • lxd/events/events: Renames noForward to localOnly
  • lxd/cluster/membership: Call EventsUpdateListeners locally from NotifyHeartbeat
  • lxd/cluster/heartbeat: Improve logging
  • lxd: Uses api.NewURL and sets project when querying other nodes.
  • doc: reuse content from the repo README in the doc index
  • doc: move relevant files out of .github folder
  • lxd/instance/drivers/qemu: Move network state to separate function
  • shared/instance: Add security.agent.metrics
  • doc/instances: Add security.agent.metrics
  • lxd/instance/drivers/qmp: Extend commands
  • lxd/db/cluster: Adds empty description to node 1 when opening the db.
  • lxd/db: Adds empty description where null constraints are violated.
  • lxd/instance/drivers/qemu: Add agentMetricsEnabled helper function
  • lxd/instance/drivers/qemu: Validate security.agent.metrics for state
  • api: Add qemu_metrics extension
  • doc: fix link in README
  • lxd/clustert/heartbeat: Logging improvements in Send
  • lxd/cluster/info: Logging improvement in loadInfo
  • lxd/cluster/membership: Logging improvement
  • lxd/api/cluster: No need to call cluster.EventsUpdateListeners in internalClusterPostRebalance
  • test: Add short sleep for clustering rebalance to allow raft nodes to settle after join
  • lxd/migrate: Change allConnected channel in migrationSourceWs to be struct{}
  • lxd/migrate: Change allConnected channel in migrationSink to be struct{}
  • lxd/util/net: Adds SetTCPTimeouts and ExtractTCPConn functions
  • lxd/cluster/gateway: Updates dqliteProxy to use util.ExtractTCPConn and util.SetTCPTimeouts
  • lxd/migrate: Updates migrationSourceWs to use util.ExtractTCPConn and util.SetTCPTimeouts
  • lxd/migrate/instance: Defers a call to disconnect in migrationSourceWs Do
  • lxd/daemon: Introduce daemonStorageSplitVolume
  • lxd/images: Don't cleanup unknown images from shared volume
  • lxd: Checks that the host node is clustered before editing.
  • lxc/alias: Allows users to reference specific arguments.
  • lxd/cluster/heartbeat: Cancel APIHeartbeat Send during spread sleep if context is cancelled
  • lxd/migrate: Update for stable-4.0
  • lxd/cluster/heartbeat: Detect aborted heartbeat round quicker
  • lxd/cluster/heartbeat: Move defer setup to after lock is released
  • lxd/cluster/heartbeat: Move clustered check before locking and context setup
  • lxd/cluster/events: Rework listener connect notification to support multiple addresses
  • lxd/cluster/connect: EventListenerWait usage in Connect
  • client/events: Get lock before checking e.disconnected in Disconnect
  • client/lxd: Adds eventConn to store events websocket connection
  • client/lxd/events: Store events websocket connection in getEvents
  • lxd/cluster/membership: Update NotifyHeartbeat to have access to gateway so it can cancel ongoing heartbeat
  • lxd/cluster/events: Close client connection on events get failure in eventsConnect
  • lxd/cluster/events: Use looked up listener rather than doing another map retrieval
  • client/events: Replace chActive and disconnected with context
  • lxd/events/events: Improve logging in Listener
  • lxd/events: Removes duplicate event connection logging
  • lxd-agent/events: Removes unnecessary logging in eventsSocket
  • lxd/cluster/events: Clarify event connections are clients to another server
  • lxd/cluster/recover: Return separate error if no raft role found
  • lxd: Fix progress indicator for 'lxc export'
  • lxd/device/gpu: Add support for mig.uuid
  • api: gpu_mig_uuid
  • doc/instances: Add mig.uuid on MIG GPU
  • shared/network: Differentiate websocket network errors
  • lxd/instance/exec: Simplify websocket error handling
  • lxd/instance/drivers/driver/qemu/cmd: Don't attempt to send signal to lxd-agent exec process if finished
  • lxd/instance/drivers/driver/qemu/cmd: Run cleanup function after command has finished in Wait
  • lxd/instance/exec: Close attachedChildIsDead channel first in finisher
  • lxd/instance/exec: Only attempt to kill process if still running when a control connection error occurs
  • lxd-agent/exec: Close attachedChildIsDead channel first in finisher
  • lxd-agent/exec: Only attempt to kill process if still running when a control connection error occurs
  • lxd: Fix overriding public property by auto-update
  • lxd/db/storage/volumes/snapshots: Update GetExpiredStorageVolumeSnapshots to support sql.NullTime ExpiryDate field
  • lxd/instance/drivers: Specify number of USB ports
  • doc: improve placement of header
  • doc: fix broken include
  • doc: fix links in contributing docs
  • shared/network: Differentiate websocket handler function debug messages
  • lxd-agent/exec: Treat websocket.CloseMessage the same as websocket disconnection
  • lxd/instance/exec: Treat websocket.CloseMessage the same as websocket disconnection
  • doc: change file inclusion to use comments instead of text
  • automatically add labels to PRs that contain doc changes
  • api: Move storage_volume Writable() function
  • api: Add Writable() function for storage snapshot
  • lxc/storage_volume: Properly handle snapshots in set
  • i18n: Update translation templates
  • lxd/instance: Prevent nvidia.runtime on privileged containers
  • shared/usbid: Document reasons to fork
  • shared/log15: Remove fork
  • lxd: Update imports for log15
  • lxd-agent: Update imports for log15
  • client: Update imports for log15
  • lxc: Update imports for log15
  • shared/logging: Update imports for log15
  • shared: Update imports for log15
  • shared/logging: Update for current log15
  • gomod: Update dependencies
  • gomod: Update go-dqlite dependency to include fix for local timezone conversion removal
  • doc: fix scrolling in tables
  • doc: remove spaces at the end of the line
  • doc: prevent linking of .ci, .as and similar
  • doc: remove manual list of components
  • api: Adds event_project extension
  • shared/api/event: Adds Project field to Event struct
  • doc/rest-api: Refresh swagger YAML
  • lxd/events/events: Rename group concept to projectName
  • lxd/events/events: Store project name inside event and update broadcast to use it
  • client/lxd: Change eventListeners to be keyed on project name using map[string][]*EventListener
  • client/events: Add projectName field to store project that event listener is using
  • client/events: Update Disconnect to use listener projectName to clear listeners
  • client/lxd/events: Use connection's project and allProjects argument to maintain listeners keyed on project name
  • client/lxd: Convert eventConn to map of connections keyed on project
  • client/connection: Initialise eventListeners and eventConns
  • client/lxd/events: Save websocket connections by project
  • client/lxd/server: Initialise websocket event listeners and connections in UseProject and UseTarget
  • lxd/lifecycle/instance: Use URL builder in Event
  • lxd/instance/drivers/driver/lxc: Update devlxdEventSend to use map[string]interface{}
  • lxd/instance/drivers/driver/qemu: Update devlxdEventSend to use map[string]interface{}
  • lxd/events: Move common functionality between external and devlxd servers into common file and types
  • lxd/events/devlxdEvents: Adds devlxd event server
  • lxd/events/common: listenerCommon
  • lxd/events/events: Server
  • lxd/events/devlxdEvents: DevLXDServer
  • lxd/state/state: Update DevlxdEvents to events.DevLXDServer
  • lxd/daemon: Switch to using events.DevLXDServer for devlxdEvents
  • lxd/devlxd: d.devlxdEvents.AddListener usage
  • lxd/instance/drivers/driver/lxc: d.state.DevlxdEvents.Send usage in devlxdEventSend
  • lxd-agent/events: Remove lxd-agent as location in eventsSocket and subscribe to all project events
  • github: Add API label to labeler
  • doc/projects: Remove invalid features.networks
  • lxd/db: Fix GetProjectUsedBy for stable-4.0
  • tests: Fix failure when shiftfs is skipped
  • lxd/instance/lxc: Fix mount injection on VFS idmap
  • lxd/device/disk: Ensure disk FDs are marked CLOEXEC
  • lxd/fsmonitor/drivers/driver/fanotify: Ensure FDs are marked CLOEXEC
  • lxd/storage/drivers/utils/cgo: Ensure FD is opened with CLOEXEC in get_unused_loop_dev_legacy
  • lxd/util/net: Fix return value in ExtractTCPConn
  • lxd/events/common: Import ordering
  • lxd/events/common: Adds support for receiving events from listener client
  • lxd/events/events: Adds receive event handler to AddListener
  • lxd/events: d.events.AddListener usage
  • lxd-agent/events: d.events.AddListener usage
  • client/interfaces: Adds SendEvent function signature
  • client/lxd: Adds eventConnsLock to control write access to eventConns
  • client/lxd/events: Use r.eventConnsLock to control access to r.eventConns
  • client/lxd/events: Implement SendEvent function
  • lxd/instance/qemu: Always set memory sharing on memory-backend-file
  • lxc/exec: Expose interactive to handler
  • lxc/exec: Don't send SIGWINCH when non-interactive
  • fsmonitor: s/syscall.CloseOnExec()/unix.CloseOnExec()/g
  • fsmonitor: close fd from open_by_handle_at()
  • lxd: Export storage pool availability functions
  • lxc: Support for restricted projects on unix socket
  • lxd: ensure file descriptors are closed before starting container
  • lxd/db/cluster: Fixes v19 migration for sqlite 3.37.
  • lxd/network: Fixes misspelling of interface.
  • api: Adds instance_allow_inconsistent_copy extension.
  • shared/api: Adds AllowInconsistent to instance source.
  • client: Adds AllowInconsistent to InstanceCopyArgs.
  • lxd/migration: Adds AllowInconsistent flag to VolumeSourceArgs.
  • lxd/storage/drivers: Ignore rsync error 24 if allowInconsistent.
  • lxd/storage: Adds allowInconsistent to pool interface.
  • lxd: Passes allowInconsistent from instance source to pool method.
  • lxc/copy: Adds --allow-inconsistent flag.
  • lxc/move: Adds --allow-inconsistent flag.
  • i18n: Updates translation templates.
  • doc/rest-api: Refresh swagger YAML
  • lxd/storage/ceph: Align standard arguments
  • lxd/storage/ceph: Always pass user/id to ceph/rbd
  • doc: fix language in SECURITY.md
  • doc: only link the Swagger files that we actually need
  • lxd/dnsmasq: Append device name to dnsmasq entry file name.
  • lxd/device: Adds ping check for nic routed device.
  • gomod: Update dependencies
  • Take extra precautions when calling tar
  • lxd: Applies patch to add device names to dnsmasq files.
  • test: Updates test suite to append device names to dnsmasq files.
  • doc: Adds note about newuidmap to machine setup.
  • lxd/instances: Don't check limits on restore
  • tests: Validate snapshots on limited projects
  • test: Fixes number of expected NAT rules when using xtables driver.
  • lxc/config/file: allow overriding default remote by env variable
  • doc/environment: add new LXC_REMOTE variable
  • test: Ensure ebtables is legacy when driver is xtables.
  • client: Addd GetInstanceFull
  • client: Add WithContext
  • client: Add context-aware connection functions
  • lxd/instance/qemu: Extend live updatable config keys
  • lxd: Refresh all dnsmasq hosts during patch.
  • lxd/instance/drivers: Adds getRootDiskDevice function to common driver.
  • lxd/instance/drivers: Performs disk size check on stateful startup.
  • doc: add a security summary and include it where needed
  • doc: add an authentication section
  • doc: clean up security documentation
  • doc: add styling for abbreviations
  • doc: fix loading of substitutions
  • Growing a loop backed btrfs pool fix snap path
  • doc: use absolute URL for Swagger
  • doc: swagger: hide link to yaml file
  • lxd/db: Import ordering
  • doc: clean up links in README
  • doc: move missing content from SUPPORT.md to README.md
  • doc: add a support page and include it
  • doc: move SUPPORT.md to .github folder
  • doc: add a link to the Code of Conduct
  • doc: fix link to support documentation
  • lxd/network: Adds State function to interace with common implementation.
  • lxd: Call the networks 'State' function if it can be loaded.
  • shared/validate: Introduce ParseNetworkVLANRange
  • shared/validate: Align ParseNetworkVLANRange with ParseUint32Range
  • lxd/storage/btrfs: Add volume delete shortcut
  • shared/api: Fix typo
  • doc/rest-api: Refresh swagger YAML
  • client: Fix bad arg naming in zone functions
  • doc: enable automatically generated anchors
  • shared/api: Adds OVN network state to api response.
  • lxd/network: Port to using fmt.Errorf
  • lxd/instance/lxc: Use absolute rootfs
  • doc: kernel 5.15+ have sane value for net.core.bpf_jit_limit
  • api: Add image_restrictions extension
  • shared/simplestreams: Support image reqs metadata
  • doc: Add notion of image reqs
  • shared/util: Add IsFalse
  • lxd/drivers: Add secureboot & cgroup image reqs
  • doc: Add secureboot and cgroup image reqs
  • lxd/instance/qemu: Enable HyperV flags on x86_64
  • doc/storage: Ceph supports quotas
  • lxd/endpoints/listeners: Add exportable listeners package
  • lxd/endpoints/starttls: Remove TLS methods from endpoints package
  • lxd/ucred/ucred: Use new listeners package
  • lxd/instance/qemu: Restrict HyperV flags to 5.10+
  • shared/api: Add network zone record structs
  • doc/rest-api: Refresh swagger YAML
  • client: Add network zone records
  • doc: Fix typo in ZFS storage
  • lxd: Only patch dnsmasq for networks in the db.
  • lxd/storage/drivers: Support zfs.export
  • lxd/storage: Add zfs.reserve_space
  • lxd/storage/drivers: Sets RunningCopyFreeze to true.
  • doc: add a target to serve the rendered docs
  • doc: add a doc README
  • doc: exclude README.md from doc build
  • lxd/storage/drivers: Factors out fast snapshot logic from volume backup.
  • lxd/storage/drivers: Uses fast snapshot as source of migration.
  • lxd/storage/drivers: Factors out fast snapshot logic from volume backup.
  • lxd/storage/drivers: Uses fast snapshot as source of migration.
  • lxd/storage: Freezes instances during migration.
  • lxc/exec: Don't terminate on SIGWINCH
  • lxd/events: Increase websocket pings to 10s
  • lxd/console: Fix error wrapping
  • lxc/console: Properly handle GUI exitting
  • lxc/console: Fix typo
  • lxd/storage/drivers: Fixes reverter usage.
  • lxd: Restart networks when enabling clustering
  • lxd/network/bridge: Skip HandleHeartbeat on missing forkdns
  • client: Add GetNetworkACLLogfile
  • lxd/storage/drivers: Add support for zfs.blocksize config option
  • doc: quick cleanup of FAQ

試用環境

最新の LXD リリースを デモサービス で試せます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

ビルド済みバイナリーは次のように使えます:

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