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
Contents