返回新闻概览

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 修补程序版本。

下载