API 扩展¶
以下更改是在 1.0 API 最终确定后引入 Incus API 的。
它们都向后兼容,并且可以通过客户端工具在 GET /1.0
中查看 api_extensions
字段来检测。
storage_zfs_remove_snapshots
¶
引入了 storage.zfs_remove_snapshots
守护进程配置键。
这是一个布尔值,默认值为 false
,当设置为 true
时,会指示 Incus 在尝试恢复另一个快照时删除任何所需的快照。
这是因为 ZFS 只能让你恢复最新的快照。
container_host_shutdown_timeout
¶
引入了 boot.host_shutdown_timeout
容器配置键。
这是一个整数,它指示 Incus 在杀死容器之前应等待容器停止多长时间。
它的值仅在 Incus 守护进程干净关闭时使用。它默认为 30 秒。
container_stop_priority
¶
引入了 boot.stop.priority
容器配置键。
这是一个整数,它指示容器在关闭过程中的优先级。
容器将从最高优先级级别开始关闭。
具有相同优先级的容器将并行关闭。它默认为 0。
container_syscall_filtering
¶
引入了许多与容器配置键相关的新的系统调用。
security.syscalls.blacklist_default
security.syscalls.blacklist_compat
security.syscalls.blacklist
security.syscalls.whitelist
有关如何使用它们,请参阅 实例配置。
auth_pki
¶
这表示支持 PKI 身份验证模式。
在此模式下,客户端和服务器都必须使用由同一个 PKI 颁发的证书。
有关详细信息,请参阅 安全。
container_last_used_at
¶
在 GET /1.0/containers/<name>
端点中添加了一个 last_used_at
字段。
它是容器上次启动的时间戳。
如果容器已创建但尚未启动,则 last_used_at
字段将为 1970-01-01T00:00:00Z
etag
¶
在所有相关端点上添加对 ETag 标头的支持。
这会在对 GET 的回复中添加以下 HTTP 标头
ETag(用户可修改内容的 SHA-256 哈希值)
并添加对 PUT 请求中以下 HTTP 标头的支持
If-Match(通过之前的 GET 获取的 ETag 值)
这使得可以获取 Incus 对象、修改它并 PUT 它,而不会冒 Incus 或其他客户端同时修改对象的风险。
patch
¶
添加对 HTTP PATCH 方法的支持。
PATCH 允许对对象进行部分更新,而不是 PUT。
usb_devices
¶
添加对 USB 热插拔的支持。
https_allowed_credentials
¶
要使用所有 Web 浏览器(通过 SPA)中的 Incus API,你必须在每个 XHR 中发送凭据(证书)(为此,你应该将 withCredentials=true
标志设置为每个 XHR 请求)。
像 Firefox 和 Safari 这样的浏览器无法接受没有 Access-Control-Allow-Credentials: true
标头的服务器响应。为了确保服务器将返回带有该标头的响应,请设置 core.https_allowed_credentials=true
。
image_compression_algorithm
¶
这在创建镜像(POST /1.0/images
)时添加了对 compression_algorithm
属性的支持。
设置此属性会覆盖服务器默认值(images.compression_algorithm
)。
directory_manipulation
¶
此功能允许通过 Incus API 创建和列出目录,并通过 X-Incus-type 标头导出文件类型,该标头目前可以是 file
或 directory
。
container_cpu_time
¶
此功能添加了对检索运行容器的 CPU 时间的支持。
storage_zfs_use_refquota
¶
引入了一个新的服务器属性 storage.zfs_use_refquota
,它指示 Incus 在为容器设置大小限制时设置 refquota
属性而不是 quota
。Incus 在被查询磁盘使用情况时,也将使用 usedbydataset
代替 used
。
这实际上控制了快照的磁盘使用量是否应计入容器的磁盘空间使用量。
storage_lvm_mount_options
¶
添加了一个新的 storage.lvm_mount_options
守护程序配置选项,它默认为 discard
,并允许用户为 LVM LV 使用的文件系统设置附加的挂载选项。
network
¶
Incus 的网络管理 API。
这包括:
在
/1.0/networks
条目上添加managed
属性所有网络配置选项(有关详细信息,请参阅 网络配置)
POST /1.0/networks
(有关详细信息,请参阅 RESTful API)PUT /1.0/networks/<entry>
(有关详细信息,请参阅 RESTful API)PATCH /1.0/networks/<entry>
(有关详细信息,请参阅 RESTful API)DELETE /1.0/networks/<entry>
(有关详细信息,请参阅 RESTful API)在
nic
类型的设备上(当nictype
为bridged
时)的ipv4.address
属性在
nic
类型的设备上(当nictype
为bridged
时)的ipv6.address
属性在
nic
类型的设备上(当nictype
为bridged
时)的security.mac_filtering
属性
profile_usedby
¶
向配置文件条目添加了一个新的 used_by
字段,用于列出使用它的容器。
container_push
¶
当在推送模式下创建容器时,客户端充当源服务器和目标服务器之间的代理。这在目标服务器位于 NAT 或防火墙后面且无法直接与源服务器通信并在拉取模式下运行的情况下很有用。
container_exec_recording
¶
引入了一个新的布尔值 record-output
,它是 /1.0/containers/<name>/exec
的参数,当设置为 true
并与 wait-for-websocket
设置为 false
结合使用时,会将 stdout 和 stderr 记录到磁盘,并通过日志接口提供。
命令运行完毕后,操作元数据中将包含记录输出的 URL。
该输出将与其他日志文件一样过期,通常在 48 小时后过期。
certificate_update
¶
向 REST API 添加以下内容:
获取证书时的 ETag 标头
证书条目的 PUT 操作
证书条目的 PATCH 操作
container_exec_signal_handling
¶
添加了对 /1.0/containers/<name>/exec
的支持,用于将发送到客户端的信号转发到容器中执行的进程。当前转发 SIGTERM 和 SIGHUP。以后可能会添加其他可以转发的信号。
gpu_devices
¶
启用向容器添加 GPU。
container_image_properties
¶
引入了一个新的 image
配置键空间。只读,包括父映像的属性。
migration_progress
¶
传输进度现在作为操作的一部分导出,在发送端和接收端都有。这在操作元数据中显示为 fs_progress
属性。
id_map
¶
启用设置 security.idmap.isolated
和 security.idmap.isolated
、security.idmap.size
以及 raw.id_map
字段。
network_firewall_filtering
¶
添加了两个新键,ipv4.firewall
和 ipv6.firewall
,如果设置为 false
,将关闭 iptables
FORWARDING 规则的生成。只要匹配的 ipv4.nat
或 ipv6.nat
键设置为 true
,NAT 规则将继续添加。
如果在网桥上启用了 dnsmasq
,则 dnsmasq
工作(DHCP/DNS)所需的规则将始终应用。
network_routes
¶
引入了 ipv4.routes
和 ipv6.routes
,允许将其他子网路由到 Incus 网桥。
storage
¶
Incus 的存储管理 API。
这包括:
GET /1.0/storage-pools
POST /1.0/storage-pools
(有关详细信息,请参阅 RESTful API)GET /1.0/storage-pools/<name>
(有关详细信息,请参阅 RESTful API)POST /1.0/storage-pools/<name>
(有关详细信息,请参阅 RESTful API)PUT /1.0/storage-pools/<name>
(有关详细信息,请参阅 RESTful API)PATCH /1.0/storage-pools/<name>
(有关详细信息,请参阅 RESTful API)DELETE /1.0/storage-pools/<name>
(有关详细信息,请参阅 RESTful API)GET /1.0/storage-pools/<name>/volumes
(有关详细信息,请参阅 RESTful API)GET /1.0/storage-pools/<name>/volumes/<volume_type>
(有关详细信息,请参阅 RESTful API)POST /1.0/storage-pools/<name>/volumes/<volume_type>
(有关详细信息,请参阅 RESTful API)GET /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>
(有关详细信息,请参阅 RESTful API)POST /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>
(有关详细信息,请参阅 RESTful API)PUT /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>
(详情请参见 RESTful API)PATCH /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>
(详情请参见 RESTful API)DELETE /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>
(详情请参见 RESTful API)所有存储配置选项(详情请参见 Storage configuration)
file_delete
¶
实现 DELETE
在 /1.0/containers/<name>/files
中
file_append
¶
实现 X-Incus-write
头部,它可以是 overwrite
或 append
之一。
network_dhcp_expiry
¶
引入了 ipv4.dhcp.expiry
和 ipv6.dhcp.expiry
,允许设置 DHCP 租约过期时间。
storage_lvm_vg_rename
¶
引入了通过设置 storage.lvm.vg_name
来重命名卷组的能力。
storage_lvm_thinpool_rename
¶
引入了通过设置 storage.thinpool_name
来重命名精简池名称的能力。
network_vlan
¶
这为 macvlan
网络设备添加了一个新的 vlan
属性。
设置后,这将指示 Incus 连接到指定的 VLAN。Incus 将在主机上查找该 VLAN 的现有接口。如果找不到,它将自行创建一个,然后将其用作 macvlan 父级。
image_create_aliases
¶
在 POST /1.0/images
中添加了一个新的 aliases
字段,允许在镜像创建/导入时设置别名。
container_stateless_copy
¶
这在 POST /1.0/containers/<name>
中引入了新的 live
属性。将其设置为 false
告诉 Incus 不要尝试运行状态转移。
container_only_migration
¶
引入了一个新的布尔值 container_only
属性。当设置为 true
时,只有容器会被复制或移动。
storage_zfs_clone_copy
¶
为 ZFS 存储池引入了一个新的布尔值 storage_zfs_clone_copy
属性。当设置为 false
时,复制容器将通过 zfs send
和接收进行。这将使目标容器独立于其源容器,从而避免需要在 ZFS 池中保留依赖的快照。但是,这也意味着受影响池的存储使用效率较低。此属性的默认值为 true
,即除非明确设置为 false
,否则将使用节省空间的快照。
unix_device_rename
¶
引入了通过设置 path
来重命名容器内的 unix-block
/unix-char
设备的能力,并且添加了 source
属性来指定主机上的设备。如果设置了 source
但没有设置 path
,我们应该假设 path
与 source
相同。如果设置了 path
但没有设置 source
并且没有设置 major
/minor
,我们应该假设 source
与 path
相同。因此,至少必须设置其中一项。
storage_rsync_bwlimit
¶
当必须调用 rsync
来传输存储实体时,设置 rsync.bwlimit
会对允许的套接字 I/O 量设置上限。
network_vxlan_interface
¶
这引入了网络的新的 tunnel.NAME.interface
选项。
此键控制用于 VXLAN 隧道的哪个主机网络接口。
storage_btrfs_mount_options
¶
这引入了 Btrfs 存储池的 btrfs.mount_options
属性。
此键控制将为 Btrfs 存储池使用哪些挂载选项。
entity_description
¶
这为实体添加了描述,例如容器、快照、网络、存储池和卷。
image_force_refresh
¶
这允许强制刷新现有镜像。
storage_lvm_lv_resizing
¶
这引入了通过在容器根磁盘设备中设置 size
属性来调整逻辑卷大小的能力。
id_map_base
¶
这引入了新的 security.idmap.base
,允许用户跳过隔离容器的映射自动选择过程,并指定要使用哪个主机 UID/GID 作为基准。
file_symlinks
¶
这添加了通过文件 API 传输符号链接的支持。X-Incus-type 现在可以是 symlink
,请求内容为目标路径。
container_push_target
¶
这在 POST /1.0/containers/<name>
中添加了 target
字段,可用于让源 Incus 主机在迁移期间连接到目标。
network_vlan_physical
¶
允许使用 vlan
属性与 physical
网络设备一起使用。
设置后,这将指示 Incus 连接到 parent
接口上的指定 VLAN。Incus 将在主机上查找该 parent
和 VLAN 的现有接口。如果找不到,它将自行创建一个。然后,Incus 将直接将此接口连接到容器。
storage_images_delete
¶
这使存储 API 能够从特定存储池中删除镜像的存储卷。
container_edit_metadata
¶
这添加了通过 API 编辑容器 metadata.yaml
及其相关模板的支持,方法是访问 /1.0/containers/<name>/metadata
下的 URL。它可以用于在从容器发布镜像之前编辑容器。
container_snapshot_stateful_migration
¶
这使迁移有状态的容器快照到新容器成为可能。
storage_driver_ceph
¶
添加 Ceph 存储驱动程序。
storage_ceph_user_name
¶
添加指定 Ceph 用户的能力。
instance_types
¶
在容器创建请求中添加 instance_type
字段。它的值扩展为 Incus 资源限制。
storage_volatile_initial_source
¶
记录存储池创建过程中传递给 Incus 的实际源。
storage_ceph_force_osd_reuse
¶
为 Ceph 存储驱动程序引入 ceph.osd.force_reuse
属性。当设置为 true
时,Incus 将重用另一个 Incus 实例正在使用的 OSD 存储池。
storage_block_filesystem_btrfs
¶
除了 ext4
和 xfs
之外,添加对 Btrfs 作为存储卷文件系统的支持。
resources
¶
添加对查询 Incus 守护程序以获取其可用的系统资源的支持。
kernel_limits
¶
添加对通过 nofile
为容器设置进程限制(如最大打开文件数)的支持。格式为 limits.kernel.[limit name]
。
storage_api_volume_rename
¶
添加对重命名自定义存储卷的支持。
network_sriov
¶
添加对支持 SR-IOV 的网络设备的支持。
console
¶
添加对与容器控制台设备和控制台日志进行交互的支持。
restrict_dev_incus
¶
引入了新的 security.guestapi
容器配置密钥。该密钥控制是否将 /dev/incus
接口提供给容器。如果设置为 false
,则有效地阻止容器与 Incus 守护程序交互。
migration_pre_copy
¶
添加对实时迁移过程中优化内存传输的支持。
infiniband
¶
添加对使用 InfiniBand 网络设备的支持。
dev_incus_events
¶
为 /dev/incus
套接字添加 WebSocket API。
通过 /dev/incus
套接字连接到 /1.0/events
时,您现在将通过 WebSocket 获取事件流。
proxy
¶
为容器添加新的 proxy
设备类型,允许转发主机和容器之间的连接。
network_dhcp_gateway
¶
引入了新的 ipv4.dhcp.gateway
网络配置密钥来设置备用网关。
file_get_symlink
¶
可以使用文件 API 获取符号链接。
network_leases
¶
添加新的 /1.0/networks/NAME/leases
API 端点来查询运行 Incus 管理的 DHCP 服务器的桥接上的租约数据库。
unix_device_hotplug
¶
添加对 Unix 设备的 required
属性的支持。
storage_api_local_volume_handling
¶
添加在同一个和不同的存储池中本地复制和移动自定义存储卷的能力。
operation_description
¶
在所有操作中添加 description
字段。
clustering
¶
Incus 的集群 API。
这包括以下新的端点(有关详细信息,请参见 RESTful API)
GET /1.0/cluster
UPDATE /1.0/cluster
GET /1.0/cluster/members
GET /1.0/cluster/members/<name>
POST /1.0/cluster/members/<name>
DELETE /1.0/cluster/members/<name>
以下现有端点已修改
POST /1.0/containers
接受新的target
查询参数POST /1.0/storage-pools
接受新的target
查询参数GET /1.0/storage-pool/<name>
接受新的target
查询参数POST /1.0/storage-pool/<pool>/volumes/<type>
接受新的target
查询参数GET /1.0/storage-pool/<pool>/volumes/<type>/<name>
接受新的target
查询参数POST /1.0/storage-pool/<pool>/volumes/<type>/<name>
接受新的target
查询参数PUT /1.0/storage-pool/<pool>/volumes/<type>/<name>
接受新的target
查询参数PATCH /1.0/storage-pool/<pool>/volumes/<type>/<name>
接受新的target
查询参数DELETE /1.0/storage-pool/<pool>/volumes/<type>/<name>
接受新的target
查询参数POST /1.0/networks
接受新的target
查询参数GET /1.0/networks/<name>
接受新的target
查询参数
event_lifecycle
¶
在事件 API 中添加新的 lifecycle
消息类型。
storage_api_remote_volume_handling
¶
添加在远程之间复制和移动自定义存储卷的能力。
nvidia_runtime
¶
为容器添加 nvidia_runtime
配置选项,将其设置为 true
将使 NVIDIA 运行时和 CUDA 库传递给容器。
container_mount_propagation
¶
在磁盘设备类型中添加新的 propagation
选项,允许配置内核挂载传播。
container_backup
¶
添加容器备份支持。
这包括以下新的端点(有关详细信息,请参见 RESTful API)
GET /1.0/containers/<name>/backups
POST /1.0/containers/<name>/backups
GET /1.0/containers/<name>/backups/<name>
POST /1.0/containers/<name>/backups/<name>
DELETE /1.0/containers/<name>/backups/<name>
GET /1.0/containers/<name>/backups/<name>/export
以下现有端点已修改
POST /1.0/containers
接受新的源类型backup
dev_incus_images
¶
为容器添加一个 security.guestapi.images
配置选项,用于控制通过 /dev/incus
提供 /1.0/images/FINGERPRINT/export
API 的可用性。嵌套 Incus 运行的容器可以使用它从主机访问原始镜像。
container_local_cross_pool_handling
¶
这使得可以在同一个 Incus 实例上跨存储池复制或移动容器。
proxy_unix
¶
添加对代理设备中 Unix 套接字和抽象 Unix 套接字的支持。可以通过将地址指定为 unix:/path/to/unix.sock
(普通套接字)或 unix:@/tmp/unix.sock
(抽象套接字)来使用它们。
现在支持的连接为
TCP <-> TCP
UNIX <-> UNIX
TCP <-> UNIX
UNIX <-> TCP
proxy_udp
¶
添加对代理设备中 UDP 的支持。
现在支持的连接为
TCP <-> TCP
UNIX <-> UNIX
TCP <-> UNIX
UNIX <-> TCP
UDP <-> UDP
TCP <-> UDP
UNIX <-> UDP
clustering_join
¶
这使得 GET /1.0/cluster
返回有关加入节点需要创建哪些存储池和网络以及在创建它们时需要使用哪些特定于节点的配置键的信息。同样,PUT /1.0/cluster
端点现在接受相同的格式,以传递有关在尝试加入集群之前要自动创建的存储池和网络的信息。
proxy_tcp_udp_multi_port_handling
¶
添加对转发多个端口的流量的支持。如果源和目标的端口范围相等(例如 1.2.3.4 0-1000 -> 5.6.7.8 1000-2000
),则允许在端口范围内转发。以及在源端口范围和单个目标端口之间转发(例如 1.2.3.4 0-1000 -> 5.6.7.8 1000
)。
network_state
¶
添加对检索网络状态的支持。
这添加了以下新的端点(有关详细信息,请参阅 RESTful API)
GET /1.0/networks/<name>/state
proxy_unix_dac_properties
¶
这添加了对非抽象 Unix 套接字的 GID、UID 和模式属性的支持。
container_protection_delete
¶
启用设置 security.protection.delete
字段,如果设置为 true
,则可以防止删除容器。快照不受此设置的影响。
proxy_priv_drop
¶
添加 security.uid
和 security.gid
用于代理设备,允许特权下降,并有效地改变用于连接到 Unix 套接字的 UID/GID。
pprof_http
¶
这添加了一个新的 core.debug_address
配置选项来启动一个调试 HTTP 服务器。
该服务器当前包含一个 pprof
API,并取代了旧的 cpu-profile
、memory-profile
和 print-goroutines
调试选项。
proxy_haproxy_protocol
¶
在代理设备中添加一个 proxy_protocol
键,用于控制是否使用 HAProxy PROXY 协议头。
network_hwaddr
¶
添加一个 bridge.hwaddr
键来控制网桥的 MAC 地址。
proxy_nat
¶
这添加了优化的 UDP/TCP 代理。如果配置允许,代理将通过 iptables
完成,而不是通过代理设备。
network_nat_order
¶
这引入了 Incus 网桥的 ipv4.nat.order
和 ipv6.nat.order
配置键。这些键控制是在链中将 Incus 规则放在任何预先存在的规则之前还是之后。
container_full
¶
这为 GET /1.0/containers
引入了一种新的 recursion=2
模式,允许检索所有容器结构,包括状态、快照和备份结构。
这使得 incus list
可以通过一次查询获取所有需要的信息。
backup_compression
¶
这引入了新的 backups.compression_algorithm
配置键,允许配置备份压缩。
nvidia_runtime_config
¶
在使用 nvidia.runtime
和 libnvidia-container
库时,这引入了几个额外的配置键。这些键几乎直接转换为匹配的 NVIDIA 容器环境变量
nvidia.driver.capabilities
=>NVIDIA_DRIVER_CAPABILITIES
nvidia.require.cuda
=>NVIDIA_REQUIRE_CUDA
nvidia.require.driver
=>NVIDIA_REQUIRE_DRIVER
storage_api_volume_snapshots
¶
添加对存储卷快照的支持。它们的工作原理与容器快照类似,只是针对卷。
这添加了以下新的端点(有关详细信息,请参阅 RESTful API)
GET /1.0/storage-pools/<pool>/volumes/<type>/<name>/snapshots
POST /1.0/storage-pools/<pool>/volumes/<type>/<name>/snapshots
GET /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>
PUT /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>
POST /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>
DELETE /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>
storage_unmapped
¶
在存储卷上引入一个新的 security.unmapped
布尔值。
将其设置为 true
将刷新卷上的当前映射,并阻止在卷上进行任何进一步的 idmap 跟踪和重新映射。
这可以用于在将卷附加到需要写入权限的容器之后,在隔离的容器之间共享数据。
projects
¶
添加一个新的项目 API,支持创建、更新和删除项目。
目前,项目可以包含容器、配置文件或镜像,并允许您通过切换到项目来获得 Incus 资源的单独视图。
network_vxlan_ttl
¶
这添加了一个新的 tunnel.NAME.ttl
网络配置选项,可以提高 VXLAN 隧道上的 TTL。
container_incremental_copy
¶
这添加了对增量容器复制的支持。当使用 --refresh
标志复制容器时,只有丢失或过时的文件才会被复制。如果目标容器尚不存在,则执行正常复制操作。
usb_optional_vendorid
¶
顾名思义,现在附加到容器的 USB 设备上的 vendorid
字段已成为可选,允许将所有 USB 设备传递给容器(类似于对 GPU 的处理方式)。
snapshot_scheduling
¶
此版本增加了对快照计划的支持。引入了三个新的配置键:snapshots.schedule
、snapshots.schedule.stopped
和 snapshots.pattern
。快照可以自动创建,最短间隔为一分钟。
snapshots_schedule_aliases
¶
快照计划可以通过用逗号分隔的计划别名列表进行配置。可用的别名有:<@hourly> <@daily> <@midnight> <@weekly> <@monthly> <@annually> <@yearly> <@startup>
(适用于实例),以及 <@hourly> <@daily> <@midnight> <@weekly> <@monthly> <@annually> <@yearly>
(适用于存储卷)。
container_copy_project
¶
在容器源 JSON 对象中引入了 project
字段,允许在项目之间复制/移动容器。
clustering_server_address
¶
此版本增加了对配置不同于 REST API 客户端网络地址的服务器网络地址的支持。在引导新的集群时,客户端可以设置新的 cluster.https_address
配置键来指定初始服务器的地址。在加入新的服务器时,客户端可以将加入服务器的 core.https_address
配置键设置为加入服务器应该监听的 REST API 地址,并将 PUT /1.0/cluster
API 中的 server_address
键设置为加入服务器应该用于集群流量的地址(server_address
的值将自动复制到加入服务器的 cluster.https_address
配置键)。
clustering_image_replication
¶
启用跨集群节点的镜像复制。引入了新的 cluster.images_minimal_replica
配置键,可用于指定镜像复制的最小节点数量。
container_protection_shift
¶
启用设置 security.protection.shift
选项,该选项可以防止容器的 filesystem 被移位。
snapshot_expiry
¶
此版本增加了对快照到期时间的支持。该任务每分钟运行一次。配置选项 snapshots.expiry
采用 1M 2H 3d 4w 5m 6y
(1 分钟,2 小时,3 天,4 周,5 个月,6 年)的形式,但并非所有部分都必须使用。
然后创建的快照将根据表达式赋予一个到期时间。这个到期时间由 expires_at
定义,可以使用 API 或 incus config edit
手动编辑。具有有效到期时间的快照将在任务运行时被删除。通过将 expires_at
设置为空字符串或 0001-01-01T00:00:00Z
(零时间)可以禁用到期时间。如果没有设置 snapshots.expiry
,则这是默认设置。
这添加了以下新的端点(有关详细信息,请参阅 RESTful API)
PUT /1.0/containers/<name>/snapshots/<name>
snapshot_expiry_creation
¶
将 expires_at
添加到容器创建,允许在创建时覆盖快照的到期时间。
network_leases_location
¶
在租约列表中引入了 Location
字段。这在查询集群时用于显示特定租约是在哪个节点上找到的。
resources_cpu_socket
¶
在 CPU 资源中添加 Socket 字段,以防我们得到乱序的 socket 信息。
resources_gpu
¶
在服务器资源中添加新的 GPU 结构,列出系统上所有可用的 GPU。
resources_numa
¶
显示所有 CPU 和 GPU 的 NUMA 节点。
kernel_features
¶
通过服务器环境公开可选内核功能的状态。
id_map_current
¶
此版本引入了新的内部 volatile.idmap.current
键,用于跟踪容器的当前映射。
这实际上为我们提供了
volatile.last_state.idmap
=> 磁盘上的 idmapvolatile.idmap.current
=> 当前内核映射volatile.idmap.next
=> 下一个磁盘上的 idmap
这需要在磁盘上的映射没有改变但内核映射改变的情况下(例如 idmapped mounts
)实现环境。
event_location
¶
公开 API 事件生成的来源。
storage_api_remote_volume_snapshots
¶
此版本允许迁移存储卷,包括其快照。
network_nat_address
¶
此版本引入了 Incus 桥接的 ipv4.nat.address
和 ipv6.nat.address
配置键。这些键控制从桥接器发出的出站流量使用的源地址。
container_nic_routes
¶
此版本引入了 nic
类型设备上的 ipv4.routes
和 ipv6.routes
属性。这允许在主机上添加静态路由到容器的 NIC。
cluster_internal_copy
¶
此版本使得可以执行正常的 POST /1.0/containers
来在集群节点之间复制容器,Incus 内部会检测是否需要迁移。
seccomp_notify
¶
如果内核支持基于 seccomp
的系统调用拦截,Incus 可以收到容器执行注册的系统调用的通知。然后 Incus 可以决定触发各种操作。
lxc_features
¶
此版本引入了 incus info
命令通过 GET /1.0
路由输出的 lxc_features
部分。它输出对基础 LXC 库中存在关键功能的检查结果。
container_nic_ipvlan
¶
此版本引入了 ipvlan
nic
设备类型。
network_vlan_sriov
¶
此版本引入了 VLAN (vlan
) 和 MAC 过滤 (security.mac_filtering
) 对 SR-IOV 设备的支持。
storage_cephfs
¶
添加对 CephFS 作为存储池驱动程序的支持。这只能用于自定义卷,镜像和容器应该在 Ceph (RBD) 上而不是 CephFS 上。
container_nic_ipfilter
¶
此版本引入了容器 IP 过滤 (security.ipv4_filtering
和 security.ipv6_filtering
) 对 bridged
NIC 设备的支持。
resources_v2
¶
重新设计了 /1.0/resources
上的资源 API,特别是
CPU
修复报告以跟踪 sockets、cores 和 threads
跟踪每个 core 的 NUMA 节点
跟踪每个 socket 的基本频率和 turbo 频率
跟踪每个 core 的当前频率
添加 CPU 缓存信息
导出 CPU 架构
显示 threads 的在线/离线状态
内存
添加大页面跟踪
也跟踪每个 NUMA 节点的内存使用量
GPU
将 DRM 信息拆分到单独的结构体中
导出 DRM 结构体中的设备名称和节点
导出 NVIDIA 结构体中的设备名称和节点
添加 SR-IOV VF 跟踪
container_exec_user_group_cwd
¶
添加在 POST /1.0/containers/NAME/exec
期间指定 User
、Group
和 Cwd
的支持。
container_syscall_intercept
¶
添加 security.syscalls.intercept.*
配置键来控制 Incus 将拦截哪些系统调用并以提升的权限处理。
container_disk_shift
¶
在 disk
设备上添加 shift
属性,该属性控制 idmapped mounts
覆盖层的用法。
storage_shifted
¶
引入存储卷上的一个新的 security.shifted
布尔值。
将其设置为 true
将允许多个隔离的容器附加相同的存储卷,同时保持文件系统从所有容器中写入。
这使用 idmapped mounts
作为覆盖文件系统。
resources_infiniband
¶
导出 InfiniBand 字符设备信息 (issm
、umad
、uverb
) 作为资源 API 的一部分。
daemon_storage
¶
这引入了两个新的配置键 storage.images_volume
和 storage.backups_volume
,允许在现有池中使用存储卷来存储守护进程范围的镜像和备份工件。
instances
¶
这引入了实例的概念,目前唯一类型是 container
。
image_types
¶
这引入了对镜像上一个新类型字段的支持,指示它们是什么类型的镜像。
resources_disk_sata
¶
扩展磁盘资源 API 结构以包含
对 SATA 设备(类型)的正确检测
设备路径
驱动器 RPM
块大小
固件版本
序列号
clustering_roles
¶
这在集群条目中添加了一个新的 roles
属性,公开成员在集群中担任的角色列表。
images_expiry
¶
这允许编辑镜像的过期日期。
resources_network_firmware
¶
在网络卡条目中添加了 FirmwareVersion
字段。
backup_compression_algorithm
¶
这添加了在创建备份 (POST /1.0/containers/<name>/backups
) 时对 compression_algorithm
属性的支持。
设置此属性会覆盖服务器默认值 (backups.compression_algorithm
)。
ceph_data_pool_name
¶
这添加了对使用 Ceph RBD 创建存储池时可选参数 (ceph.osd.data_pool_name
) 的支持,当使用此参数时,池将把它的实际数据存储在使用 data_pool_name
指定的池中,同时保持元数据在使用 pool_name
指定的池中。
container_syscall_intercept_mount
¶
添加 security.syscalls.intercept.mount
、security.syscalls.intercept.mount.allowed
和 security.syscalls.intercept.mount.shift
配置键来控制 Incus 是否以及如何拦截 mount
系统调用并以提升的权限处理。
compression_squashfs
¶
添加对使用 SquashFS 文件系统格式导入/导出镜像/备份的支持。
container_raw_mount
¶
这添加了对为磁盘设备传入原始挂载选项的支持。
container_nic_routed
¶
这引入了 routed
nic
设备类型。
container_syscall_intercept_mount_fuse
¶
添加 security.syscalls.intercept.mount.fuse
键。它可以用于将文件系统挂载重定向到其 fuse 实现。为此,例如设置 security.syscalls.intercept.mount.fuse=ext4=fuse2fs
。
container_disk_ceph
¶
这允许将现有的 Ceph RBD 或 CephFS 直接连接到 Incus 容器。
virtual-machines
¶
添加虚拟机支持。
image_profiles
¶
允许在启动新容器时将配置文件列表应用于镜像。
clustering_architecture
¶
这在集群成员中添加了一个新的 architecture
属性,指示集群成员的体系结构。
resources_disk_id
¶
在资源 API 上的磁盘条目中添加了一个新的 device_id
字段。
storage_lvm_stripes
¶
这添加了在普通卷和精简池卷上使用 LVM 条带的能力。
vm_boot_priority
¶
在 NIC 和磁盘设备上添加了 boot.priority
属性来控制引导顺序。
unix_hotplug_devices
¶
添加对 Unix 字符和块设备热插拔的支持。
api_filtering
¶
添加对过滤实例和镜像的 GET 请求结果的支持。
instance_nic_network
¶
添加对 NIC 设备上 network
属性的支持,以允许 NIC 连接到托管网络。这允许它继承一些网络的设置,并允许更好地验证 IP 设置。
clustering_sizing
¶
支持为数据库选民和备用指定自定义值。引入了新的 cluster.max_voters
和 cluster.max_standby
配置键来指定数据库选民和备用的理想数量。
firewall_driver
¶
在 ServerEnvironment
结构中添加了 Firewall
属性,指示正在使用的防火墙驱动程序。
storage_lvm_vg_force_reuse
¶
引入从现有的非空卷组创建存储池的能力。此选项应谨慎使用,因为 Incus 无法保证卷名称冲突不会与同一卷组中非 Incus 创建的卷发生。如果发生名称冲突,这也有可能导致 Incus 删除非 Incus 卷。
container_syscall_intercept_hugetlbfs
¶
当启用挂载系统调用拦截并将 hugetlbfs
指定为允许的文件系统类型时,Incus 将为容器挂载一个独立的 hugetlbfs
实例,并将 UID 和 GID 挂载选项设置为容器的根 UID 和 GID。这确保了容器中的进程可以使用大页面。
limits_hugepages
¶
这允许通过 hugetlb
cgroup 来限制容器可以使用的巨页数量。这意味着 hugetlb
cgroup 需要可用。请注意,在为 hugetlbfs
文件系统拦截 mount 系统调用时,建议限制巨页,以避免容器耗尽主机上的巨页资源。
container_nic_routed_gateway
¶
这引入了 ipv4.gateway
和 ipv6.gateway
NIC 配置键,它们的值可以是 auto
或 none
。如果未指定,该键的默认值为 auto
。这将导致在容器内添加默认网关,并将相同的网关地址添加到主机端接口。如果将该值设置为 none
,则不会添加默认网关,也不会将地址添加到主机端接口。这允许将多个路由 NIC 设备添加到容器中。
projects_restrictions
¶
这引入了对项目上的 restricted
配置键的支持,该键可以阻止在项目中使用安全敏感功能。
custom_volume_snapshot_expiry
¶
这允许自定义卷快照过期。过期日期可以单独设置,也可以通过在父自定义卷上设置 snapshots.expiry
配置键来设置,该键将自动应用于所有创建的快照。
volume_snapshot_scheduling
¶
这增加了对自定义卷快照计划的支持。它引入了两个新的配置键:snapshots.schedule
和 snapshots.pattern
。快照可以自动创建,最短间隔为每分钟。
trust_ca_certificates
¶
这允许检查提供的 CA (server.ca
) 信任的客户端证书。可以通过将 core.trust_ca_certificates
设置为 true
来启用它。如果启用,它将执行检查,如果 true
,则绕过信任密码。如果连接的客户端证书位于提供的 CRL (ca.crl
) 中,将例外。在这种情况下,它会要求输入密码。
snapshot_disk_usage
¶
这在 /1.0/instances/<name>/snapshots/<snapshot>
输出中添加了一个新的 size
字段,它代表快照的磁盘使用量。
clustering_edit_roles
¶
这为集群成员添加了一个可写端点,允许编辑其角色。
container_nic_routed_host_address
¶
这引入了 ipv4.host_address
和 ipv6.host_address
NIC 配置键,它们可用于控制主机端 veth
接口的 IP 地址。当同时使用多个路由 NIC 并需要使用可预测的下一跳地址时,这将非常有用。
这也改变了 ipv4.gateway
和 ipv6.gateway
NIC 配置键的行为。当它们设置为 auto
时,容器的默认网关将分别设置为 ipv4.host_address
或 ipv6.host_address
的值。
默认值是
ipv4.host_address
: 169.254.0.1
ipv6.host_address
: fe80::1
这与之前的默认行为向后兼容。
container_nic_ipvlan_gateway
¶
这引入了 ipv4.gateway
和 ipv6.gateway
NIC 配置键,它们的值可以是 auto
或 none
。如果未指定,该键的默认值为 auto
。这将导致在容器内添加默认网关,并将相同的网关地址添加到主机端接口。如果将该值设置为 none
,则不会添加默认网关,也不会将地址添加到主机端接口。这允许将多个 IPVLAN NIC 设备添加到容器中。
resources_usb_pci
¶
这将 USB 和 PCI 设备添加到 /1.0/resources
的输出中。
resources_cpu_threads_numa
¶
这表示 numa_node
字段现在按线程记录,而不是按核心记录,因为某些硬件显然将线程放在不同的 NUMA 域中。
resources_cpu_core_die
¶
公开每个核心的 die_id
信息。
api_os
¶
这在 /1.0
中引入了两个新字段,os
和 os_version
。
这些来自系统上的 OS-release 数据。
container_nic_routed_host_table
¶
这引入了 ipv4.host_table
和 ipv6.host_table
NIC 配置键,它们可用于通过 ID 将实例 IP 的静态路由添加到自定义策略路由表。
container_nic_ipvlan_host_table
¶
这引入了 ipv4.host_table
和 ipv6.host_table
NIC 配置键,它们可用于通过 ID 将实例 IP 的静态路由添加到自定义策略路由表。
container_nic_ipvlan_mode
¶
这引入了 mode
NIC 配置键,它可用于将 ipvlan
模式切换为 l2
或 l3s
。如果未指定,则默认值为 l3s
(这是旧的行为)。
在 l2
模式下,ipv4.address
和 ipv6.address
键将接受 CIDR 或单一格式的地址。如果使用单一格式,则 IPv4 和 IPv6 的默认子网大小分别为 /24 和 /64。
在 l2
模式下,ipv4.gateway
和 ipv6.gateway
键仅接受单个 IP 地址。
resources_system
¶
这将系统信息添加到 /1.0/resources
的输出中。
images_push_relay
¶
这将推送和中继模式添加到镜像复制。它还引入了以下新端点
POST 1.0/images/<fingerprint>/export
network_dns_search
¶
这引入了网络上的 dns.search
配置选项。
container_nic_routed_limits
¶
这引入了路由 NIC 的 limits.ingress
、limits.egress
和 limits.max
。
instance_nic_bridged_vlan
¶
这引入了 bridged
NIC 的 vlan
和 vlan.tagged
设置。
vlan
指定要加入的非标记 VLAN,而 vlan.tagged
是要加入的标记 VLAN 的逗号分隔列表。
network_state_bond_bridge
¶
这将在 /1.0/networks/NAME/state
API 中添加 bridge
和 bond
部分。
这些包含与这些特定类型相关的其他状态信息。
Bond
模式
传输散列
启动延迟
停止延迟
MII 频率
MII 状态
下层设备
Bridge
ID
转发延迟
STP 模式
默认 VLAN
VLAN 过滤
上层设备
resources_cpu_isolated
¶
在 CPU 线程上添加一个 Isolated
属性,以指示线程是否在物理上 Online
,但配置为不接受任务。
usedby_consistency
¶
此扩展表明 UsedBy
现在应该与合适的 ?project=
和 ?target=
保持一致(如果适用)。
具有 UsedBy
的 5 个实体是
配置文件
项目
网络
存储池
存储卷
custom_block_volumes
¶
这增加了对创建和附加自定义块卷到实例的支持。它在创建自定义存储卷时引入了新的 --type
标志,并接受值 fs
和 block
。
clustering_failure_domains
¶
此扩展在 PUT /1.0/cluster/<node>
API 中添加了一个新的 failure_domain
字段,它可以用来设置节点的故障域。
container_syscall_filtering_allow_deny_syntax
¶
许多与容器配置密钥相关的新的系统调用已更新。
security.syscalls.deny_default
security.syscalls.deny_compat
security.syscalls.deny
security.syscalls.allow
resources_gpu_mdev
¶
在 /1.0/resources
中公开可用的中介设备配置文件和设备。
console_vga_type
¶
这扩展了 /1.0/console
端点以接受 ?type=
参数,该参数可以设置为 console
(默认)或 vga
(此扩展添加的新类型)。
当对 /1.0/<instance name>/console?type=vga
执行 POST
时,该操作在元数据字段中返回的数据 WebSocket 将是附加到目标虚拟机 SPICE Unix 套接字的双向代理。
projects_limits_disk
¶
将 limits.disk
添加到可用的项目配置密钥中。如果设置,它限制了实例卷、自定义卷和映像卷在项目中可以使用磁盘空间的总量。
network_type_macvlan
¶
增加了对附加网络类型 macvlan
的支持,并为这种网络类型添加了 parent
配置密钥,以指定应使用哪个父接口来创建基于其之上的 NIC 设备接口。
还为 macvlan
NIC 添加了 network
配置密钥支持,允许它们指定应作为 NIC 设备基础使用的相同类型的关联网络。
network_type_sriov
¶
增加了对附加网络类型 sriov
的支持,并为这种网络类型添加了 parent
配置密钥,以指定应使用哪个父接口来创建基于其之上的 NIC 设备接口。
还为 sriov
NIC 添加了 network
配置密钥支持,允许它们指定应作为 NIC 设备基础使用的相同类型的关联网络。
container_syscall_intercept_bpf_devices
¶
这增加了对在容器中拦截 bpf
系统调用的支持。具体来说,它允许管理设备 cgroup bpf
程序。
network_type_ovn
¶
增加了对附加网络类型 ovn
的支持,它具有指定 bridge
类型网络作为 parent
的能力。
引入了新的 NIC 设备类型 ovn
,它允许 network
配置密钥指定它们应连接到的哪个 ovn
类型网络。
还引入了两个新的全局配置密钥,这些密钥适用于所有 ovn
网络和 NIC 设备
network.ovn.integration_bridge
- 要使用的 OVS 集成桥接。network.ovn.northbound_connection
- OVN 北向数据库连接字符串。
projects_networks
¶
将 features.networks
配置密钥添加到项目,以及项目拥有网络的能力。
projects_networks_restricted_uplinks
¶
将 restricted.networks.uplinks
项目配置密钥添加到项目,以指示(作为逗号分隔列表)在项目中创建的网络可以使用哪些网络作为其上行链路网络。
custom_volume_backup
¶
添加自定义卷备份支持。
这包括以下新的端点(有关详细信息,请参见 RESTful API)
GET /1.0/storage-pools/<pool>/<type>/<volume>/backups
POST /1.0/storage-pools/<pool>/<type>/<volume>/backups
GET /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>
POST /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>
DELETE /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>
GET /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>/export
以下现有端点已修改
POST /1.0/storage-pools/<pool>/<type>/<volume>
接受新的源类型backup
backup_override_name
¶
在 InstanceBackupArgs
中添加 Name
字段,以允许在还原备份时指定不同的实例名称。
在 StoragePoolVolumeBackupArgs
中添加 Name
和 PoolName
字段,以允许在还原自定义卷备份时指定不同的卷名称。
storage_rsync_compression
¶
将 rsync.compression
配置密钥添加到存储池。此密钥可用于在迁移存储池时禁用 rsync
中的压缩。
network_type_physical
¶
增加了对附加网络类型 physical
的支持,它可以作为 ovn
网络的上行链路使用。
由 physical
网络上的 parent
指定的接口将连接到 ovn
网络的网关。
network_ovn_external_subnets
¶
增加了对 ovn
网络使用来自上行链路网络的外部子网的支持。
介绍了 ipv4.routes
和 ipv6.routes
设置,它们在 physical
网络上定义了允许在子 OVN 网络的 ipv4.routes.external
和 ipv6.routes.external
设置中使用的外部路由。
介绍了 restricted.networks.subnets
项目设置,它指定了项目内部 OVN 网络允许使用的外部子网(如果未设置,则允许上行链路网络上定义的所有路由)。
network_ovn_nat
¶
添加了对 ovn
网络上 ipv4.nat
和 ipv6.nat
设置的支持。
创建网络时,如果未指定这些设置,并且正在为子网生成等效的 IP 地址,则会添加适当的 NAT 设置并设置为 true
。
如果缺少该设置,则该值将视为 false
。
network_ovn_external_routes_remove
¶
从 ovn
网络中删除了 ipv4.routes.external
和 ipv6.routes.external
设置。
可以改为使用 ovn
NIC 类型上的等效设置,而不是必须在网络和 NIC 级别同时指定它们。
tpm_device_type
¶
这引入了 tpm
设备类型。
storage_zfs_clone_copy_rebase
¶
这引入了 rebase
作为 zfs.clone_copy
的值,导致 Incus 跟踪祖先线中的任何 image
数据集,然后在其之上执行发送/接收。
gpu_mdev
¶
这添加了对虚拟 GPU 的支持。它为 GPU 设备引入了 mdev
配置键,该键接受支持的 mdev
类型,例如 i915-GVTg_V5_4
。
resources_pci_iommu
¶
这为资源 API 中的 PCI 条目添加了 IOMMUGroup
字段。
resources_network_usb
¶
将 usb_address
字段添加到资源 API 中的网卡条目中。
resources_disk_address
¶
将 usb_address
和 pci_address
字段添加到资源 API 中的磁盘条目中。
network_physical_ovn_ingress_mode
¶
为 physical
网络添加了 ovn.ingress_mode
设置。
设置 OVN NIC 外部 IP 在上行链路网络上公布的方法。
l2proxy
(代理 ARP/NDP)或 routed
。
network_ovn_dhcp
¶
为 ovn
网络添加了 ipv4.dhcp
和 ipv6.dhcp
设置。
允许禁用 DHCP(和 IPv6 的 RA)。默认为开启。
network_physical_routes_anycast
¶
为 physical
网络添加了 ipv4.routes.anycast
和 ipv6.routes.anycast
布尔设置。默认为 false
。
允许使用物理网络作为上行链路的 OVN 网络在与 ovn.ingress_mode=routed
一起使用时放宽外部子网/路由重叠检测。
projects_limits_instances
¶
将 limits.instances
添加到可用的项目配置键中。如果设置,它将限制项目中可以使用实例(VM 和容器)的总数。
network_state_vlan
¶
这将 vlan
部分添加到 /1.0/networks/NAME/state
API 中。
它们包含与 VLAN 接口相关的其他状态信息
lower_device
vid
instance_nic_bridged_port_isolation
¶
这为桥接 NIC 实例添加了 security.port_isolation
字段。
instance_bulk_state_change
¶
添加了以下端点用于批量状态更改(有关详细信息,请参见 RESTful API)
PUT /1.0/instances
network_gvrp
¶
这将可选的 gvrp
属性添加到 macvlan
和 physical
网络,以及到 ipvlan
、macvlan
、routed
和 physical
NIC 设备。
如果设置,这将指定是否应使用 GARP VLAN 注册协议注册 VLAN。默认为 false
。
instance_pool_move
¶
这将 pool
字段添加到 POST /1.0/instances/NAME
API 中,允许轻松在池之间移动实例根磁盘。
gpu_sriov
¶
这添加了对启用 SR-IOV 的 GPU 的支持。它引入了 sriov
GPU 类型属性。
pci_device_type
¶
这引入了 pci
设备类型。
storage_volume_state
¶
添加新的 /1.0/storage-pools/POOL/volumes/VOLUME/state
API 端点以获取有关卷的用法数据。
network_acl
¶
这将网络 ACL 的概念添加到 API 中,位于 API 端点前缀 /1.0/network-acls
下。
migration_stateful
¶
添加新的 migration.stateful
配置键。
disk_state_quota
¶
这在 disk
设备上引入了 size.state
设备配置键。
storage_ceph_features
¶
在存储池上添加新的 ceph.rbd.features
配置键,以控制用于新卷的 RBD 功能。
projects_compression
¶
添加新的 backups.compression_algorithm
和 images.compression_algorithm
配置键,允许按项目配置备份和映像压缩。
projects_images_remote_cache_expiry
¶
为项目添加新的 images.remote_cache_expiry
配置键,允许设置一个天数,在此天数后将清除未使用的缓存的远程映像。
certificate_project
¶
在 API 中的证书以及保存证书有权访问的项目名称列表的 projects
中添加新的 restricted
属性。
network_ovn_acl
¶
为 OVN 网络和 OVN NIC 添加新的 security.acls
属性,允许应用网络 ACL。
projects_images_auto_update
¶
添加新的 images.auto_update_cached
和 images.auto_update_interval
配置键,允许配置项目中的映像自动更新。
projects_restricted_cluster_target
¶
为项目添加新的 restricted.cluster.target
配置键,以防止用户使用 –target 指定要在哪个集群成员上放置工作负载或移动工作负载在成员之间。
images_default_architecture
¶
添加了新的 images.default_architecture
全局配置键和匹配的每个项目键,允许用户告诉 Incus 在没有指定特定架构的情况下要使用哪个架构。
network_ovn_acl_defaults
¶
添加了新的 security.acls.default.{in,e}gress.action
和 security.acls.default.{in,e}gress.logged
配置键用于 OVN 网络和网卡。这取代了已删除的 ACL default.action
和 default.logged
键。
gpu_mig
¶
这添加了对 NVIDIA MIG 的支持。它引入了 mig
GPU 类型和关联的配置键。
project_usage
¶
添加了一个 API 端点来获取项目中当前的资源分配。可在 API GET /1.0/projects/<name>/state
访问。
network_bridge_acl
¶
为 bridge
网络添加了一个新的 security.acls
配置键,允许应用网络 ACL。
还添加了 security.acls.default.{in,e}gress.action
和 security.acls.default.{in,e}gress.logged
配置键,用于指定未匹配流量的默认行为。
warnings
¶
Incus 的警告 API。
这包括以下端点(有关详细信息,请参阅 Restful API)
GET /1.0/warnings
GET /1.0/warnings/<uuid>
PUT /1.0/warnings/<uuid>
DELETE /1.0/warnings/<uuid>
projects_restricted_backups_and_snapshots
¶
向项目添加了新的 restricted.backups
和 restricted.snapshots
配置键,防止用户创建备份和快照。
clustering_join_token
¶
添加了 POST /1.0/cluster/members
API 端点,用于请求在不使用信任密码的情况下添加新的集群成员时使用的加入令牌。
clustering_description
¶
向集群成员添加了一个可编辑的描述。
server_trusted_proxy
¶
这引入了对 core.https_trusted_proxy
的支持,它让 Incus 解析此类连接上的 HAProxy 样式连接头,如果存在,将重写请求的源地址到代理服务器提供的地址。
clustering_update_cert
¶
添加了 PUT /1.0/cluster/certificate
端点,用于在整个集群中更新集群证书
storage_api_project
¶
这添加了对在项目之间复制/移动自定义存储卷的支持。
server_instance_driver_operational
¶
这修改了 /1.0
端点的 driver
输出,使其仅包含在服务器上实际支持和可操作的驱动程序(而不是包含在 Incus 中但在服务器上不可操作的驱动程序)。
server_supported_storage_drivers
¶
这将支持的存储驱动程序信息添加到服务器环境信息中。
event_lifecycle_requestor_address
¶
向 lifecycle
请求者添加了一个新的地址字段。
resources_gpu_usb
¶
在资源 API 中的 ResourcesGPUCard
(GPU 条目)中添加了一个新的 USBAddress
(usb_address
) 字段。
clustering_evacuation
¶
添加了 POST /1.0/cluster/members/<name>/state
端点,用于疏散和恢复集群成员。它还添加了配置键 cluster.evacuate
和 volatile.evacuate.origin
,用于分别设置疏散方法 (auto
、stop
或 migrate
) 和任何迁移实例的来源。
network_ovn_nat_address
¶
这引入了 Incus ovn
网络的 ipv4.nat.address
和 ipv6.nat.address
配置键。这些键控制来自 OVN 虚拟网络的出站流量使用的源地址。只有当 OVN 网络的上行链路网络具有 ovn.ingress_mode=routed
时,才能指定这些键。
network_bgp
¶
这引入了 Incus 充当 BGP 路由器以向 bridge
和 ovn
网络发布路由的支持。
这伴随着对全局配置的以下添加:
core.bgp_address
core.bgp_asn
core.bgp_routerid
以下网络配置键 (bridge
和 physical
)
bgp.peers.<name>.address
bgp.peers.<name>.asn
bgp.peers.<name>.password
以下 nexthop
配置键 (bridge
)
bgp.ipv4.nexthop
bgp.ipv6.nexthop
以及以下特定于网卡的配置键 (bridged
网卡类型)
ipv4.routes.external
ipv6.routes.external
network_forward
¶
这引入了网络地址转发功能。允许 bridge
和 ovn
网络定义可以转发到其各自网络内部的内部 IP(s) 的外部 IP 地址。
custom_volume_refresh
¶
添加了对卷迁移期间刷新操作的支持。
network_counters_errors_dropped
¶
这将接收和发送的错误以及入站和出站丢弃的包添加到网络计数器中。
metrics
¶
这将指标添加到 Incus。它使用 OpenMetrics 格式返回正在运行的实例的指标。
这包括以下端点
GET /1.0/metrics
image_source_project
¶
向 POST /1.0/images
添加了一个新的 project
字段,允许在图像复制时设置源项目。
clustering_config
¶
向集群成员添加了一个新的 config
属性,其中包含可配置的键/值对。
network_peer
¶
这添加了网络对等功能,允许流量在 OVN 网络之间流动而无需离开 OVN 子系统。
linux_sysctl
¶
添加了新的 linux.sysctl.*
配置键,允许用户修改容器内的某些内核参数。
network_dns
¶
引入了内置的 DNS 服务器和区域 API,为 Incus 实例提供 DNS 记录。
这引入了以下服务器配置键
core.dns_address
以下网络配置键
dns.zone.forward
dns.zone.reverse.ipv4
dns.zone.reverse.ipv6
以及以下项目配置键
restricted.networks.zones
还引入了新的 REST API 来管理 DNS 区域
/1.0/network-zones
(GET, POST)/1.0/network-zones/<name>
(GET, PUT, PATCH, DELETE)
ovn_nic_acceleration
¶
为 OVN NIC 添加新的 acceleration
配置键,用于启用硬件卸载。它可以取值 none
或 sriov
。
certificate_self_renewal
¶
此项新增对更新客户端信任证书的支持。
instance_project_move
¶
在 POST /1.0/instances/NAME
API 中添加了 project
字段,可以方便地将实例在项目之间迁移。
storage_volume_project_move
¶
此项新增对在项目之间迁移存储卷的支持。
cloud_init
¶
添加了新的 cloud-init
配置键命名空间,其中包含以下键
cloud-init.vendor-data
cloud-init.user-data
cloud-init.network-config
此外,还在 /dev/incus
中添加了新的端点 /1.0/devices
,用于显示实例的设备。
network_dns_nat
¶
在网络区域(DNS)上引入了 network.nat
作为配置选项。
默认情况下,它会按照当前行为为所有实例 NIC 生成记录,但如果设置为 false
,它将指示 Incus 仅为可外部访问的地址生成记录。
database_leader
¶
添加了新的 database-leader
角色,分配给集群领导者。
instance_all_projects
¶
此项新增对显示所有项目中的实例的支持。
clustering_groups
¶
添加对对集群成员进行分组的支持。
引入了以下新端点
/1.0/cluster/groups
(GET, POST)/1.0/cluster/groups/<name>
(GET, POST, PUT, PATCH, DELETE)
添加了以下项目限制
restricted.cluster.groups
ceph_rbd_du
¶
在 Ceph 存储池中添加了一个新的 ceph.rbd.du
布尔值,允许禁用使用可能很慢的 rbd du
调用。
instance_get_full
¶
为 GET /1.0/instances/{name}
引入了一种新的 recursion=1
模式,允许检索所有实例结构,包括状态、快照和备份结构。
qemu_metrics
¶
添加了一个新的 security.agent.metrics
布尔值,默认值为 true
。当设置为 false
时,它不会连接到 incus-agent
获取指标和其他状态信息,而是依赖于 QEMU 的统计信息。
gpu_mig_uuid
¶
支持 NVIDIA 470+
驱动程序使用的新的 MIG UUID 格式(例如,MIG-74c6a31a-fde5-5c61-973b-70e12346c202
),可以省略 MIG-
前缀
此扩展取代了旧的 mig.gi
和 mig.ci
参数,这些参数保留与旧驱动程序的兼容性,并且不能一起设置。
event_project
¶
公开 API 事件所属的项目。
clustering_evacuation_live
¶
在 cluster.evacuate
中添加了 live-migrate
作为配置选项,强制在集群疏散期间对实例进行实时迁移。
instance_allow_inconsistent_copy
¶
在 POST /1.0/instances
上的实例源中添加了 allow_inconsistent
字段。如果为 true
,则 rsync
会忽略 Partial transfer due to vanished source files
(代码 24)错误,当从副本创建实例时。
network_state_ovn
¶
在 /1.0/networks/NAME/state
API 中添加了一个 ovn
部分,其中包含与 OVN 网络相关的其他状态信息
chassis
storage_volume_api_filtering
¶
添加了对过滤存储卷 GET 请求结果的支持。
image_restrictions
¶
此扩展在镜像属性上添加了镜像限制/主机要求。这些要求有助于确定实例和主机系统之间的兼容性。
storage_zfs_export
¶
通过设置 zfs.export
,引入了在卸载池时禁用 zpool 导出的功能。
network_dns_records
¶
扩展了网络区域(DNS)API,添加了创建和管理自定义记录的功能。
这添加了
GET /1.0/network-zones/ZONE/records
POST /1.0/network-zones/ZONE/records
GET /1.0/network-zones/ZONE/records/RECORD
PUT /1.0/network-zones/ZONE/records/RECORD
PATCH /1.0/network-zones/ZONE/records/RECORD
DELETE /1.0/network-zones/ZONE/records/RECORD
network_zones_all_projects
¶
此项新增对通过 GET /1.0/network-zones
API 上的 all-projects
参数列出所有项目中的网络区域的支持。
storage_zfs_reserve_space
¶
添加了设置 reservation
/refreservation
ZFS 属性以及 quota
/refquota
的功能。
network_acl_log
¶
添加了一个新的 GET /1.0/networks-acls/NAME/log
API,用于检索 ACL 防火墙日志。
storage_zfs_blocksize
¶
为 ZFS 存储卷引入了新的 zfs.blocksize
属性,允许设置卷块大小。
metrics_cpu_seconds
¶
用于检测 Incus 是否已修复为以秒为单位输出使用的 CPU 时间而不是毫秒。
instance_snapshot_never
¶
在 snapshots.schedule
中添加了 @never
选项,允许禁用继承。
certificate_token
¶
将基于令牌的证书添加到信任库,作为对信任密码的更安全替代方案。
在 POST /1.0/certificates
中添加了 token
字段。
instance_nic_routed_neighbor_probe
¶
此项新增对禁用父网络上 routed
NIC IP 邻居探测以检查可用性的功能。
添加了 ipv4.neighbor_probe
和 ipv6.neighbor_probe
NIC 设置。如果未指定,则默认设置为 true
。
event_hub
¶
此项新增对 event-hub
集群成员角色和 ServerEventMode
环境字段的支持。
agent_nic_config
¶
如果设置为 true
,在虚拟机启动时,incus-agent
将应用 NIC 配置以更改实例 NIC 设备的名称和 MTU。
projects_restricted_intercept
¶
添加新的 restricted.container.intercept
配置键以允许通常安全的系统调用拦截选项。
metrics_authentication
¶
引入一个新的 core.metrics_authentication
服务器配置选项,允许 /1.0/metrics
端点在没有客户端身份验证的情况下普遍可用。
images_target_project
¶
添加了将镜像复制到与源不同的项目的能力。
images_all_projects
¶
这添加了通过 all-projects
参数在 GET /1.0/images
API 上跨所有项目列出镜像的支持。
cluster_migration_inconsistent_copy
¶
添加 allow_inconsistent
字段到 POST /1.0/instances/<name>
。设置为 true
允许集群成员之间不一致的复制。
cluster_ovn_chassis
¶
引入一个新的 ovn-chassis
集群角色,允许指定哪个集群成员应该充当 OVN 底盘。
container_syscall_intercept_sched_setscheduler
¶
添加 security.syscalls.intercept.sched_setscheduler
以允许在容器中进行高级进程优先级管理。
storage_lvm_thinpool_metadata_size
¶
引入了通过 storage.thinpool_metadata_size
指定精简池元数据卷大小的能力。
如果没有指定,则默认情况下让 LVM 选择合适的精简池元数据卷大小。
storage_volume_state_total
¶
这将 total
字段添加到 GET /1.0/storage-pools/{name}/volumes/{type}/{volume}/state
API 中。
instance_file_head
¶
在 /1.0/instances/NAME/file
上实现 HEAD。
instances_nic_host_name
¶
这引入了 instances.nic.host_name
服务器配置键,它可以取 random
或 mac
的值。如果未指定,则该键的默认值为 random
。如果它设置为随机,则使用随机主机接口名称。如果它设置为 mac
,则生成 inc1122334455
形式的名称。
image_copy_profile
¶
添加了在复制镜像时修改配置文件集的能力。
container_syscall_intercept_sysinfo
¶
添加 security.syscalls.intercept.sysinfo
以允许使用基于 cgroup 的资源使用信息填充 sysinfo
系统调用。
clustering_evacuation_mode
¶
这在疏散请求中引入了一个 mode
字段,它允许覆盖传统上通过 cluster.evacuate
设置的疏散模式。
resources_pci_vpd
¶
在 PCI 资源条目中添加了一个新的 VPD 结构。此结构提取供应商提供的數據,包括完整的产品名称和额外的键值配置对。
qemu_raw_conf
¶
引入 raw.qemu.conf
配置键以覆盖生成的 qemu.conf
的特定部分。
storage_cephfs_fscache
¶
通过新的 cephfs.fscache
配置选项,为 CephFS 池添加了对 fscache
/cachefilesd
的支持。
network_load_balancer
¶
这引入了网络负载均衡器功能。允许 ovn
网络在外部 IP 地址上定义端口,这些端口可以转发到它们各自网络内部的一个或多个内部 IP。
vsock_api
¶
这引入了一个双向 vsock
接口,它允许 incus-agent
和 Incus 服务器更好地进行通信。
instance_ready_state
¶
这为实例引入了一个新的 Ready
状态,可以使用 /dev/incus
设置。
network_bgp_holdtime
¶
这引入了一个新的 bgp.peers.<name>.holdtime
配置键来控制特定对等体的 BGP 保持时间。
storage_volumes_all_projects
¶
这引入了列出所有项目中的存储卷的能力。
metrics_memory_oom_total
¶
这在 /1.0/metrics
API 中引入了一个新的 incus_memory_OOM_kills_total
指标。它报告内存不足杀手(OOM
)触发的次数。
storage_buckets
¶
这引入了存储桶 API。它允许管理存储池的 S3 对象存储桶。
storage_buckets_create_credentials
¶
这更新了存储桶 API,以便在创建存储桶时返回初始管理员凭据。
metrics_cpu_effective_total
¶
这在 /1.0/metrics
API 中引入了一个新的 incus_cpu_effective_total
指标。它报告有效 CPU 的总数。
projects_networks_restricted_access
¶
添加了 restricted.networks.access
项目配置键以指示(以逗号分隔的列表形式)项目内部可以访问哪些网络。如果未指定,则所有网络都可访问(假设它也允许下面描述的 restricted.devices.nic
设置)。
这也引入了一个更改,即网络访问由项目的 restricted.devices.nic
设置控制
如果
restricted.devices.nic
设置为managed
(如果未指定,则为默认值),则只能访问受管理的网络。如果
restricted.devices.nic
设置为allow
,则所有网络都可访问(取决于restricted.networks.access
设置)。如果
restricted.devices.nic
设置为block
,则所有网络都不可访问。
storage_buckets_local
¶
此更改引入了通过设置新的 core.storage_buckets_address
全局配置设置来在本地存储池上使用存储桶的功能。
loki
¶
此更改增加了对将生命周期和日志事件发送到 Loki 服务器的支持。
它添加了以下全局配置键
loki.api.ca_cert
: 用于将事件发送到 Loki 服务器时的 CA 证书loki.api.url
: Loki 服务器的 URL(协议、名称或 IP 和端口)loki.auth.username
和loki.auth.password
: 如果 Loki 位于启用了基本身份验证的反向代理之后,则使用这些参数loki.labels
: 用作 Loki 事件标签的逗号分隔值列表。loki.loglevel
: 发送到 Loki 服务器的事件的最小日志级别。loki.types
: 要发送到 Loki 服务器的事件类型(lifecycle
和/或logging
)。
acme
¶
此更改添加了 ACME 支持,允许 Let's Encrypt 或其他 ACME 服务颁发证书。
它添加了以下全局配置键
acme.domain
: 要为其颁发证书的域名。acme.email
: 用于 ACME 服务帐户的电子邮件地址。acme.ca_url
: ACME 服务的目录 URL,默认为https://acme-v02.api.letsencrypt.org/directory
。
它还添加了以下端点,这是 HTTP-01 挑战所需的
/.well-known/acme-challenge/<token>
internal_metrics
¶
此更改将内部指标添加到指标列表中。这些指标包括
正在运行的操作总数
活动警告总数
守护进程正常运行时间(以秒为单位)
Go 内存统计信息
goroutine 数量
cluster_join_token_expiry
¶
此更改为集群加入令牌添加了到期时间,默认为 3 小时,但可以通过设置 cluster.join_token_expiry
配置键来更改。
remote_token_expiry
¶
此更改为远程添加加入令牌添加了到期时间。它可以在 core.remote_token_expiry
配置键中设置,默认为无到期时间。
storage_volumes_created_at
¶
此更改增加了对存储存储卷及其快照的创建日期和时间的支持。
此更改在 StorageVolume
和 StorageVolumeSnapshot
API 类型中添加了 CreatedAt
字段。
cpu_hotplug
¶
此更改为 VM 添加了 CPU 热插拔功能。使用 CPU 固定时会禁用热插拔,因为这将需要热插拔 NUMA 设备,而这是不可能的。
projects_networks_zones
¶
此更改增加了对 features.networks.zones
项目功能的支持,该功能会更改创建项目网络区域时与它们关联的项目网络区域。以前,网络区域与 features.networks
的值相关联,这意味着它们是在与网络相同的项目中创建的。
现在,它已与 features.networks
分离,以允许在默认项目中共享网络的项目(即具有 features.networks=false
的项目)拥有自己的项目级 DNS 区域,这些区域提供了项目的“视图”。”共享网络上的地址(其中只包含来自其项目中的实例的地址)。
此更改还引入了对网络 dns.zone.forward
设置的更改,该设置现在接受逗号分隔的 DNS 区域名称列表(每个项目最多一个),以便将共享网络与多个区域关联。
对 dns.zone.reverse.*
设置没有进行任何更改,它们仍然只允许设置单个 DNS 区域。但是,生成的区域内容现在包括 PTR
记录,涵盖通过其转发区域之一引用该网络的所有项目的地址。
具有 features.networks=true
的现有项目将自动设置 features.networks.zones=true
,但新项目需要明确指定。
instance_nic_txqueuelength
¶
在 NIC 设备中添加了 txqueuelen
键,用于控制 txqueuelen
参数。
cluster_member_state
¶
添加了 GET /1.0/cluster/members/<member>/state
API 端点和关联的 ClusterMemberState
API 响应类型。
instances_placement_scriptlet
¶
增加了对 Starlark 脚本的支持,该脚本提供给 Incus 以允许自定义逻辑来控制在新集群中放置新实例的位置。
Starlark 脚本是通过新的全局配置选项 instances.placement.scriptlet
提供给 Incus 的。
storage_pool_source_wipe
¶
增加了对存储池上的 source.wipe
布尔值的支持,该值指示 Incus 应该擦除请求的磁盘上的分区头,而不是可能由于预先存在的文件系统而失败。
zfs_block_mode
¶
此更改增加了对使用 ZFS 块的支持
此更改为 ZFS 存储池添加了以下新的配置选项
volume.zfs.block_mode
volume.block.mount_options
volume.block.filesystem
instance_generation_id
¶
增加了对实例生成 ID 的支持。每当实例在时间上向后移动时,VM 或容器生成 ID 都会发生变化。到目前为止,生成 ID 只通过到 VM 类型实例。这允许 VM 客机操作系统重新初始化其所需的任何状态,以避免重复可能已经发生的潜在状态
volatile.uuid.generation
disk_io_cache
¶
此更改为磁盘设备引入了新的 io.cache
属性,该属性可用于覆盖 VM 缓存行为。
amd_sev
¶
增加了对 AMD SEV(安全加密虚拟化)的支持,该技术可用于加密虚拟机的内存。
此更改为 SEV 加密添加了以下新的配置选项
security.sev
: (bool) 此 VM 是否启用了 SEVsecurity.sev.policy.es
: (bool) 此 VM 是否启用了 SEV-ESsecurity.sev.session.dh
: (string) 客机所有者的base64
编码的 Diffie-Hellman 密钥security.sev.session.data
: (string) 客机所有者的base64
编码的会话 blob
storage_pool_loop_resize
¶
此更改允许通过更改池的 size
设置来扩展循环文件支持的存储池。
migration_vm_live
¶
此更改增加了对对共享存储(集群 Ceph)和非共享存储池执行 VM QEMU 到 QEMU 实时迁移的支持。
此更改还为迁移 CRIUType
protobuf
字段添加了 CRIUType_VM_QEMU
的值 3
。
ovn_nic_nesting
¶
此更改增加了对在同一实例上将 ovn
NIC 嵌套在另一个 ovn
NIC 中的支持。这允许 OVN 逻辑交换机端口使用 VLAN 标记在另一个 OVN NIC 内部进行隧道传输。
此功能通过使用 nested
属性指定父 NIC 名称以及使用 vlan
属性指定用于隧道的 VLAN ID 来配置。
oidc
¶
这增加了对 OpenID Connect (OIDC) 身份验证的支持。
这添加了以下新的配置键
oidc.issuer
oidc.client.id
oidc.audience
network_ovn_l3only
¶
这增加了将 ovn
网络设置为“仅第 3 层”模式的能力。可以使用 ipv4.l3only
和 ipv6.l3only
配置选项分别在 IPv4 或 IPv6 级别启用此模式。
启用此模式后,将对网络进行以下更改
虚拟路由器的内部端口地址将配置为单个主机网络掩码(例如,IPv4 为 /32 或 IPv6 为 /128)。
活动实例 NIC 地址的静态路由将添加到虚拟路由器。
将向虚拟路由器添加一个针对整个内部子网的丢弃路由,以防止目标为非活动地址的数据包逸出到上行链路网络。
将配置 DHCPv4 服务器以指示将使用 255.255.255.255 的网络掩码进行实例配置。
ovn_nic_acceleration_vdpa
¶
这更新了 ovn_nic_acceleration
API 扩展。OVN NIC 的 acceleration
配置键现在可以取值为 vdpa
,以支持虚拟数据路径加速 (VDPA)。
cluster_healing
¶
这添加了集群修复功能,该功能会自动撤离脱机集群成员。
这添加了以下新的配置键
cluster.healing_threshold
配置键接受一个整数,可以通过将其设置为 0(默认值)来禁用。如果设置,该值表示撤离脱机集群成员的阈值。如果该值小于 cluster.offline_threshold
,则将使用该值。
撤离脱机集群成员时,只会迁移远程支持的实例。本地实例将被忽略,因为在集群成员脱机后无法迁移它们。
instances_state_total
¶
此扩展在 InstanceStateDisk
和 InstanceStateMemory
中添加了一个新的 total
字段,这两者都是实例状态 API 的一部分。
auth_user
¶
将当前用户详细信息添加到主 API 终结点。
这引入了
auth_user_name
auth_user_method
security_csm
¶
引入一个新的 security.csm
配置键来控制 CSM
(兼容性支持模块)的使用,以允许在 Incus VM 中运行传统操作系统。
instances_rebuild
¶
此扩展添加了使用相同源映像、备用映像或空映像重建实例的功能。添加了一个新的 POST /1.0/instances/<name>/rebuild?project=<project>
API 终结点,以及一个新的 CLI 命令 incus rebuild
。
numa_cpu_placement
¶
这增加了将一组 CPU 放置在所需 NUMA 节点集中的可能性。
这添加了以下新的配置键
limits.cpu.nodes
: (字符串) 逗号分隔的 NUMA 节点 ID 或 NUMA 节点 ID 范围列表,用于放置 CPU(使用limits.cpu
的动态值选择)。
custom_volume_iso
¶
这增加了将 ISO 映像导入为自定义存储卷的可能性。
这为 incus storage volume import
添加了 --type
标志。
network_allocations
¶
这增加了列出 Incus 部署的网络分配的可能性。
通过 incus network list-allocations
命令和 --project <PROJECT> | --all-projects
标志,您可以列出每个 instance
、network
、network forward
和 network load-balancer
使用的所有 IP 地址、硬件地址(对于实例)、资源 URI 以及是否使用 NAT。
zfs_delegate
¶
这实现了一个新的 zfs.delegate
卷布尔值,用于 ZFS 存储驱动器上的卷。当启用并且使用合适的系统(需要 ZFS 2.2 或更高版本)时,ZFS 数据集将被委托给容器,允许通过 zfs
命令行工具使用它。
storage_api_remote_volume_snapshot_copy
¶
这允许将存储卷快照复制到远程和从远程复制。
operations_get_query_all_projects
¶
这引入了对 all-projects
查询参数的支持,用于对 /1.0/operations
和 /1.0/operations?recursion=1
的 GET API 调用。此参数允许绕过项目名称过滤器。
metadata_configuration
¶
添加了 GET /1.0/metadata/configuration
API 终结点,以 JSON 格式检索生成的元数据配置。JSON 结构采用结构 "configs" > `ENTITY` > `ENTITY_SECTION` > "keys" > [<CONFIG_OPTION_0>, <CONFIG_OPTION_1>, ...]
。请查看 配置选项 列表,了解其中包含哪些配置选项。
syslog_socket
¶
这引入了可以接收 syslog 格式日志消息的 syslog 套接字。这些可以在事件 API 和 incus monitor
中查看,并且可以转发到 Loki。要启用此功能,请将 core.syslog_socket
设置为 true
。
event_lifecycle_name_and_project
¶
这将字段 Name
和 Project
添加到 lifecycle
事件。
instances_nic_limits_priority
¶
这引入了每个 NIC 的新 limits.priority
选项,该选项与 cgroup1 和 cgroup2 兼容,与已弃用的 limits.network.priority
实例设置不同,后者仅与 cgroup1 兼容。
disk_initial_volume_configuration
¶
此 API 扩展提供了为实例根设备设置初始卷配置的功能。初始卷配置以 initial.
为前缀,可以通过配置文件或在实例初始化期间使用 --device
标志直接指定。
请注意,这些配置仅在实例创建时应用,后续修改对现有设备没有影响。
operation_wait
¶
此 API 扩展指示服务器上存在 /1.0/operations/{id}/wait
端点。这指示客户端可以使用该端点等待操作完成,而不是通过 /1.0/events
端点等待操作事件。
image_restriction_privileged
¶
此扩展添加了新的镜像限制 requirements.privileged
,当设置为 false
时,表示镜像不能在特权容器中运行。
cluster_internal_custom_volume_copy
¶
此扩展添加了对使用单个 API 调用在集群内复制和移动自定义存储卷的支持。调用 POST /1.0/storage-pools/<pool>/custom?target=<target>
将复制请求的 source
部分中指定的自定义卷。调用 POST /1.0/storage-pools/<pool>/custom/<volume>?target=<target>
将把自定义卷从请求的 source
部分中指定的源移动到目标。
disk_io_bus
¶
这为磁盘设备引入了新的 io.bus
属性,该属性可用于覆盖磁盘连接到的总线。
storage_cephfs_create_missing
¶
这引入了配置键 cephfs.create_missing
、cephfs.osd_pg_num
、cephfs.meta_pool
和 cephfs.osd_pool
,这些键在添加 cephfs
存储池时使用,以指示 Incus 创建存储池所需的实体(如果不存在)。
instance_move_config
¶
此 API 扩展提供了在项目和/或存储池之间移动实例时使用标志 --profile
、--no-profile
、--device
和 --config
的能力。
ovn_ssl_config
¶
这引入了新的服务器配置键,以提供 SSL CA 和客户端密钥对以访问 OVN 数据库。新的配置键是 network.ovn.ca_cert
、network.ovn.client_cert
和 network.ovn.client_key
。
certificate_description
¶
在证书中添加 description
字段。
disk_io_bus_virtio_blk
¶
为 disk
设备上的 io.bus
添加了新的 virtio-blk
值,这使得连接的磁盘可以连接到 virtio-blk
总线。
loki_config_instance
¶
添加了新的 loki.instance
服务器配置键,用于自定义 Loki 事件中的 instance
字段。这可以用来公开集群的名称,而不是发送事件的单个系统名称,因为这通常已经在 location
字段中涵盖了。
instance_create_start
¶
在 POST /1.0/instances
API 中添加了新的 start
字段,当设置为 true
时,实例将在创建后自动启动。
在这种情况下,创建和启动是单个后台操作的一部分。
clustering_evacuation_stop_options
¶
这引入了 cluster.evacuate
选项的新选项
stateful-stop
使实例将其状态存储到磁盘,以便在恢复时恢复。force-stop
使实例立即停止,而无需等待其关闭。
boot_host_shutdown_action
¶
这引入了新的 boot.host_shutdown_action
实例配置键,该键可用于覆盖系统关闭时默认的 stop
行为。它支持值 stop
、stateful-stop
和 force-stop
。
agent_config_drive
¶
这引入了新的 agent:config
磁盘 source
,该源可用于将包含代理及其配置的 ISO 公开给 VM 客戶端。
network_state_ovn_lr
¶
在 NetworkStateOVN
结构中添加了新的 LogicalRouter
字段,该字段是 GET /1.0/networks/NAME/state
API 的一部分。
这用于获取 OVN 逻辑路由器名称。
image_template_permissions
¶
这在镜像元数据模板条目中添加了 uid
、gid
和 mode
字段。
storage_bucket_backup
¶
添加存储桶备份支持。
这包括以下新的端点(有关详细信息,请参见 RESTful API)
GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups
POST /1.0/storage-pools/<pool>/buckets/<bucket>/backups
GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>
POST /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>
DELETE /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>
GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>/export
storage_lvm_cluster
¶
这添加了新的 lvmcluster
存储驱动程序,该驱动程序通过 lvmlockd
使用 LVM 共享 VG。
有了它,就可以在多个服务器上拥有一个共享的 LVM 池,只要它们都能看到相同的后备设备(s)。
auth_tls_jwt
¶
这添加了使用签名的 JSON Web Token
(JWT
) 而不是直接使用 TLS 客户端证书的能力。
在这种情况下,客户端从自己的 TLS 客户端证书派生 JWT
,并将其作为 bearer
令牌通过 Authorization
HTTP 标头提供。
The JWT
必须具有证书的指纹作为其 Subject
,并且必须由客户端的私钥签名。
oidc_claim
¶
这引入了新的 oidc.claim
服务器配置键,该键可用于指定要作为用户名使用的 OpenID Connect 声明。
device_usb_serial
¶
这为设备类型 usb
添加了新的配置键 serial
。添加了功能,以区分具有相同 vendorid
和 productid
的设备。
numa_cpu_balanced
¶
这将 balanced
作为 limits.cpu.nodes
的新值添加。
当设置为 balanced
时,Incus 将尝试在启动时为实例选择最不繁忙的 NUMA 节点,试图将负载分散到系统上的 NUMA 节点。
image_restriction_nesting
¶
此扩展添加了一个新的图像限制,requirements.nesting
,当true
时,表示图像必须嵌套才能运行。
network_integrations
¶
添加了网络集成的概念,并初步支持 OVN 互联。
新 API
/1.0/network-integrations
(GET, POST)/1.0/network-integrations/NAME
(GET, PUT, PATCH, DELETE, POST)
每个集成都包含以下内容:
名称
描述
类型(目前仅支持
ovn
)配置
ovn.northbound_connection
(OVN 互联数据库的数据库连接字符串)ovn.ca_cert
(可选,OVN 互联数据库的 SSL CA 证书)ovn.client_cert
(可选,连接到 OVN 互联数据库的 SSL 客户端证书)ovn.client_key
(可选,连接到 OVN 互联数据库的 SSL 客户端密钥)ovn.transit.pattern
(用于生成中转交换机名称的 Pongo2 模板)
这些集成通过一些新的字段连接到网络对等方:
type
(local
代表当前行为,remote
代表集成)target_integration
(集成引用)
instance_memory_swap_bytes
¶
此扩展扩展了 limits.memory.swap
以允许以字节为单位的总限制。
network_bridge_external_create
¶
这使得 bridge.external_interfaces
可以使用 interface/parent/vlan
语法创建父接口。
storage_zfs_vdev
¶
通过扩展存储 source
配置,此功能添加了对 mirror
、raidz1
和 raidz2
ZFS vdev
类型的支持。
container_migration_stateful
¶
引入了 migration.stateful
配置键。
这是一个布尔标志,在启动、停止和快照函数期间,只要容器处于有状态模式,它就会被设置为 true。
这降低了用户在将容器复制到另一个系统时遇到 CRIU 错误的可能性。
profiles_all_projects
¶
此功能添加了通过 GET /1.0/profiles
API 上的 all-projects
参数在所有项目中列出配置文件的支持。
instances_scriptlet_get_instances
¶
这允许实例脚本在给定可选的项目或位置过滤器的情况下获取实例列表。
instances_scriptlet_get_cluster_members
¶
这允许实例脚本在给定可选的集群组的情况下获取集群成员列表。
instances_scriptlet_get_project
¶
这允许实例脚本在给定项目名称的情况下获取项目。
network_acl_stateless
¶
此功能添加了对网络 ACL 中无状态规则的支持。
instance_state_started_at
¶
这在实例状态 API 中添加了一个 started_at
时间戳。
networks_all_projects
¶
此功能添加了通过 GET /1.0/networks
API 上的 all-projects
参数在所有项目中列出网络的支持。
network_acls_all_projects
¶
此功能添加了通过 GET /1.0/network-acls
API 上的 all-projects
参数在所有项目中列出网络 ACL 的支持。
storage_buckets_all_projects
¶
此功能添加了通过 GET /1.0/storage-pools/POOL/buckets
API 上的 all-projects
参数在所有项目中列出存储桶的支持。
resources_load
¶
在资源 API 中添加了一个新的负载部分。
instance_access
¶
这在 GET /1.0/instances/NAME/access
处引入了新的 API 端点,该端点公开哪些人可以与实例交互以及他们的角色。
project_access
¶
这在 GET /1.0/projects/NAME/access
处引入了新的 API 端点,该端点公开哪些人可以与项目交互以及他们的角色。
projects_force_delete
¶
这扩展了 DELETE /1.0/projects
以允许 ?force=true
,它将删除项目中的所有内容以及项目本身。
resources_cpu_flags
¶
这在我们的资源 API 中公开了 CPU 标志/扩展以检查 CPU 功能。
disk_io_bus_cache_filesystem
¶
这为由文件系统支持的磁盘添加了对 io.bus
和 io.cache
的支持。
instance_oci
¶
添加了对运行 OCI 容器的初步支持。
clustering_groups_config
¶
这在集群组中引入了标准键值 config
选项,这将允许对这些组施加一些限制或配置。
instances_lxcfs_per_instance
¶
这引入了一个新的 instances.lxcfs.per_instance
服务器配置键,用于控制是在每个实例上运行 LXCFS 还是在系统上全局运行。
clustering_groups_vm_cpu_definition
¶
这引入了一些新的配置选项,用于通过集群组配置来控制虚拟机 CPU 定义。
新的配置键是:
instances.vm.cpu.ARCHITECTURE.baseline
instances.vm.cpu.ARCHITECTURE.flag
disk_volume_subpath
¶
这引入了通过使用 source=volume/path
语法访问文件系统自定义卷的子路径的能力。
projects_limits_disk_pool
¶
这引入了每个池项目的磁盘限制,在项目限制中引入了 limits.disk.pool.NAME
配置选项。
network_ovn_isolated
¶
这允许将 none
用作 OVN 网络的上行链路网络,使网络隔离。
qemu_raw_qmp
¶
这在虚拟机中添加了新的配置选项,以便在启动的各个阶段直接发出 QMP 命令
raw.qemu.qmp.early
raw.qemu.qmp.pre-start
raw.qemu.qmp.post-start
network_load_balancer_health_check
¶
这添加了对负载均衡器后端执行健康检查的能力。
引入了以下新的配置选项:
healthcheck
healthcheck.interval
healthcheck.timeout
healthcheck.failure_count
healthcheck.success_count
oidc_scopes
¶
这引入了新的 oidc.scopes
服务器配置键,它可以接受要从身份提供者请求的 OIDC 范围的逗号分隔列表。
network_integrations_peer_name
¶
这扩展了 ovn.transit.pattern
以允许 peerName
作为模板变量。
qemu_scriptlet
¶
这添加了在启动的各个阶段运行脚本的能力:使用 raw.qemu.scriptlet
配置键。
instance_auto_restart
¶
此功能引入了一个新的配置键 boot.autorestart
,当该键设置为 true
时,实例会在意外退出后自动重启,在 1 分钟内最多重启 10 次。
storage_lvm_metadatasize
¶
此功能引入了一个新的选项 lvm.metadata_size
,用于 LVM 存储池,允许在创建新的 LVM 物理卷时覆盖默认的元数据大小。
ovn_nic_promiscuous
¶
此功能在 OVN 网卡上实现了一个新的配置选项 security.promiscuous
。
ovn_nic_ip_address_none
¶
此功能为 OVN 网卡的 ipv4.address
和 ipv6.address
添加了 none
作为值。
instances_state_os_info
¶
此扩展向实例的 state API 添加了一个指向 InstanceStateOSInfo
结构体的指针。
network_load_balancer_state
¶
此功能添加了一个新的 API 端点 /1.0/networks/NAME/load-balancers/IP/state
,它返回负载均衡器健康检查信息(如果已配置)。
instance_nic_macvlan_mode
¶
此功能在 macvlan
网络接口上添加了一个配置键 mode
,允许配置 Macvlan 模式。
storage_lvm_cluster_create
¶
通过将 source
设置为共享块设备,允许创建新的 LVM 集群池。
network_ovn_external_interfaces
¶
此功能支持 OVN 网络上的 bridge.external_interfaces
。
instances_scriptlet_get_instances_count
¶
此功能允许实例脚本获取给定可选项目或位置筛选器的实例数量,并包括待处理实例。