Incus 6.0.1 LTS 已发布¶
2024年6月28日
简介¶
Incus 团队很高兴地宣布 Incus 6.0.1 发布!
这是 Incus 6.0 的第一个 bug 修复版本,支持期限至 2029 年 6 月。
更改¶
像往常一样,此 bug 修复版本侧重于稳定性和强化。
还回传了一些小的改进,特别是任何不需要数据迁移、数据库更改或导致用户界面行为发生任何意外更改的改进。
在 LTS 分支中,此类改进的数量会随着时间的推移而减少。
此版本的亮点包括
- 扩展了 ZFS 池的源语法(允许镜像和 raidz1/raidz2)
- 所有对象(实例、配置文件、镜像、存储卷/存储桶、网络等)上的跨项目列表
- 向实例放置脚本公开的其他功能
- CLI 中所有
create
子命令现在都接受 YAML 输入 - CLI 中所有
list
子命令现在都接受可自定义的列 migration.stateful
配置键已扩展到容器- OVN 现在支持无状态网络 ACL
- 公开了新的实例运行时间时间戳
- 新的
incus top
命令(使用现有的指标 API) incus info --resources
中的系统负载信息incus info --resources
中的 PCI 设备信息- 能够查询谁有权访问给定的项目或实例
- 强制删除项目
- 改进了
incus-simplestreams
中的别名处理
完整的提交列表如下所示
详细变更日志
- doc/support: 更新 LTS
- incusd/network: 删除桥接器.driver=native 对扩展 external_interfaces 语法的要求
- doc/network/bridge: 更新扩展 external_interfaces 文档
- incusd/storage/drivers/zfs: 简化数据集接收并修复进度处理
- gomod: 更新依赖项
- mini-oidc: 合并到主 gomod
- gomod: 更新依赖项
- go.mod: 将包主版本号提升
- global: 将 Go 包更新到 v6
- test: 更新 godeps.list
- README: 更新 godoc URL
- doc/rest-api: 刷新 swagger YAML
- cmd/incus: 修复导入顺序
- incusd: 删除不必要的导入重命名
- incusd/instance: 修复重复导入
- doc/projects: 调整示例
- shared/api: 删除容器资源(已弃用)
- doc/rest-api: 刷新 swagger YAML
- incus/create: 删除死代码
- i18n: 更新翻译模板
- incusd/daemon: 删除旧的迁移逻辑
- incusd: 停止在资源中提及容器
- doc/rest-api: 在示例中使用实例 API
- incusd/db/cluster: 容器 URL 在 Incus 中无效
- incusd/instances: 撤离时不要启动实例
- doc/installing: 对源代码构建发行版说明进行排序
- doc/installing: 添加 OpenSUSE 源代码说明
- doc/installing: 添加 Alpine 说明
- incus/aliases: 修复补全回归
- incus/snapshot: 修复包含冒号的快照的删除
- incusd/instance/drivers: 使 SR-IOV 获取稳定的 MAC
- incusd/device/nic_sriov: 使用稳定的 MAC
- incus/profile: 添加从 YAML 创建的支持
- i18n: 更新翻译模板
- incusd/instance/lxc: 仅在 cgroup1 上应用软 cgroup 限制
- incus/admin: 不要隐藏 sql 命令
- grafana: 刷新仪表板
- doc/metrics: 在 Grafana 设置中提及 Loki
- grafana: 通过项目更好地过滤 Loki 事件
- incusd/loki: 在独立系统上使用主机名作为默认实例属性
- incusd/loki: 重新排序配置字段
- incusd/loki: 允许覆盖位置字段
- incusd/loki: 在独立系统上将位置字段设置为本地主机名
- incus/projct: 添加从 yaml 创建项目的支持
- i18n: 更新翻译模板
- incusd/network/ovs: 将 GetOVNEncapIP 移植到 libovsdb
- incusd/network/ovs: 为 GetOVNBridgeMappings 添加一些注释
- incusd/network/ovs: 将 AddOVNBridgeMapping 移植到 libovsdb
- incusd/network/ovs: 将 RemoveOVNBridgeMapping 移植到 libovsdb
- incusd/network/ovs: 将 GetHardwareOffload 移植到 libovsdb
- incusd/network/ovs: 将 GetBridgePorts 移植到 libovsdb
- incusd/network/ovs: 将 UpdateBridgePortVLANs 移植到 libovsdb
- incusd/network/ovs: 将 AssociateInterfaceOVNSwitchPort 移植到 libovsdb
- incusd/network/ovs: 将已安装切换到检查 unix 套接字
- incusd/network: 更新 OVS 函数更改
- 添加缺少的安全启动固件名称
- incus/snapshot: 添加从 yaml 创建项目的支持
- i18n: 更新翻译模板
- api: network_zones_all_projects
- shared/api: 向 NetworkZone 添加 Project 字段
- incusd/network_zones: 添加对所有项目的支持
- doc/rest-api: 刷新 swagger YAML
- client: 添加 GetNetworkZonesAllProjects
- incus/network_zone: 向 list 添加 --all-projects 标志
- i18n: 更新翻译模板
- tests: 添加所有项目的网络区域测试
- incusd/network/ovn: 将 LogicalRouterAdd 移植到 libovsdb
- incusd/network/ovn: 删除 LogicalRouterAdd
- incusd/network: 使用 CreateLogicalRouter 替换 LogicalRouterAdd 用法
- incusd/network/ovn: gofmt
- incusd/cluster: 在撤离期间禁用网络
- incusd/cgroup: 设置预留的巨页限制
- incusd/storage/drivers: 引入 SparseFileWrapper
- incusd/storage/drivers/vfs: 在备份导入时使用 SparseFileWrapper
- incusd/storage/drivers/vfs: 在卷迁移时使用 SparseFileWrapper
- incus/storage: 支持从 yaml 创建存储池
- i18n: 更新翻译模板
- incus/info: 将 CPU 架构显示为单独的行
- i18n: 更新翻译模板
- incus/cluster_group: 添加对集群组创建的 yaml 支持
- i18n: 更新翻译模板
- gitignore: 添加 JetBrains
- api: storage_zfs_vdev
- doc: 在 doc/reference/storage_zfs.md 中更新对多个块设备和 vdev 类型的 ZFS 支持
- incusd/storage/zfs: 添加对 vdev 类型和多个块设备的支持
- incus/info: 对网络接口进行排序
- incus/network_acl: 为网络 acl create 添加 cmd.Example
- i18n: 更新翻译模板
- incus/network_forward: 为 create 添加 yaml 示例
- i18n: 更新翻译模板
- incus/config_template: 添加对 create 的文件支持
- i18n: 更新翻译模板
- incus/network_integrations: 添加对 create 的 yaml 支持
- i18n: 更新翻译模板
- incusd/storage/s3: 使用“mc”客户端
- incusd/storage: 切换到使用 minio 的“mc”客户端
- gomod: 更新依赖项
- github: 下载 MinIO 客户端
- doc: 避免 MyST 3.0.0
- incus/doc/installing.md: 添加 Docker 信息
- doc: 向词表中添加 Podman
- incus/cluster: 向 list 添加列
- i18n: 更新翻译模板
- incus/project: 向 list 添加可自定义的列
- i18n: 更新翻译模板
- api: container_migration_stateful
- internal/instance: 向容器添加 migration.stateful
- incusd/instance/lxc: 添加对 migration.stateful 的检查
- doc: 更新配置
- incus/network_load_balancer: 为 create 添加示例
- i18n: 更新翻译模板
- incus/network_zone: 为 create 命令添加示例
- i18n: 更新翻译模板
- doc: 修复错误的 sphinx 要求
- incusd/instances/qemu: 调整安全启动固件列表
- cmd/incus/admin_cluster: 为 incusd 添加 libexec 路径
- incus/storage: 未传递驱动程序时显示用法
- incusd/storage/drivers/dir: 调整路径验证
- incusd/backup: 在查找错误时显示配置文件列表
- incusd/apparmor/lxc: 允许访问 binfmt_misc
- incusd/apparmor/lxc: 刷新生成的规则
- incusd/storage: 处理导入时的实例卷大小
- incus/profile: 向 list 添加可自定义的列
- i18n: 更新翻译模板
- incus/project: 为 list 修复帮助消息
- i18n: 更新翻译模板
- api: profiles_all_projects
- shared/api: 向 Profile 添加 Project 字段
- client: 添加 GetProfilesAllProjects
- incus/profile: 向 list 添加 all-projects
- incusd/db/cluster: 向 Profile 添加 Project 字段
- incusd/profile: 添加对所有项目的支持
- doc/rest-api: 刷新 swagger YAML
- i18n: 更新翻译模板
- incus/storage_volume: 说明卷错误
- incusd/apparmor/lxc: 修复对 kernel/security/apparmor 的访问
- api: instances_scriptlet_get_instances
- doc/instances/scriptlet: 添加 get_instances
- incusd/scriptlet: 添加 get_instances
- api: instances_scriptlet_get_cluster_members
- doc/instances/scriptlet: 添加 get_cluster_members
- incusd/scriptlet: 添加 get_cluster_members
- api: 添加 network_acl_stateless
- doc/network_acl: 添加 allow-stateless 操作
- incusd/network/acl: 添加 allow-stateless 操作
- incusd/network/ovn/nb: 将 DeleteLogicalRouter 移植到 libovsdb
- incusd/network/ovn/nb: 将 CreateLogicalRouterSNAT 移植到 libovsdb
- incusd/network: 更新 OVS 函数更改
- incusd/network/acl: 在 ACL 循环之外正确运行实例计数
- incusd/network/ovn: 最多等待 1 秒获取动态 IP
- incusd/network/ovn/nb: 将 DeleteLogicalRouterNAT 移植到 libovsdb
- incusd/network: 更新 OVS 函数更改
- shared/archive: 修复错别字
- incusd/cluster: 重新组织加入逻辑
- incusd/cluster: 在加入时忽略 OVN 网络
- shared/archive: 正确锚定排除规则
- incusd/project: 重做低级权限检查
- incus/storage_bucket: 为存储桶创建添加示例
- i18n: 更新翻译模板
- incus/network_peer: 为 create 命令添加示例
- i18n: 更新翻译模板
- api: instance_state_started_at
- shared/api: 向 InstanceState 添加 StartedAt
- doc/rest-api: 刷新 swagger YAML
- incusd/instance: 向 InstanceState 添加 StartedAt
- incus/info: 添加 Started 字段
- incus/list: 添加 started at 列
- i18n: 更新翻译模板
- Makefile: 清理 gomod 更新
- gomod: 更新依赖项
- tests/mini-oidc: 提升到 go-jose/v4
- client/connection: 添加对套接字存在于 /run/incus 中的支持
- incusd/instance/lxc: 为镜像限制添加 gendoc 注释
- incusd/instance/qemu: 为镜像限制添加 gendoc 注释
- doc: 更新配置
- doc/image-handling: 使用 gendoc 数据
- incus/storage_bucket: 添加对密钥创建的 yaml 支持
- i18n: 更新翻译模板
- incusd/instance/qemu: 修复 StartedAt 处理
- incus/storage: list 中的可自定义列
- i18n: 更新翻译模板
- incusd/network/ovn: 将 LogicalRouterSNATAdd 和 LogicalRouterDNATSNATAdd 移植到 libovsdb
- incusd/network: 更新 OVN 函数更改
- api: instances_scriptlet_get_project
- doc/instances/scriptlet: 添加 get_project
- incusd/scriptlet: 添加 get_project
- api: networks_all_projects
- shared/api: 向 Network 添加 Project 字段
- client: 添加 GetNetworksAllProjects
- incus/network: 添加 all-projects
- incusd/db: 添加 GetNetworksAllProjects
- incusd/networks: 添加 all-projects
- internal/instance: 为 limits.kernel 添加 gendoc
- doc: 更新配置
- doc: 为 limits.kernel 使用 gendoc
- api: network_acls_all_projects
- shared/api: 向 NetworkACL 添加 Project 字段
- client: 添加 GetNetworkACLsAllProjects
- incus/network/acl: 添加所有项目
- incusd/db: 添加 GetNetworkACLsAllProjects
- incusd/network/acl: 设置 Project 字段
- incusd/network_acls: 添加所有项目
- api: storage_buckets_all_projects
- shared/api: 为 StorageBucket 添加 Project 字段
- client: 添加 GetStoragePoolBucketsAllProjects
- incus/storage/bucket: 添加所有项目
- incusd/db/storage_buckets: 填充 Project 字段
- incusd/storage_buckets: 添加所有项目
- i18n: 更新翻译模板
- incusd/networks: 修复导入阴影
- doc/rest-api: 刷新 swagger YAML
- client: 使 GetProfilesAllProjects 与 GetProfiles 对齐
- client: 使 GetNetworkZonesAllProjects 与 GetNetworkZones 对齐
- client: 标准化 GetNetworkAllocation 函数
- incus/network_allocations: 更新以适应客户端更改
- incusd/device/usb: 为 USB 设备添加 gendoc
- doc: 更新配置
- doc: 使用 gendoc 编写 USB 设备文档
- api: resources_load
- shared/api: 为 resources API 添加 Load
- doc/rest-api: 刷新 swagger YAML
- incusd/resources: 添加负载信息
- incus/info: 添加负载信息
- i18n: 更新翻译模板
- incusd/device/unix: 添加 gendoc 注释
- doc: 更新配置
- doc/devices_unix_block.md: 使用 gendoc 数据
- doc/devices_unix_char.md: 使用 gendoc 数据
- doc/devices_unix_hotplug.md: 使用 gendoc 数据
- incus/top: 添加新命令
- i18n: 更新翻译模板
- incusd/network/zone: 为网络区域添加 gendoc
- doc: 更新配置
- doc: 使用 gen doc 编写网络区域文档
- incusd/device/unix: 运行 gofmt
- incus/info: 将 PCI 设备添加到 --resources
- i18n: 更新翻译模板
- incusd/device/disk: 添加 gendoc 注释
- doc: 更新配置
- doc/devices/disk: 使用 gendoc
- incus/network: 可自定义列表中的列
- i18n: 更新翻译模板
- incusd/network_zones: 修复项目内区域列表
- incusd/instance/lxc: 修复 migration.stateful 的处理
- gomod: 更新依赖项
- incusd/network/ovs: 修复错误的 VLANMode 值
- fix: 关闭资源
- incusd/instance: 修复在 32 位架构上构建
- incus/network_zone: 添加网络区域记录创建示例
- i18n: 更新翻译模板
- incus/storage_volume: 添加对创建的 yaml 支持
- i18n: 更新翻译模板
- cmd/incus/info: 修复机箱、主板和固件信息不可用时发生的运行时错误
- 使用 Weblate (德语) 翻译
- incusd/instance/qemu: 允许在运行时设置 protection.delete
- doc/api-extension: 修复错别字
- shared/api: 引入 Access 结构体
- api: instance_access
- incusd/auth: 引入 GetInstanceAccess
- incusd/instance: 添加访问端点
- api: project_access
- incusd/auth: 引入 GetProjectAccess
- incusd/project: 添加访问端点
- doc/rest-api: 刷新 swagger YAML
- client: 添加 GetInstanceAccess
- client: 添加 GetProjectAccess
- incus/info: 修复 --show-log 的描述
- incus/info: 添加 --show-access
- incus/project: 为 info 添加 --show-access
- i18n: 更新翻译模板
- incusd/auth/fga: 将模型中的 manager 重命名为 admin
- incusd/auth/fga: 重构权限模型
- incusd/auth/fga: 重建模型
- tests: 修复权限更改
- incusd/instance/agent-loader: 支持安装到 /etc
- incusd/apparmor/lxc: 修复规则语法
- incus-simplestreams add: 添加标志:--no-default-alias、--alias。#875
- incus/storage_volume/snapshot: 支持 YAML 创建
- i18n: 更新翻译模板
- shared/idmap: 使 get_userns_fd 配置 userns
- incus-migrate: 处理有效的 CA 证书
- incusd/instances_post: 修复迁移到远程集群
- incusd/apparmor: 检测 nosymfollow 支持
- incusd: 在套接字上设置 SELinux 标签
- incus/network: 使 attach-profile 与 attach 对齐
- create_detached_idmapped_mount: 避免双重关闭
- incusd/instance/qemu: 扩展缺少的 QEMU 错误
- doc/installing: 提到虚拟机所需的其他软件包
- incusd/storage/btrfs: 修复 btrfs 参数顺序
- incusd/seccomp/sysinfo: 处理 64 位上的 32 位
- api: projects_force_delete
- incusd/api_project: 添加强制删除端点
- doc/rest-api: 刷新 swagger YAML
- client: 引入 DeleteProjectForce
- cmd/incus/project: 为删除添加 --force
- i18n: 更新翻译模板
- incusd/project: 简化 projectIsEmpty
- incusd/db: 引入 GetNetworkZoneURIs
- incusd/db: 引入 GetStorageBucketURIs
- incusd/api_project: 修复 UsedBy
- incusd/api_project: 添加强制删除逻辑
- incus/completion: 减少 API 调用
- incus/publish: 完成快照名称
- incus/completion: 修复导入阴影
- 使用 Weblate (法语) 翻译
- Makefile: 为 Go 1.21 固定 go-acme/lego
- 更新依赖项
- cmd/incus/console: 清理 --show-log
- incusd/instance_console: 删除旧检查
- incusd/instance_console: 处理缺少的日志文件
- incusd/instance_console: 不要在空日志上失败
- incusd/instance_console: 清理错误消息
- i18n: 更新翻译模板
- incusd/device/sriov: 使代码与注释对齐
- incus/project: 修复错误的 --show-access 输出
- cmd/incus-user: 避免在网络描述中重复 user-user-
- 使用 Weblate (德语) 翻译
- 使用 Weblate (日语) 翻译
- incus/admin_sql: 修复描述
- incus/storage_bucket: 修复字符串引用
- incus/profile: 修复示例
- incus/project: 修复示例
- incus/snapshot: 改进恢复示例
- incus/storage_bucket: 修复示例中的错别字
- incus/storage_bucket: 修复导出示例
- incus/exec: 添加一些示例
- i18n: 更新翻译模板
- incus-user: 不要不必要地更新默认配置文件
- incus/top: 支持远程服务器
- incus/top: 正确处理项目
- incus/top: 处理集群
- incusd/instance/qemu: 避免 vsockIDInt 的大小端问题
- internal/linux: 定义一些 IOCTL
- incusd/instance/qemu: 不要使用硬编码 ioctl
- incusd/storage/btrfs: 不要使用硬编码 ioctl
- incusd/devices: 简化 ioctl 逻辑
- shared/cliconfig: 删除旧的迁移逻辑
- shared/cliconfig: 通用化逻辑
- incusd/seccomp: 修复 32 位平台上的 sysinfo 逻辑
- shared/cliconfig: 始终填写协议
- incus: 通用化镜像服务器逻辑
- incus/console: 稍微重新整理一下逻辑
- incus: 在 --console 中处理已停止的容器
- incus/console: 不要导出内部函数
- doc: 更新使用现有服务器构建集群的文档
- github: 清理工作流文件
- github: 构建 go tip
- github: 更改测试中的 Go 版本
- test/lint/golangci: 正确拉取父引用
- cmd/incusd: 修复 forknet 中的错别字
- api: resources_cpu_flags
- shared/api: 为 ResourceCPUCore 添加 Flags
- doc/rest-api: 刷新 swagger YAML
- incusd/resources: 为 ResourceCPUCore 添加 CPU Flags
- doc/instances_console: 微调 SPICE 客户端的措辞
- incus/network_load_balancer: 修复示例
- i18n: 更新翻译模板
- incusd/networks: 正确完成 OVN 网络
- incusd/networks: 正确记录描述
- incusd/response: 添加 Code 函数
- incusd/operations: 实现 Code 函数
- incusd: 实现 Code 函数
- incus-agent: 实现 Code 函数
- client: 修复 POST 上的 OIDC 重新认证
- client: 修复 websocket 上的 OIDC 重新认证
- incus/network: 添加缺少的 stdin 处理
- i18n: 更新翻译模板
- lxd-to-incus: 处理卷配置键
- incusd/project: 不要在授权器上失败创建
- doc/instance_units: 阐明用法
- incusd/apparmor: 更新以适应当前 QEMU
- incusd/apparmor: 允许 forkproxy 使用 /dev/shm
- 使用 Weblate (简体中文) 翻译
- doc/installing: 更新 Debian/Ubuntu 构建说明
- doc/installing: 提到从上游安装 Go
- doc/installing: 使用 Incus 6.0.0 作为示例
支持和升级¶
Incus 6.0 分支支持到 2029 年 6 月。始终强烈建议保持最新并运行最新的 LTS 修补程序版本。
下载¶
- 主要发行版压缩包:incus-6.0.1.tar.xz
- GPG 签名:incus-6.0.1.tar.xz.asc