ニュース

Incus 7.2 リリースのお知らせ

2026/06/26

Incus チームは、Incus 7.2 のリリースのアナウンスができてうれしいです!

今回も、多岐にわたる新機能や、いつものようにパフォーマンス向上やバグ修正を含む、盛りだくさんなリリースとなっています。

image|690x336

いつものように、オンラインでご自身で試せます: Linux Containers - Incus - オンラインでの試用

セキュリティ修正

このリリースでは、8 件のセキュリティ問題を修正しました:

  • CVE-2026-48749 (critical) - 悪意あるイメージ内の rootfs/ シンボリックリンクを経由したホスト上の任意のファイルの読み書き
  • CVE-2026-48750 (critical) - 細工されたイメージ内の exec-output シンボリックリンクを介したホスト上の任意のファイルに対する書き込み
  • CVE-2026-48751 (critical) - 任意のコマンド実行につながるプロジェクト制限のバイパス
  • CVE-2026-48752 (critical) - 悪意あるイメージ内の templates/ シンボリックリンクを介したホスト上の任意のファイルの読み書き
  • CVE-2026-48755 (critical) - 任意のファイルへの書き込みおよびコマンド実行につながる、バックアップ圧縮アルゴリズムにおける引数インジェクション
  • CVE-2026-48769 (critical) - 信頼されたイメージハッシュに起因するクライアント上の任意のファイルに対する書き込み
  • CVE-2026-55621 (high) - プロジェクト間のカスタムボリュームコピーに対するプロジェクト制限のバイパス
  • CVE-2026-55622 (high) - プロジェクト間のインスタンスコピーにおけるプロジェクト制限の回避

新機能

インスタンスごとの SELinux 統合

Incus は、コンテナと仮想マシンの両方に対して、インスタンスごとの SELinux 隔離をサポートするようになりました。同じホスト上のインスタンスをお互いに分離するために、MCS(マルチカテゴリーセキュリティ)を自動的に割り当てます。

  • security.selinux.type: インスタンスストレージに使用する SELinux ファイルタイプを上書きします
  • security.selinux.level: SELinux MCS レベルを上書きします
  • security.selinux.label_rootfs: rootfs のラベリング動作をコントロールします(autoalwaysneverのいずれか)

計算されたコンテキストは、volatile.selinux.context キーに保持されるため、割り当てられた MCS レンジは再起動後も一定の状態を保ちます。

ドキュメント: https://linuxcontainers.org/incus/docs/main/reference/instance_options/#instance-options-security

新しい incus default CLI コマンド

CLI のデフォルトオプションを制御しやすくするために incus default コマンドが追加されました。

stgraber@orilla:~$ incus default show
list_format: ""
console_type: ""
console_spice_command: ""
no_color: false
stgraber@orilla:~$ incus default set list_format=compact
stgraber@orilla:~$ incus storage list
  NAME    DRIVER  DESCRIPTION  USED BY   STATE  
 default  zfs                  11       CREATED 
stgraber@orilla:~$ incus default unset list_format
stgraber@orilla:~$ incus storage list
+---------+--------+-------------+---------+---------+
|  NAME   | DRIVER | DESCRIPTION | USED BY |  STATE  |
+---------+--------+-------------+---------+---------+
| default | zfs    |             | 11      | CREATED |
+---------+--------+-------------+---------+---------+
stgraber@orilla:~$

これらのオプションに関するドキュメントも更新されました:

https://linuxcontainers.org/incus/docs/main/client-config/

デフォルトでフィルタリングされたサーバー情報

incus info は、フィルタリングされたサーバー情報表示がデフォルトになりました。

デフォルトでは、すべての秘密鍵、証明書、その他のトークンが隠されます(SENSITIVE に置き換えられます)。これらを表示するには、--show-sensitive オプションが必要です。また、API 拡張の完全なリストを非表示にし、代わりにその数だけを表示することで、出力が簡潔になります。

CLI からの Keepalive タイムアウト

incus remote コマンドに、接続の Keepalive タイムアウトを設定するための set-keepalive サブコマンドが追加されました。

stgraber@orilla:~$ incus remote set-keepalive my-remote 30
stgraber@orilla:~$ incus remote set-keepalive my-remote 0

CLI の Keepalive 機能は、リモートサーバーとの接続を維持するために使われます。それにより、後続のやりとりをかなり高速化します。これは、レイテンシーの高い接続や、多数の incus コマンドが実行される環境で特に役に立ちます。

CLI 設定の OS ごとの適切な処理

CLI が、設定やキャッシュデータを OS ごとの適切な場所に保存するようになりました。

これまでは、CLI は OS を問わず、常に ~/.config/incus/~/.cache/incus/ を使用していました。その結果、macOS や Windows では、標準的ではない場所に保存されていました。

Incus 7.2 からは、macOS では ~/Library/Application Support/incus/ が、Windows では %APPDATA%\incus が使われるようになりました。CLI は初回起動時に自動的に設定ファイルを新しい場所に移動します。

スタンドアロンサーバーの証明書更新

新しいコマンド incus admin update-certificate を使うと、(クラスター化されていない)スタンドアロンシステム上のサーバー証明書を置き換えられるようになりました。

このコマンドは、スタンドアロンシステム向けの機能であり、incus cluster update-certificate に相当するコマンドです。/var/lib/incus/ 内のファイルを直接変更する方法が、このコマンドに置き換えられました。

OCI コンテナの静的ネットワーク設定

OCI アプリケーションコンテナで、ネットワークを静的に設定できるようになりました。

NIC の ipv4.addressipv6.address キーに CIDR 値を設定し、コンテナ内のアドレスを静的に設定できます。そして、新たな ipv4.gatewayipv6.gateway キーでデフォルトゲートウェイを設定します。いずれかのアドレスを none に設定することで、そのアドレスファミリーに対して設定されなくなり、組み込みの DHCP クライアントも、そのアドレスファミリーに対しては動作しなくなります。

DNS に関して、新しいインスタンス設定キー oci.dns.nameserversoci.dns.domainoci.dns.search を使用して、コンテナの resolv.conf の初期内容を設定できます。この設定内容は、DHCP 経由で受信した情報でさらに拡張されます。

これらのキーはすべて、OCI コンテナに対してのみ有効です。

stgraber@orilla:~$ incus create docker:nginx my-nginx
Creating my-nginx
stgraber@orilla:~$ incus config set my-nginx oci.dns.nameservers=1.0.0.1,1.1.1.1 oci.dns.domain=stgraber.net
stgraber@orilla:~$ incus config device override my-nginx eth0 ipv4.address=10.10.10.2/24 ipv4.gateway=10.10.10.1
Device eth0 overridden for my-nginx
stgraber@orilla:~$ incus start my-nginx
stgraber@orilla:~$ incus list my-nginx
+----------+---------+-------------------+------------------------------------------------+-----------------+-----------+
|   NAME   |  STATE  |       IPV4        |                      IPV6                      |      TYPE       | SNAPSHOTS |
+----------+---------+-------------------+------------------------------------------------+-----------------+-----------+
| my-nginx | RUNNING | 10.10.10.2 (eth0) | fd42:8b9f:58e4:b6ac:1266:6aff:fecb:e324 (eth0) | CONTAINER (APP) | 0         |
+----------+---------+-------------------+------------------------------------------------+-----------------+-----------+

インスタンスごとの BGP ルートアドバタイズ

マネージドブリッジネットワークに、新しい設定キーが 2 つ追加されました。bgp.ipv4.instancesbgp.ipv6.instances です。

有効にすると、Incus は、ネットワークに接続されている実行中のインスタンスそれぞれに対して、BGP 経由で /32 (IPv4)または /128 (IPv6) のルートを広告し、インスタンスが停止するとルートを取り消します。これにより BGP 環境において、個々のインスタンスに直接ルーティングすることが容易になります。

その一環として、Incus にインスタンス起動時に一定期間 ARP/NDP をモニタリングして、インスタンスの IP アドレスを学習する機能が拡張されました。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/network_bridge/

プロキシー NAT モードでのダイナミックアドレス

インスタンスの IP アドレスを検出する機能をもとにして、NAT モードで実行されるプロキシーデバイスは、動的アドレスとワイルドカードリッスンアドレスを使用できるようになりました。これにより、プロキシーデバイスの設定でインスタンスのアドレスをハードコードする必要がなくなりました。

stgraber@orilla:~$ incus launch docker:nginx my-nginx
Launching my-nginx
stgraber@orilla:~$ incus config device add my-nginx http-80 proxy listen=tcp:0.0.0.0:1234 connect=tcp:0.0.0.0:80 nat=true
Device http-80 added to my-nginx
stgraber@orilla:~$ incus list my-nginx
+----------+---------+--------------------+------------------------------------------------+-----------------+-----------+
|   NAME   |  STATE  |        IPV4        |                      IPV6                      |      TYPE       | SNAPSHOTS |
+----------+---------+--------------------+------------------------------------------------+-----------------+-----------+
| my-nginx | RUNNING | 10.80.1.162 (eth0) | fd42:8b9f:58e4:b6ac:1266:6aff:fe55:dbdb (eth0) | CONTAINER (APP) | 0         |
+----------+---------+--------------------+------------------------------------------------+-----------------+-----------+
stgraber@orilla:~$ ip -4 a show dev enp0s5
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    altname enx001c42e6a809
    inet 10.211.55.3/24 brd 10.211.55.255 scope global dynamic noprefixroute enp0s5
       valid_lft 1031sec preferred_lft 1031sec
stgraber@orilla:~$ nc -v 10.211.55.3 1234
Connection to 10.211.55.3 1234 port [tcp/*] succeeded!

VM に対する NBD アクセスの拡張

新たに公開された GET /1.0/instances/{name}/nbd エンドポイントにより、仮想マシンに接続されているすべてのディスクが NBD 経由で公開され、一度に 1 つのボリュームではなく、すべてのディスクに同時にアクセスできるようになりました。

これは、複数クライアントによる同時接続をサポートする新しい incus debug nbd コマンドにも統合されています。

stgraber@orilla:~$ incus start v1
stgraber@orilla:~$ incus debug nbd v1
NBD listening on 127.0.0.1:36539

これらの API は、主に VM 上のすべてのドライブに容易に、一貫してアクセスする必要があるバックアップシステム用に作られています。NBD エクスポートでは、ダーティービットマップも公開されるため、容易にインクリメンタルバックアップが作成できます。

インスタンスが停止している場合、個々のボリュームの NBD API を通して復元を実行できます。

ストレージボリュームの Btrfs 圧縮

btrfs ドライバーに、新たにストレージボリュームに関する btrfs.compression 設定キーが追加されました。これは Btrfs の compression プロパティーにマップされ、同じ値を取ります(例えば zstdlzozlibnone)。

これは、既存の Btrfs ファイルシステムの圧縮設定を上書きするのに使えます。そして、Incus ボリュームで異なる圧縮アルゴリズムを使ったり、圧縮をオフにしたりできるようになります。圧縮をオフにすることにより、Incus は仮想マシンのディスクに対して nocow フラグを設定できるようになります。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_btrfs/

InfiniBand の SR-IOV GUID 設定

sriov nictype を使用する infiniband デバイスで新しい設定キー node_guidport_guid がサポートされるようになりました。

これらのキーが設定されると、割り当てられた仮想機能の対応する GUID は、インスタンスの起動時に指定された値に変更され、インスタンスの停止時に元の値に戻ります。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_infiniband/

Websocket オリジン制限

新たなサーバー設定キー core.https_allowed_websocket_origin を追加しました。

許可するオリジンのカンマ区切りのリスト、もしくはワイルドカードとして * が指定できます。これにより、Websocket 接続で受け付けるオリジンを制御できます。

これは、クロスオリジンアクセスだけでなく、一部のプロキシー環境においても役に立ちます。

ドキュメント : https://linuxcontainers.org/incus/docs/main/server_config/#server-options-core

遅延機能のロギング

今回のリリースで、リポジトリー全体にわたる大きな変更として、遅延したクリーンアップ呼び出しのロギングが追加されました。

その結果、ユーザーは、多数の新しい WARNING レベルのログエントリーに気づくかもしれません(例えば、ファイル・ソケット・レスポンスボディーのクローズに関するログ)。これは想定内の動作であり、不具合を示すものではありません。これらのエラーは以前から起こっていたものの、単に無視されていただけです。

もしそのような不審だったり、繰り返しのメッセージに気づいた場合、調査や出力停止ができる可能性があるため、お知らせください。

すべての変更点

このリリースのすべての変更のリストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • Translated using Weblate (Greek)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese)
  • doc/authorization: Fix markdownlint
  • shared/tls: Add support for Lego v5
  • incusd/instance/lxc: Fix environment quoting
  • incusd/storage/zfs: Refuse refresh only when snapshots have no common base
  • shared/tls: Detect Lego version/behavior based on help
  • doc/cloud-init: Clarify VM behavior
  • github: Remove pre-installed java
  • incus: Make unset commands accept several keys
  • i18n: Update translation templates
  • server/network: fix comment alignment
  • server/network: fix scope of node specific network configs
  • doc: update generated metadata
  • server/metadata: update generated metadata
  • internal/server/instance/drivers: Add migration-compatible hv flags with migration.stateful=true
  • cmd/generate-database/db: Add joinas db tag
  • cmd/generate-database/lex: Fix pluralizations ending in y
  • Translated using Weblate (Portuguese)
  • incusd/storage: Fix qcow2 custom volume backups
  • incusd/instance/qemu: Remove stale migrate.sock before qcow2 export
  • incusd/response: Abort piped exports that fail mid-stream
  • incusd/migration: Detect target migration errors
  • incusd/instance/qemu: Tweak migration fallback for VMs
  • incusd: Reject migration onto existing instance of different type
  • incusd/migrate: Bump migration handshake timeouts to 2 minutes
  • Remove lxd-to-incus
  • shared/api: Remove legacy logic
  • incusd/cluster: Remove legacy logic
  • Update gomod
  • incusd: Use partial device validation when recovering instances
  • incusd/network/ovn: Don't require an active chassis when updating tunnels
  • incusd/network: Clean up stale OVS ports on startup
  • incusd/cluster: Honor cluster group during evacuation
  • incusd/cluster: Honor restricted cluster groups during evacuation
  • incusd/cluster: Improve evacuation and restoration progress reporting
  • global: Clean latest gofumpt
  • incusd: Replace gorilla/mux with http.ServeMux
  • Update go.mod
  • api: instance_nbd
  • client: Add GetInstanceNBDConn
  • incusd/instances: Add NBD API
  • incusd/storage: Implement all-disks NBD function
  • incusd/instance/qmp: Add block snapshot transaction and node size helpers
  • incusd/instance: Implement ConnectNBDAllDisks
  • incusd/instance/qemu: Use empty NBD export name for single-disk exports
  • incusd/instance/qemu: Report disk usage on stopped instances
  • incus/debug: Add NBD command
  • i18n: Update translation templates
  • doc/rest-api: Refresh swagger YAML
  • incusd/instance/drivers/qmp: Add locking around event handlers
  • incusd/instance/qemu: Fully cleanup the old monitor
  • incusd/storage/drivers: Handle sgdisk return codes
  • incusd/auth/oidc: Refactor cookie setting logic
  • shared/api: Add Server.Filtered()
  • incus/info: Add --show-sensitive
  • i18n: Update translation templates
  • incusd/auth/oidc: Set expiration on authentication cookies
  • incusd/auth/oidc: Clear cookies on terminal refresh failure
  • shared/logger: Add WarnOnError helper
  • incusd/instancewriter: Log deferred errors with WarnOnError
  • incus: Log deferred errors with WarnOnError
  • incus-agent: Log deferred errors with WarnOnError
  • internal/incusos: Log deferred errors with WarnOnError
  • internal/linux: Log deferred errors with WarnOnError
  • incusd/migration: Log deferred errors with WarnOnError
  • internal/netutils: Log deferred errors with WarnOnError
  • internal/rsync: Log deferred errors with WarnOnError
  • incusd/backup: Log deferred errors with WarnOnError
  • incusd/cgroup: Log deferred errors with WarnOnError
  • incusd/cluster: Log deferred errors with WarnOnError
  • incusd/device: Log deferred errors with WarnOnError
  • incusd/device/pci: Log deferred errors with WarnOnError
  • incusd/dnsmasq: Log deferred errors with WarnOnError
  • incusd/firewall/drivers: Log deferred errors with WarnOnError
  • incusd/instance/drivers: Log deferred errors with WarnOnError
  • incusd/network: Log deferred errors with WarnOnError
  • incusd/network/acl: Log deferred errors with WarnOnError
  • incusd/response: Log deferred errors with WarnOnError
  • incusd/seccomp: Log deferred errors with WarnOnError
  • incusd/storage: Log deferred errors with WarnOnError
  • incusd/storage/quota: Log deferred errors with WarnOnError
  • incusd/storage/s3: Log deferred errors with WarnOnError
  • incusd/storage/s3/local: Log deferred errors with WarnOnError
  • incusd/util: Log deferred errors with WarnOnError
  • internal/util: Log deferred errors with WarnOnError
  • incusd: Log deferred errors with WarnOnError
  • incusd/storage/drivers: Log deferred errors with WarnOnError
  • client: Log deferred errors with WarnOnError
  • incusd/db: Log deferred errors with WarnOnError
  • incusd/db/cluster: Log deferred errors with WarnOnError
  • incusd/db/node: Log deferred errors with WarnOnError
  • incusd/db/query: Log deferred errors with WarnOnError
  • incusd/db/schema: Log deferred errors with WarnOnError
  • shared/resources: Log deferred errors with WarnOnError
  • shared/resources/usbid: Log deferred errors with WarnOnError
  • shared/idmap: Log deferred errors with WarnOnError
  • shared/cliconfig: Log deferred errors with WarnOnError
  • shared/archive: Log deferred errors with WarnOnError
  • shared/subprocess: Log deferred errors with WarnOnError
  • shared/simplestreams: Log deferred errors with WarnOnError
  • shared/util: Log deferred errors with WarnOnError
  • incus-migrate: Log deferred errors with WarnOnError
  • incus-benchmark: Log deferred errors with WarnOnError
  • incus-user: Log deferred errors with WarnOnError
  • incus-simplestreams: Log deferred errors with WarnOnError
  • lxc-to-incus: Log deferred errors with WarnOnError
  • generate-database/file: Log deferred errors with WarnOnError
  • incusd: Rename forknet logger parameter to avoid shadowing
  • incusd: Log deferred errors in main_forknet with WarnOnError
  • github: Update DCO check
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Greek)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Portuguese)
  • incusd/api_internal: Add server-certificate endpoint
  • incus/admin: Add update-certificate command
  • i18n: Update translation templates
  • incusd/device/disk: Use virtiofsd --posix-acl=auto if supported
  • Translated using Weblate (Russian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • incus/client: Fix panic when cancelling
  • incus/remote: Move OIDC and cookie jar on rename
  • incus/cluster: Document the actions
  • incusd/console: Read the container console without resetting it
  • incusd/linux: Add DialUnix helper
  • incusd/qemu: Handle long run paths for the QMP socket
  • incusd/qemu: Handle long run paths for the SPICE socket
  • i18n: Update translation templates
  • shared/cliconfig: Remove duplicate file closing
  • Makefile: Remove pinned incus-os
  • Update gomod
  • global: Update for go-yaml/v4 rc5
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Russian)
  • incus/alias: Add alias add command examples with args and numbered args
  • doc/incus-alias: Fix italic and ref modifers order to correctly apply both modifiers
  • Makefile: Fix sphinx build script to prevent issues with terminal colors
  • doc/incus-alias: Refactor doc to create new use-case section and provide how-to examples
  • i18n: Update translation templates
  • incus/debug: Fix NBD description
  • i18n: Update translation templates
  • client: Add reuse support to GetInstanceNBDConn
  • incusd/instance/qmp: Add listen path support to NBDServerStart
  • incusd/instance/qmp: Allow multiple NBD server connections
  • incusd/instance/qemu: Update NBDServerStart calls
  • incusd/instance: Add reuse support to ConnectNBDAllDisks
  • incusd/storage: Add reuse support to GetInstanceAllDisksNBD
  • incusd/instances: Add NBD reuse parameter
  • incus/debug: Support multiple NBD client connections
  • i18n: Update translation templates
  • doc/rest-api: Refresh swagger YAML
  • incus/server/storage/driver/ceph: Shrink images to minimal size after unpacking
  • doc/incus-cli: Add CLI configuration file reference
  • Makefile: add incremental spellcheck that skips the sphinx and cli setups
  • Makefile: Improve target padding in make help
  • incusd/linux: Add ListenUnix helper
  • incusd/qemu: Handle long run paths for the migration socket
  • incusd/qemu: Handle long run paths for the console socket
  • incusd/qemu: Handle long run paths for the virtiofs socket
  • incusd/images: Mention images available for other instance types
  • incusd/device/nic_routed: Add neighbour proxy entries on the on-link interface
  • incusd/network/ovn: Don't use missing router IP as DNS server
  • doc: Update preseed description to match with reality
  • incus/utils_copy: Fix wrong error returned
  • doc: Ignore criu.org link checking
  • api: network_bridge_bgp_instances
  • incusd/network: Add BGP instance advertisement config keys
  • incusd/device: Advertise individual instance addresses over BGP
  • doc: Document BGP advertisement of instance addresses
  • doc: Update config
  • doc: Add NIC's to wordlist
  • incusd: Use IsNoneOrEmpty helper
  • incusd/device: Add configOrVolatile helper
  • incus/remote: Add set-keepalive subcommand
  • incus/keepalive: Fix comment typo
  • doc/remote: Update docs with keepalive configuration via CLI commands
  • incus/alias: Fix wrong example command typo
  • i18n: Update translation templates
  • api: core_https_allowed_websocket_origin
  • shared/ws: Validate websocket origin against trusted origins
  • incusd: Add core.https_allowed_websocket_origin server config key
  • doc: Update config
  • incus: close web UI probe response body
  • ci: authenticate OpenFGA release lookups
  • storage/zfs: factor out send receive helper
  • Translated using Weblate (Greek)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • storage/zfs: avoid raw sends for encrypted snapshot copies
  • tests: cover encrypted ZFS snapshot copies
  • incus/server/storage/driver/volume: Ensure cached image can grow to needed size and not be restricted by pool size config.
  • tests: Add more tests for ConfigSizeFromSource
  • doc: Update AI/LLM policy
  • doc: Add GPG to wordlist
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Russian)
  • client: Default to port 443 for raw connections
  • incusd/util: Fix JWT validation
  • api: Add storage_btrfs_compression extension
  • incusd/storage/drivers: Add "btrfs.compression" volume option
  • doc: Document the "btrfs.compression" volume option
  • doc: Update config
  • doc/rest-api: Refresh swagger YAML
  • incus/server/storage/driver/ceph: Don't return error if image size is larger than cached image size
  • build(deps): bump actions/checkout from 6 to 7
  • incusd/instance/lxc: Restrict OCI configuration keys to OCI containers
  • api: Add oci_network_config extension
  • internal/instance: Simplify OCI key descriptions
  • internal/instance: Add OCI DNS configuration keys
  • incusd/device: Apply OCI static network configuration on NICs
  • incusd/instance/lxc: Generate OCI container network files
  • incusd/main_forknet: Handle static interfaces and DNS in forknet dhcp
  • doc: Update config
  • incusd/storage/btrfs: Fix daemon dir prefix check
  • doc/cloud-init: Change YAML spec domain
  • incus/server/device: Persist NIC host_name before creating interface
  • incusd/images: Tolerate concurrent image record creation in a cluster
  • incus/events: Forward info-level log events across the cluster
  • incus/vm: Select OVMF.amdsev.fd firmware for SEV guests
  • incus/vm: Skip vmcoreinfo device for SEV guests
  • incus/console: Ignore not-exist error when removing temporary socket
  • github: Block LLM/AI attribution in commit messages
  • incusd: Skip br_netfilter proxy/forward handling on IncusOS
  • incusd/storage/zfs: Batch snapshot GUID lookups
  • incusd/endpoints: Fix infinite loop in network error log writer
  • api: infiniband_sriov_guid
  • incusd/ip: Add SetVfNodeGUID/SetVfPortGUID for SR-IOV
  • incusd/device/infiniband: Add configurable port_guid/node_guid for SR-IOV
  • doc: Update config
  • doc: Add GUID to wordlist
  • incusd/storage/lvm: Account for qcow2 overhead in volume sizing
  • incusd/storage: Add patch to fix existing lvmcluster qcow2 volumes
  • incusd: Skip NVRAM setup for unified AMD SEV firmware
  • shared/cliconfig: Use platform-specific config directory
  • incus: Use platform-specific cache directory
  • incusd/device/disk: Reject pool property with special sources
  • incusd/network/bridge: Clarify nat.order has no effect on nftables
  • incusd/metadata: Update generated metadata
  • shared/osinfo: Add osinfo package
  • internal/server/instance/drivers: Use DetermineOS and osinfo.OSType for instance GuestOS value
  • internal/server/instance/drivers: Update GuestOS usages
  • internal/server/instance/drivers: Add OS version specific QEMU options
  • incusd/storage/drivers: Apply nodatacow directly for btrfs.compression=none
  • incusd/storage/drivers: Allow btrfs.compression as a pool-wide default
  • test: Cover btrfs.compression nodatacow and pool-wide default
  • incusd/network: Add GetNeighbourAddresses helper
  • incusd/device: Add shared instance neighbour scan helper
  • incusd/firewall: Allow wildcard listen address in proxy NAT
  • incusd/device: Support dynamic addresses in proxy NAT mode
  • doc: Update config
  • doc: Document proxy NAT dynamic addresses
  • tests: Add proxy NAT wildcard and dynamic address tests
  • incusd: Rename neighbour to neighbor for US english
  • incusd: Reject rootfs symlink for instances
  • incusd/exec: Reject exec-output symlink
  • incusd/instance: Enforce project restrictions on snapshot restore
  • api: instance_selinux
  • internal/server/sys: Extend SELinux context detection
  • internal/server/selinux: Add SELinux package
  • shared/validate: Add SELinux validation functions
  • internal/instance: Add SELinux configuration keys
  • internal/server/project: Add SELinux config permissions
  • incusd: Rename forkstart to forklxc and forklimits to forkqemu
  • incusd: Add SELinux exec context to forkqemu
  • internal/server/instance/drivers: Add SELinux support
  • doc: Update config
  • Update gomod
  • incusd/instance: Confine template access to instance root
  • shared/validate: Reject compression algorithm arguments
  • incusd/images: Validate fingerprint on direct download
  • incusd/storage: Check source volume access on copy
  • incusd/instances: Check source instance access on copy
  • incus/default: Add incus default commands
  • i18n: Update translation templates
  • cmd/incusd: isolated on restricted.containers.privilege prevents setting security.idmap.isolated to false
  • doc: regenerate configurable options index
  • api: regenerate /1.0/metadata/configuration options
  • incusd/storage: Recreate missing snapshot config subvolume
  • Translated using Weblate (Portuguese)
  • incusd/storage: Fix storage patches
  • incus: Fix gofumpt
  • i18n: Update translation templates

ドキュメント

Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)

パッケージ

Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。

Linux 上に Incus サーバーをインストールする

Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。

https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)

Incus クライアントの Homebrew パッケージ

Homebrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。

https://formulae.brew.sh/formula/incus

Incus クライアントの Chocolatey パッケージ

Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://community.chocolatey.org/packages/incus/7.2.0

Incus クライアントの Winget パッケージ

Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://winstall.app/apps/LinuxContainers.Incus

サポート

月次のフィーチャーリリースは、次のリリースがリリースされるまでのみサポートされます。より長いサポート期間と少ない変更頻度が必要な場合、代わりに Incus 7.0 LTS の使用を検討すべきです。

コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues

Incus 7.1 リリースのお知らせ

2026/05/30

Incus チームは、Incus 7.1 のリリースのアナウンスができてうれしいです!

このリリースは、Incus 7.0 LTS リリース以来初めての月次フィーチャーリリースです。今回は、少し時間が取れましたので、バックログを少し片付けることができたので、かなり新機能が豊富なリリースになっています。

image|690x305

いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/

セキュリティ修正

このリリースでは、4 件のセキュリティ問題を修正しました:

新機能

カスタムストレージボリュームのリビルド

新しい incus storage volume rebuild コマンドを使って、カスタムストレージボリュームのリビルドができるようになりました。

もとになるボリュームを削除し、新しい空のボリュームを同じ設定で作成します。リビルドはスナップショットがないボリュームのときのみ可能です。

これは実質的に、インスタンスに対する incus rebuild と同じ動作ですが、カスタムストレージボリュームに適用されるようになりました。

stgraber@castiana:~$ incus storage volume create default foo
Storage volume foo created
stgraber@castiana:~$ incus storage volume rebuild default foo
Storage volume foo rebuilt

仮想マシンの明示的な CPU トポロジー

仮想マシンに対する limit.cpu 設定キーを利用して、sock=2,cores=4,threads=2 のような形式で明示的に CPU トポロジーを指定できるようになりました。

これによりゲストに対して公開するものの柔軟性が高まります。しかしこの構文を使用すると、その仮想マシンにたいする動的な CPU ホットプラグとホットリムーブが無効になることに注意してください。

stgraber@castiana:~$ incus launch images:debian/13 v1 --vm -c limits.cpu="sockets=4,cores=2,threads=4"
Launching v1
stgraber@castiana:~$ incus exec v1 bash
root@v1:~# lscpu | grep -E 'Socket|Core|Thread'
Thread(s) per core:                      4
Core(s) per socket:                      2
Socket(s):                               4
root@v1:~# nproc
32

カスタム TPM プラットフォーム証明書

新しいサーバーの設定キーをいくつか導入しました:

  • instances.tpm.platform_cert
  • instances.tpm.platform_key

これにより、仮想 TPM デバイスの Endorsement Key に署名するための認証局を提供できるようになります。こうすることで、特定の TPM デバイスに対する信頼を確立できるようになります。

stgraber@castiana:~$ incus config get instances.tpm.platform_cert
-----BEGIN CERTIFICATE-----
MIIBjDCCATOgAwIBAgIUD0ayUKYdRlCHaXIzzSTWIDX0L4owCgYIKoZIzj0EAwMw
HDEaMBgGA1UEAwwRSW5jdXMgVFBNIHNpZ25pbmcwHhcNMjYwNTIzMDEyODMyWhcN
MzYwNTIwMDEyODMyWjAcMRowGAYDVQQDDBFJbmN1cyBUUE0gc2lnbmluZzBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABHeorFI2aDNnjcmKgaXKJgwmQFdPEUwVFbze
9PBYRc+157TE7WGNxfjK/x9K6/c/oo91cP7wMfhSuvtLfbVG7d+jUzBRMB0GA1Ud
DgQWBBTCr1gVrRuPVC54BoneUqnQpIUfaDAfBgNVHSMEGDAWgBTCr1gVrRuPVC54
BoneUqnQpIUfaDAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA0cAMEQCIFJo
oJ/mWxv69XLDdOMUpvmGu1INjo8cBQh9KqIgnYUYAiA/JXgYEp0u9DCpge9Eifc/
R3QrMmCl71nW2Lz4kZOqhw==
-----END CERTIFICATE-----
stgraber@castiana:~$ incus config get instances.tpm.platform_key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIMdKhntzfFiQqaBZGo8IvtK16AetkUIYVbhgimeX57aAoAoGCCqGSM49
AwEHoUQDQgAEd6isUjZoM2eNyYqBpcomDCZAV08RTBUVvN708FhFz7XntMTtYY3F
+Mr/H0rr9z+ij3Vw/vAx+FK6+0t9tUbt3w==
-----END EC PRIVATE KEY-----
stgraber@castiana:~$ incus config device add v1 tpm tpm
Device tpm added to v1
stgraber@castiana:~$ incus start v1
stgraber@castiana:~$ incus wait v1 agent
stgraber@castiana:~$ incus exec v1 bash
root@v1:~# tpm2_getekcertificate | openssl x509 -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2 (0x2)
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=Incus TPM signing
        Validity
            Not Before: May 30 01:32:08 2026 GMT
            Not After : Dec 31 23:59:59 9999 GMT
        Subject: CN=unknown
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c1:04:b8:19:52:9e:4a:a2:f0:30:1c:23:00:48:
                    40:71:9b:62:ef:18:d0:56:71:95:da:58:0b:a9:82:
                    1d:a3:46:b0:66:eb:ad:fe:b1:e0:c1:35:c7:33:bd:
                    00:69:f4:eb:08:64:84:f1:7a:4f:0b:95:16:1d:88:
                    18:17:30:ef:3b:74:28:cc:45:b7:9b:ce:be:00:d0:
                    88:6f:74:4e:90:10:5f:5f:c4:7f:3d:d4:31:3b:5b:
                    87:57:7d:e5:b1:d0:c4:6b:bd:e8:49:0b:4f:f6:d9:
                    cb:58:85:91:6a:e7:02:87:bf:5d:99:a0:db:88:74:
                    f2:47:d8:35:41:fb:09:ec:a6:ae:c4:d4:07:8f:de:
                    95:d4:82:71:b7:a2:c9:e9:a4:3d:e9:40:73:04:03:
                    ef:dc:7f:15:60:52:c5:b8:14:9c:ef:66:4a:28:4d:
                    d7:79:b8:27:b2:b9:d4:58:55:44:f1:52:6a:5e:f7:
                    a8:e4:56:39:55:65:42:41:c2:73:de:00:de:65:08:
                    0f:d5:d3:cb:a4:82:3a:75:cf:4e:ac:b2:94:58:96:
                    a8:9c:c0:f8:e3:3c:2e:25:76:6d:24:7e:00:58:f5:
                    63:01:e9:90:84:8e:21:b2:e0:29:a4:d8:cb:2f:f7:
                    d4:a6:a0:3a:e4:54:54:10:77:4f:d0:96:1b:68:b2:
                    e4:91
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Extended Key Usage: 
                Endorsement Key Certificate
            X509v3 Subject Alternative Name: critical
                DirName:/tcg-at-tpmManufacturer=id:00001014/tcg-at-tpmModel=swtpm/tcg-at-tpmVersion=id:20240125
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Directory Attributes: 
                TPM Specification:
    0:d=0  hl=2 l=  12 cons: SEQUENCE          
    2:d=1  hl=2 l=   3 prim:  UTF8STRING        :2.0
    7:d=1  hl=2 l=   1 prim:  INTEGER           :00
   10:d=1  hl=2 l=   2 prim:  INTEGER           :B7


            X509v3 Authority Key Identifier: 
                C2:AF:58:15:AD:1B:8F:54:2E:78:06:89:DE:52:A9:D0:A4:85:1F:68
            X509v3 Key Usage: critical
                Key Encipherment
    Signature Algorithm: ecdsa-with-SHA256
    Signature Value:
        30:46:02:21:00:b9:7a:97:78:fb:4d:ea:6e:93:27:24:3a:f6:
        66:08:b9:ae:54:e8:2b:c1:c8:e9:1c:74:45:79:88:88:72:3e:
        46:02:21:00:82:f6:c0:d9:dc:c0:1a:5e:95:cb:f3:b9:fa:00:
        65:55:b3:5f:b4:25:7e:c5:c6:fb:b2:c4:e4:41:36:6d:76:5b

ドキュメント : https://linuxcontainers.org/incus/docs/main/server_config/#miscellaneous-options

アタッチ時のボリューム作成

incus storage volume attach コマンドで、新たに --create オプションを受け付けるようになりました。

設定すると、カスタムストレージボリュームが存在しない場合は、インスタンスに接続される前に作成されるため、別途 incus storage volume create を実行する手順が不要になります。

stgraber@castiana:~$ incus storage volume attach default v1-extra v1 extra --create
stgraber@castiana:~$ incus exec v1 bash
root@v1:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   10G  0 disk
├─sda1   8:1    0  100M  0 part /boot/efi
└─sda2   8:2    0  9.9G  0 part /
sdb      8:16   0   10G  0 disk

ストレージに対するファイルシステム作成オプション

新しい block.create_options 設定オプションを使うと、ブロックデバイス上にボリュームを作成する際に使う mkfs の引数を制御できます。

btrfs.create_options も同様に、新しいストレージプールを作成するときに使う mkfs.btrfs オプションを制御するために導入されました。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_btrfs/#storage-btrfs

低レベルの LINSTORE 設定

新しく linstore.raw.* 設定キーのセットが、LINSTOR ストレージプールとストレージボリュームの両方で利用できるようになりました。これにより、低レベルのプロパティを、基となるリソースグループとリソース定義に直接設定できるようになります。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_linstor/

ネットワークアドレスセット内の IP アドレスの範囲

ネットワークアドレスセットは、IP アドレスの範囲をサポートするようになりました(例: 10.0.0.120-10.0.0.130)。これは、ネットワーク ACL ルールですでに許可されていたものと一致します。

単一の IP アドレス範囲は、最大 256 アドレスまで拡張できます。それ以上のアドレスセットは、CIDR 表記を使用して表現する必要があります。

stgraber@castiana:~$ incus network address-set create demo
Network address set demo created
stgraber@castiana:~$ incus network address-set add demo 10.0.0.100-10.0.0.200

ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/network_address_sets/

ブリッジネットワークにおけるマルチキャストスヌーピング

管理ブリッジネットワークに、新たに bridge.multicast_snooping 設定オプションが追加されました。false に設定すると、ブリッジ上でのマルチキャストスヌーピングが無効化されます。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/network_bridge/

リモートごとの複数のアドレス

incus remote コマンドが、単一のリモートに対して複数のアドレスを受け付けるようになりました。

Incus は、最後に正常に動作したアドレスを記憶し、障害時には他のアドレスに切り替えます。これにより、クラスター構成や高可用性サーバーに対してフォールバックポイントを容易に提供できます。

S3 オブジェクトストレージの改良

ビルトインの S3 互換オブジェクトストレージーサーバーが、一般的な拡張機能をいくつかサポートするように拡張されました:

  • SigV2 と SigV4 署名アルゴリズムの両方で、署名付き URL をサポートするようになりました
  • CopyObject 操作を実装しました。オブジェクトをサーバーサイドでコピーできます

すべての変更点

このリリースのすべての変更のリストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • gomod: Update dependencies
  • incusd/instance/drivers: Round memory hotplug size up to block size
  • incusd/instance/lxc: Allow unsetting limits.memory.swap without hitting a cgroup error
  • tests: Update for new name restrictions
  • doc: Update config
  • internal/server: fire agent events after checking current state
  • internal/instance: Add volatile.last_state.agent
  • incusd/storage/s3: Confine multipart uploads with os.Root
  • incusd/storage: Guard nil fields in createDependentVolumesFromBackup
  • incusd/storage: Guard nil ExpiresAt in CreateCustomVolumeFromBackup
  • incusd/storage: Fix unsafe access to backup data
  • incusd/device: Encode device names in DevicesPath storage paths
  • incusd/instance/drivers: Apply standard API object name checks
  • doc: Update config
  • doc: Document CPU topology support for limits.cpu
  • incusd/instance: Support CPU topology for VM limits.cpu
  • internal/instance: Allow CPU topology syntax for limits.cpu
  • shared/validate: Add CPU topology parsing helper
  • api: instance_limits_cpu_topology
  • i18n: Update translation templates
  • tests: Switch to recursive chown on file push
  • incus/file: Make recursive push apply UID/GID overrides recursively
  • incus/storage_volume: Put big subcommands into their own files
  • incusd/devices: Cleanup leftover forkproxy on startup
  • i18n: Update translation templates
  • incus/config: Fix typo in usage
  • incus/image: Improve usage
  • incus/move: Improve usage
  • incus/storage/volume: Improve usage
  • incus/remote: Improve usage
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Russian)
  • incusd/images: Revert 36f513c
  • incusd/storage: Prevent creating daemon volumes on shared pools
  • api: api_fragments
  • incusd/project: Handle server objects
  • incusd/db/cluster/entities: Add TypeServer and fix map sorting
  • incusd/storage: Improve handling of daemon volumes
  • shared/api/url: Add URL fragment setter
  • client: handle absolute paths for simplestream files
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Greek)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • tests: Add storage bucket presigned URL test
  • incus/storage/s3: Support SigV2 presigned URLs
  • incus/storage/s3: Support SigV4 presigned URLs
  • i18n: Update translation templates
  • doc: Update command name
  • incus: Keep track of last working remote
  • incus: Remove global mutable state from the parser
  • incus: Refactor calls to the parser
  • incus/remote: Add support for multiple URLs
  • global: Use strings.Builder for string concatenation in loops
  • shared/api: Drop no-op omitempty on nested struct fields
  • global: Use slices.Backward for reverse iteration
  • global: Use strings.CutSuffix instead of HasSuffix/TrimSuffix
  • global: Use strings.Cut instead of strings.Split/SplitN
  • incusd/instance/drivers: Use the min builtin for memory capping
  • incusd: Use unsafe.Add for pointer arithmetic in forkproxy
  • global: Use t.Context in tests
  • global: Use reflect.TypeFor
  • global: Use range-over-int loops
  • global: Use maps.Copy instead of manual copy loops
  • global: Use sync.WaitGroup.Go for goroutine management
  • incusd: Rename dqlite references to cowsql
  • incusd/network/physical: Skip VLAN interface on filtered bridges
  • incusd/network/ovn: Correctly set VLAN on uplink veth
  • tests: Add storage volume rebuild test
  • i18n: Update translation templates
  • incus/storage_volume: Add rebuild command
  • client: Add RebuildStoragePoolVolume
  • doc/rest-api: Refresh swagger YAML
  • incusd/storage: Add storage volume rebuild API endpoint
  • shared/api: Add StorageVolumeRebuildPost
  • incusd/storage: Add RebuildCustomVolume to pool backend
  • api: storage_volumes_rebuild
  • test/lint: Run full golangci-lint instead of only new changes
  • incusd/instance/operationlock: Omit redundant error type from sentinel var declaration (revive:var-declaration)
  • incusd/dnsmasq/dhcpalloc: Omit redundant error type from sentinel var declaration (revive:var-declaration)
  • incusd/cluster: Omit redundant error type from sentinel var declaration (revive:var-declaration)
  • incusd: Omit redundant error type from sentinel var declaration (revive:var-declaration)
  • incusd/operations: Inline reflect.Ptr as reflect.Pointer (govet:inline)
  • incus: Inline reflect.Ptr as reflect.Pointer (govet:inline)
  • i18n: Update translation templates
  • incus: Add newline after block before switch case (newline-after-block)
  • incusd/storage/drivers: Add newline after block before switch case (newline-after-block)
  • incusd/instance/drivers: Add newline after block before switch case (newline-after-block)
  • incusd/device: Add newline after block before switch case (newline-after-block)
  • incusd: Add newline after block before switch case (newline-after-block)
  • incusd/fsmonitor/drivers: Add doc comments on exported Name methods (revive:exported)
  • incusd/fsmonitor/drivers: Rename locals that shadow logger import (revive:import-shadowing)
  • incusd/fsmonitor: Rename local that shadows logger import (revive:import-shadowing)
  • incusd/seccomp: Simplify setxattr whiteout check with early return (revive:early-return)
  • incusd/backup: Rename locals that shadow state import (revive:import-shadowing)
  • incusd/apparmor: Omit inferred type from strings.Builder declarations (staticcheck:ST1023)
  • incusd/apparmor: Add doc comment on nullWriteCloser.Close (revive:exported)
  • internal/linux: Add missing doc comments on exported symbols (revive:exported)
  • internal/linux: Drop redundant = nil from err declaration (revive:var-declaration)
  • internal/linux: Rename devpts_fd parameter (revive:var-naming)
  • internal/linux: Return error last from GetErrno (revive:error-return)
  • incusd/device: Use tagged switch statements (staticcheck:QF1003)
  • incusd/device: Apply De Morgan's law to simplify booleans (staticcheck:QF1001)
  • incusd/device: Remove embedded StorageVolume field from selector (staticcheck:QF1008)
  • incusd/device: Check container type assertions (revive:unchecked-type-assertion)
  • incusd/device: Invert conditions to return early (revive:early-return)
  • incusd/device: Remove unnecessary blank line in validateConfig (whitespace)
  • incusd/device: Remove blank line at start of block (revive:empty-lines)
  • incusd/device: Avoid defer inside loop in checkAttachedRunningProcesses (revive:defer)
  • incusd/device: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/auth/oidc: Add doc comments on exported methods (revive:exported)
  • incusd/auth/oidc: Check email claim type assertion (revive:unchecked-type-assertion)
  • incusd/auth: Use strings.Split instead of SplitN (staticcheck:QF1004)
  • incusd/auth: Add doc comments on exported symbols (revive:exported)
  • incusd/auth: Rename locals that shadow logger import (revive:import-shadowing)
  • incusd/events: Add doc comments on exported methods (revive:exported)
  • incusd/events: Remove embedded Conn field from selectors (staticcheck:QF1008)
  • incusd/response: Use fmt.Fprintf instead of WriteString with Sprintf (staticcheck:QF1012)
  • incusd/response: Avoid defer inside loop in fileResponse.Render (revive:defer)
  • incusd/response: Add doc comments on exported Render methods (revive:exported)
  • incusd/device/config: Rename copy locals that shadow builtin (revive:redefines-builtin-id)
  • incusd: Fix remaining identifier naming (revive:var-naming)
  • incusd: Annotate intentional os.Exit calls (revive:deep-exit)
  • incusd: Remove useless break in case clauses (revive:useless-break)
  • incusd: Remove blank line at start of block (revive:empty-lines)
  • incusd: Remove empty else block (revive:empty-block)
  • incusd: Rename local that shadows builtin min (revive:redefines-builtin-id)
  • incusd: Add space after comment delimiter (revive:comment-spacings)
  • incusd: Avoid deferring inside loops (revive:defer)
  • incusd: Drop else after return (revive:indent-error-flow)
  • incusd: Return early to reduce nesting (revive:early-return)
  • incusd: Use comma-ok form for type assertions (revive:unchecked-type-assertion)
  • incusd: Rename locals that shadow imports (revive:import-shadowing)
  • incusd: Fix identifier naming (revive:var-naming)
  • incusd: Use tagged switch statements (staticcheck:QF1003)
  • incusd: Remove dead source connection (staticcheck:SA4006)
  • incusd: Fix errors.Is argument order (staticcheck:SA1032)
  • incusd: Use fmt.Fprintf instead of Write of Sprintf (staticcheck:QF1012)
  • incusd: Convert byte slice argument to string (staticcheck:QF1010)
  • incusd: Merge conditional assignments into declarations (staticcheck:QF1007)
  • incusd: Remove unnecessary trailing newline (whitespace)
  • incusd: End comments with a period (godot)
  • incusd: Fix import grouping (gci)
  • incusd/config: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/bgp: Remove unused setup method (unused)
  • incusd/firewall/drivers: Remove unused subnetMask function (unused)
  • incusd/metadata: Add doc comment on exported var Data (revive:exported)
  • incusd/refcount: Omit redundant type in var declaration (revive:var-declaration)
  • incusd/ucred: Check type assertion in GetConnFromContext (revive:unchecked-type-assertion)
  • incusd/scriptlet/log: Fix doc comment on exported CreateLogger (revive:exported)
  • incusd/scriptlet: Use tagged switch statements (staticcheck:QF1003)
  • incusd/metrics: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/dnsmasq/dhcpalloc: Lift break condition into loop (staticcheck:QF1006)
  • incusd/dnsmasq: Use strings.Split instead of SplitN (staticcheck:QF1004)
  • incusd/dns: Rename param that shadows db import (revive:import-shadowing)
  • incusd/dns: Add doc comment on exported method ServeDNS (revive:exported)
  • incus/usage: Remove dead assignments to renderedAtoms (staticcheck:SA4006)
  • incus: Remove unused functions (unused)
  • incus: Use tagged switch statement (staticcheck:QF1003)
  • incusd/instance/drivers: Use tagged switch statements (staticcheck:QF1003)
  • incusd/instance/drivers: Replace append loop with variadic append (staticcheck:S1011)
  • incusd/instance/drivers: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/instance/drivers: Add doc comments on exported methods (revive:exported)
  • incusd/instance/drivers: Check type assertions (revive:unchecked-type-assertion)
  • incusd/instance/drivers: Return early to reduce nesting (revive:early-return)
  • incusd/instance/drivers: Avoid deferring inside loops (revive:defer)
  • incusd/instance/drivers: Omit inferred type from var declaration (revive:var-declaration)
  • incusd/instance/drivers: Remove unnecessary blank line at end of block (whitespace)
  • incusd/instance/drivers: Remove unused const and function (unused)
  • incusd/instance: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/instance: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/instance: Return explicit values instead of bare returns (revive:bare-return)
  • incusd/instance/drivers/qmp: Use tagged switch statement (staticcheck:QF1003)
  • incusd/instance/drivers/qmp: Fix doc comment on exported Run method (revive:exported)
  • incusd/logging: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/db: Omit type from strings.Builder declarations (staticcheck:ST1023)
  • incusd/db: Add space after comment delimiter (revive:comment-spacings)
  • incusd/db: Omit redundant types in var declarations (revive:var-declaration)
  • incusd/db: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/db: Check type assertion result (revive:unchecked-type-assertion)
  • incusd/db: Rename local that redefines builtin max (revive:redefines-builtin-id)
  • incusd/db: Rename profileIds parameter to profileIDs (revive:var-naming)
  • incusd/db: Apply De Morgan's law to simplify boolean (staticcheck:QF1001)
  • incusd/db: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/db/cluster: Use fmt.Fprintf instead of WriteString (staticcheck:QF1012)
  • incusd/db/cluster: Check type assertion result (revive:unchecked-type-assertion)
  • incusd/db/cluster: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/db/cluster: Remove redundant import alias (revive:redundant-import-alias)
  • incusd/db/schema: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/db/schema: Check error from db.Close (errcheck)
  • incusd/db/node: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/db/query: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/db/query: Add missing doc comments on exported symbols (revive:exported)
  • incusd/cluster: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/cluster: Avoid deferring inside loops and chains (revive:defer)
  • incusd/cluster: Simplify with early return (revive:early-return)
  • incusd/cluster: Add missing doc comments on exported methods (revive:exported)
  • incusd/cluster: Drop redundant client import alias (revive:redundant-import-alias)
  • incusd/endpoints: Rename locals that shadow import (revive:import-shadowing)
  • incusd/operations: Rename param that shadows import (revive:import-shadowing)
  • incusd/operations: Add missing doc comments on exported methods (revive:exported)
  • incusd/network: Use tagged switch statements (staticcheck:QF1003)
  • incusd/network: Lift break condition into loop (staticcheck:QF1006)
  • incusd/network: Merge conditional assignment into declaration (staticcheck:QF1007)
  • incusd/network: Remove embedded common field from selectors (staticcheck:QF1008)
  • incusd/network: Remove blank line at start of block (revive:empty-lines)
  • incusd/network: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/network: Add and fix doc comments on exported symbols (revive:exported)
  • incusd/network/acl: Remove blank line at start of switch (revive:empty-lines)
  • incusd/network/acl: Invert condition to return early (revive:early-return)
  • incusd/network/acl: Merge conditional assignment into declaration (staticcheck:QF1007)
  • incusd/network/acl: Use tagged switch on rule.Protocol (staticcheck:QF1003)
  • incusd/network/acl: Use tagged switch on rule.Action (staticcheck:QF1002)
  • incusd/network/acl: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/network/zone: Add and fix doc comments on exported methods (revive:exported)
  • incusd/network/zone: Rename param that shadows state import (revive:import-shadowing)
  • incusd/network/ovn: Use tagged switch statements (staticcheck:QF1003)
  • incusd/network/ovs: Use strings.Split instead of SplitN (staticcheck:QF1004)
  • incusd/network/ovs: Remove unused unquote function (unused)
  • incusd/storage/drivers: Use tagged switch statements (staticcheck:QF1003)
  • incusd/storage/drivers: Use strings.Split instead of SplitN (staticcheck:QF1004)
  • incusd/storage/drivers: Omit inferable type from declaration (staticcheck:QF1011)
  • incusd/storage/drivers: Remove extra blank lines at start of block (revive:empty-lines)
  • incusd/storage/drivers: Simplify if/else with early return (revive:early-return)
  • incusd/storage/drivers: Avoid deferring inside loops (revive:defer)
  • incusd/storage/drivers: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/storage/drivers: Add missing doc comments on exported symbols (revive:exported)
  • incusd/storage: Simplify boolean with De Morgan's law (staticcheck:QF1001)
  • incusd/storage: Use tagged switch statements (staticcheck:QF1003)
  • incusd/storage: Check type assertion result (revive:unchecked-type-assertion)
  • incusd/storage: Simplify if/else with early return (revive:early-return)
  • incusd/storage: Rename locals that shadow imports (revive:import-shadowing)
  • incusd/storage: Add missing doc comments on exported symbols (revive:exported)
  • tests: Update btrfs test for new behavior
  • incusd/instance/lxc: Use os.Root for templating
  • incusd/instance: Handle negative disk usage values
  • incusd/storage: Return -1 as disk usage when the driver doesn't support it
  • incus/info: Handle negative usage values (unknown)
  • i18n: Update translation templates
  • incus/storage_volume: Fix push behavior with UID/GID/mode overrides
  • tests: Add thorough tests for incus file push with UID/GID/mode overrides
  • incus/file: Fix typo
  • incus/file: Fix push behavior with UID/GID/mode overrides
  • incusd/instances: Only reset NVRAM on secureboot change for VMs
  • incusd/storage/zfs: Use latest common GUID as refresh base
  • Translated using Weblate (Russian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Swedish)
  • inucsd/devices/tpm: Enable tpm live migration
  • tests: Add IP range coverage for network address sets
  • doc: Document IP range support in network address sets
  • incusd/network/address-set: Support IP ranges
  • api: network_address_set_ip_ranges
  • doc: Update config
  • incusd/network/ovn: Use dnat_and_snat for fully mapped external addresses
  • api: linstor_raw
  • tests: Add quick raw DRBD key checks
  • incusd/storage/linstor: Allow setting raw DRBD properties on storage volumes
  • incusd/storage/linstor: Allow setting raw DRBD properties on storage pools
  • incusd/storage: Allow skipping validation for more prefixes
  • gomod: Update dependencies
  • Makefile: Use older incus-os for Go 1.25
  • incusd/forknet: Filter the DHCPv4 raw socket
  • incusd/forknet: Handle zero wait time for DHCPv6
  • incusd/forknet: Time out DHCPv6 lease acquisition
  • incusd/forknet: Time out DHCPv4 lease acquisition
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Greek)
  • incus-simplestreams: Detect type of unified images
  • incus-simplestreams: Support split container images
  • shared/simplestreams: Add combined_type
  • i18n: Update translation templates
  • incus/config: Fix YAML file name in help text
  • i18n: Update translation templates
  • incus/launch: Update examples
  • incus/network/forward: Fix typo in description
  • i18n: Update translation templates
  • incus/remote_unix: Clarify socket type
  • incus/launch: Clarify examples
  • incus/cluster: Fix typo in description
  • Translated using Weblate (Russian)
  • Translated using Weblate (Portuguese)
  • doc: Add PEM to wordlist
  • doc: Update config
  • incusd/device/tpm: Provision vTPM with platform CA when configured
  • incusd/cluster/config: Add instances.tpm.platform keys
  • incusd/devices: Set volatileGet on Refresh
  • api: instances_tpm_platform_cert
  • shared/archive: Improved ENOSPC detection
  • incus/utils: Tweak environment file handling to strip matching outer quotes
  • doc: Update config
  • tests: Add test for block.create_options
  • incusd/storage/drivers: Add support for block.create_options
  • api: storage_create_options
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Greek)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • i18n: Update translation templates
  • incus/storage/volume: Align long and short description
  • incus/project: Align description formatting
  • incus/project: Fix typo in description
  • incus/cluster/group: Fix typo in description
  • incus/warning: Align description formatting
  • incus/config/trust: Align description formatting
  • incus/image: Align description formatting
  • incus/network/forward: Fix typo in description
  • incus/config/trust: Fix typo in description
  • incus/storage/volume: Fix typo in description
  • incus/network: Fix typo in description
  • incus/network/zone: Align long and short descriptions
  • incus/network: Fix typo in description
  • incus/operation: Fix default column layout in help text
  • incusd/instance/qemu: Add virtio vga feature gating
  • incusd/instance/qmp: Add QueryVirtioVGADevice
  • Extend description for OCI-compliant remotes
  • incus/server/network/ovn/driver: Fix duplicate listening ip check in LoadBalancerCreate
  • incus/server/network/ovn/driver: Fix duplicate listening ip check in ForwardCreate
  • client/oci: Pass --no-tags to skopeo inspect
  • incusd/firewall/nftables: Use terse mode to improve performance
  • i18n: Update translation templates
  • doc/rest-api: Refresh swagger YAML
  • doc: Update metadata
  • doc: Clarify snapshots.expiry
  • cmd/incus: Clarify --expiry flag format
  • shared/api: Fix swagger examples
  • incusd/storage/ceph: Refuse pool deletion when unexpected images exist
  • incus: Print console log when attaching via --console
  • incusd/db/node: Allow using a fixed time in Offline checks
  • incusd/forknet: Use space separator for DNS search domains
  • incusd/device/nic_bridged: Recover orphaned veth on startup
  • incusd/device/nic_bridged: Drop redundant accept_ra=0
  • incusd/ip: Set NUD_PERMANENT on neighbour proxy entries
  • incusd/networks: Parallelize network startup and OVN restart
  • Translated using Weblate (Portuguese)
  • incusd/storage/drivers: Add workaround for shared VG removal failures
  • tests/storage: Add S3 CopyObject coverage
  • incusd/storage/s3: Implement ACL placeholder
  • tests/storage_volume_attach: Test --create on attach
  • i18n: Update translation templates
  • incus/storage_volume: Add --create flag to attach
  • incusd/storage/s3: Implement S3 CopyObject
  • doc/storage_volume: Fix outdated information
  • test: Disable volume shrinking with LINSTOR
  • incusd/instance/drivers/lxc: Quote values in lxc.environment
  • incusd/instances: Skip offline members in bulk state changes
  • incusd/network/ovn: Skip per-IP NAT for external routes when no uplink
  • incusd/storage/zfs: Avoid recursive zfs list in GetResources
  • incusd/cluster: Better handle misisng OVS/OVN
  • Use correct host:port format for ClusterAddress
  • Update list of Ubuntu LTS releases that get pre-built Incus packages
  • doc: Update Ansible section with incus-client details
  • incusd/storage/drivers: Restore config volume as part of VM block restoration
  • build(deps): bump actions/dependency-review-action from 4 to 5
  • devcontainer: fix golangci-lint install source
  • incusd/storage: Add lock handling for NBD operations
  • incusd/storage: Use InstanceByVolumeName in qcow2MigrateVolume
  • incusd/locking: Add TryLock
  • doc: Update config
  • incusd/network/bridge: Add bridge.multicast_snooping config key
  • api: network_bridge_multicast_snooping
  • incusd/db/node: Cleanup node offline messages
  • incusd/instance/qemu: Pass SMBIOS type 11 entries via files
  • incusd/endpoints: Fix Wait() race in Tomb shutdown
  • incusd/cluster: Re-order evacuations to happen earlier on shutdown
  • incusd/instance/qemu: Remove deprecated QEMU flag
  • test/network_acl: Add test for ACL used by instance in different project
  • doc/rest-api: Refresh swagger YAML
  • incusd/storage_volume_nbd: Fix incorrect swagger
  • incusd/projects: Fix targeting on project delete
  • incusd/network/acl: Fix issue with instances in different project than ACL
  • doc/authorization: Fix reference to old "manager" relation
  • incusd/device/nic_bridged: Fix swapped IPv4/IPv6 DNS record
  • incusd/forknet: Add jitter to DHCPv6 renewal
  • incusd/forknet: Properly renew stateful DHCPv6
  • incusd/forknet: Include FQDN in DHCPv6 INFO requests
  • incusd/forknet: Persist DHCPv6 client DUID across restarts
  • incusd/instance/lxc: Fix swap=false failure
  • incusd: Re-introduce core scheduling detection
  • incusd/instance/qemu: Fix version detection for qemu-kvm
  • Translated using Weblate (French)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (French)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Greek)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • doc/devices/disk: Fix broken link

ドキュメント

Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)

パッケージ

Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。

Linux 上に Incus サーバーをインストールする

Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。

https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)

Incus クライアントの Homebrew パッケージ

Homebrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。

https://formulae.brew.sh/formula/incus

Incus クライアントの Chocolatey パッケージ

Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://community.chocolatey.org/packages/incus/7.1.0

Incus クライアントの Winget パッケージ

Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://winstall.app/apps/LinuxContainers.Incus

サポート

月次のフィーチャーリリースは、次のリリースがリリースされるまでのみサポートされます。より長いサポート期間と少ない変更頻度が必要な場合、代わりに Incus 7.0 LTS の使用を検討すべきです。

コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues

Incus 7.0 LTS リリースのお知らせ

2026/05/05

はじめに

Incus チームは、Incus 7.0 LTS のリリースを発表することを大変誇りに思い、またうれしく思います!!

Incus は、最新のシステムコンテナ、アプリケーションコンテナ、仮想マシンのマネージャーです。Apache 2.0 ライセンスのもとにリリースされており、Linux Containers Organization の一部として、コミュニティー主導の Open Source プロジェクトとして運営されています。

Incus はクラウドのような環境を提供し、プロジェクトが作成したイメージ や任意の OCI レジストリーからインスタンスを作成し、サーバーをシームレスにクラスタリングできる機能をはじめとして、幅広い機能を提供します。

複数の異なるローカルやリモートのストレージオプション、従来型、または完全に分散化されたネットワークをサポートし、完全な REST API、Ansible、Terraform/OpenTofu、Packer、Kubernetes Cluster API などの一般的なツールとの統合を含む、一般的なクラウド機能をほとんど提供します。

image|690x225

このリリースは、Incus にとって 2 度目の LTS リリースであり、Incus 6.0 LTS は、5 年間のライフサイクルのうちの残り 3 年間のセキュリティ修正のみのフェーズに入ります。

Incus 7.0 LTS は、LXC 7.0 LTSLXCFS 7.0 LTS に続く、今回の LTS リリースの締めくくりです。

姉妹プロジェクトと同様に、Incus 7.0 LTS は 2031 年 6 月 までサポートされます。

最初の2年間は、バグ修正やセキュリティ対策、および軽微なユーザビリティ改善が、定期的なポイントリリース(7.0.x)を通じて提供されます。最初の2年間が経過した後、Incus 7.0 LTS は、5年間のサポート期間の残り 3 年は、セキュリティ対策のみのメンテナンスに移行します。

6.0 LTS と 7.0 LTS リリースの間で合計 204 名が Incus に貢献し、6.23 と 7.0 LTS リリースの間では 45 名が貢献しました。

いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/

Enjoy!

セキュリティ修正

このリリースには、9 件のセキュリティ問題の修正を含みます。
これらは、https://7asecurity.com が実施したセキュリティ監査の一部として報告されたものです。

互換性のない変更

今回のリリースは、新しいメジャーリリースであるため、互換性を損なう変更をいくつか加えています。

最小システム要件が更新されました:

  • Go 1.25
  • Linux 6.12
  • QEMU 8.2
  • LXC 6.0.0
  • nftables 1.0.0
  • dnsmasq 2.90
  • openvswitch 2.15.0 (OVS や OVN 使用時)
  • ovn 23.03.0 (OVN 使用時)
  • ZFS 2.1.0 (ZFS 使用時)
  • LVM 2.03.11 (LVM 使用時)

それに加えて、レガシーなシステムサポートが削除されました:

  • cgroup v1 サポートの廃止
  • xtables (iptables/ip6tables/ebtables) サポートの廃止

incus コマンドラインツールも、解析ロジックが大幅に改良され、多くの古い特殊ケースが廃止され、さまざまなコマンドの動作が一貫性を保つように改良されました。

Incus 6.23 からの変更点

MinIO をビルトイン S3 リスナーへ置き換え

MinIO はもはや開発元でメンテナンスされないため、ストレージバケットのバックエンドプロバイダーとしては使い続けられなくなりました。

他の外部依存へ移行し、それに伴う複雑な設定や統合作業を避けるため、必要となる基本的な S3 操作を Incus に直接実装することにしました。

ストレージバケットは、初回アクセス時に MinIO のディスク上のフォーマットから、新しいディスク上のフォーマット(メタデータが別のプレーンファイル)に変換されます。この処理は、バケット内のオブジェクトのサイズによっては数分かかる場合があります。

移行ロジックは、必要に応じて元の MinIO メタデータを保持します。

クライアントの視点では、変換時の初期の接続遅延を除いて、API に違いはなく、従来通りの S3 のままです。

サーバーのシャットダウン動作

新たなサーバー設定オプションとして、core.shutdown_action が追加されました。

デフォルト値である shutdown では、すべてのインスタンスがクリーンにシャットダウンします。新しい値である evacuate を指定すると、シャットダウン時にクラスター化サーバーの退避がトリガーされ、可能な限り多くのインスタンスは他のサーバーに移行できます。

ドキュメント : https://linuxcontainers.org/incus/docs/main/server_config/

低レベルバックアップ API

標準的なバックアップソフトウェアとの統合を簡単にするため、Incus は NBD API と、変更追跡用のダーティビットマップの作成を制御する API を公開するようになりました。

これら 2 つの機能を組み合わせることで、増分での転送やリストアを含む、容易な仮想マシンのバックアップが可能になります。

NBD は Incus API を通して提供されるため、Incus CLI ツールがバックエンドコネクションを処理し、通常の NBD クライアントとのインターフェースとなる NBD リスナーをセットアップできます。

stgraber@castiana:~$ incus storage volume nbd default virtual-machine/v1 --address=127.0.0.1:1234
NBD listening on 127.0.0.1:1234

ストレージプールのプロジェクト制限

新たにプロジェクトの設定キーに restricted.storage-pools.access が追加されました。これにより、プロジェクト内からアクセス可能なストレージプールのカンマ区切りのリストを指定できます。

これは、プロジェクト内でストレージプールに対して 0 バイトのクォータを設定するのと同様に動作しますが、拒否リストではなく、許可リスト形式を採用しています。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/projects/

クラスターリバランス時の配置スクリプトレット呼び出し

クラスターのリバランス機能が有効になり、Incus が負荷分散のためにインスタンスの移動を検討している場合、インスタンス配置スクリプトレットは専用の rebalance コールを受け取るようになりました。

候補サーバーのリストは、負荷が低い方から高い方へソートされます。

ドキュメント : https://linuxcontainers.org/incus/docs/main/explanation/clustering/

ファイル転送コマンドは cp コマンドと同様に

incus file pushincus file pull コマンドは、cp コマンドと合致するオプションを使い、cp コマンド同様に動作するようになりました:

-p, --create-dirs      必要なディレクトリーを作成する
-L, --dereference      ソースパス内のシンボリックリンクを常にたどる
-H, --follow           コマンドラインに指定したソースパスのみシンボリックリンクをたどる
-P, --no-dereference   ソースパス内のシンボリックリンクはたどらない
-r, --recursive        再帰的にファイルを転送する

これにより、Incus インスタンス間でのファイル転送がより予測どおりになります。

incus image copy--reuse フラグ

incus image copy コマンドに --reuse フラグが追加されました。このフラグを --copy-aliases と同時に使うと、新たにコピーされたイメージが、既存のエイリアスをすべて引き継ぎます。

Incus 6.0.6 LTS 以降の変更

これまで、Incus 6.x リリースから 6.0.x LTS リリースへのバックポートをかなり積極的に行いました。その結果、6.0.6 LTS から移行するユーザーにとっての新機能リストは比較的短いです。

これらの新機能は主に、ディスク上の大規模な変更やデータベーススキーマの変更を必要とするため、LTS へのバックポートには適さなかった変更にフォーカスを当てています。

ここまで紹介したすべての新機能

Incus 6.0.6 LTS は、Incus 6.23 の直前にリリースされたため、ここまでで紹介したすべての新機能は、Incus 6.0.6 LTS から移行するユーザーにも適用されます。

OCI サポート

Incus 6.3 で初めて導入された機能として、OCI イメージからアプリケーションコンテナを作成できるようになりました。

リソース制限や、システムコールインターセプションなど、Incus コンテナのすべての設定オプションは、これらの OCI イメージから作成したコンテナにもすべて適用されます。

stgraber@dakara:~$ incus remote add docker https://docker.io --protocol=oci
stgraber@dakara:~$ incus launch docker:mysql mysql \
> -c environment.MYSQL_DATABASE=wordpress \
> -c environment.MYSQL_USER=wordpress \
> -c environment.MYSQL_PASSWORD=wordpress \
> -c environment.MYSQL_RANDOM_ROOT_PASSWORD=1
Launching mysql

stgraber@dakara:~$ incus list mysql
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+
| NAME  |  STATE  |         IPV4         |                   IPV6                   |      TYPE       | SNAPSHOTS |
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+
| mysql | RUNNING | 172.17.250.26 (eth0) | 2602:fc62:c:250:216:3eff:fefa:468 (eth0) | CONTAINER (APP) | 0         |
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+

stgraber@dakara:~$ incus launch docker:wordpress wordpress \
> -c environment.WORDPRESS_DB_HOST=172.17.250.26 \
> -c environment.WORDPRESS_DB_USER=wordpress \
> -c environment.WORDPRESS_DB_PASSWORD=wordpress \
> -c environment.WORDPRESS_DB_NAME=wordpress
Launching wordpress

stgraber@dakara:~$ incus list wordpress
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
|   NAME    |  STATE  |         IPV4          |                   IPV6                    |      TYPE       | SNAPSHOTS |
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
| wordpress | RUNNING | 172.17.250.119 (eth0) | 2602:fc62:c:250:216:3eff:fe61:c1fc (eth0) | CONTAINER (APP) | 0         |
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
stgraber@dakara:~$

依存ストレージボリューム

Incus 6.23 で初めて導入されたこの機能により、インスタンスと完全にひも付いたカスタムボリュームを持つことができるようになりました。一致するスナップショットを取得したり、インスタンスとともに移行したり、バックアップに含めたり、インスタンスが削除されると同時に削除したりできるようになりました。(訳注:インスタンスを削除すると同時にボリュームも削除され、インスタンスのスナップショットを作成するとボリューム上に一致するスナップショットが作成され、インスタンスのバックアップには依存ボリュームが含まれる)

stgraber@castiana:~$ incus launch images:debian/13 c1
Launching c1
stgraber@castiana:~$ incus storage volume create default c1-extra dependent=true
Storage volume c1-extra created
stgraber@castiana:~$ incus config device add c1 extra disk pool=default source=c1-extra dependent=true path=/extra
Device extra added to c1
stgraber@castiana:~$ incus storage volume snapshot create default c1-extra test
Error: Direct snapshots are not allowed for dependent volumes
stgraber@castiana:~$ incus snapshot create c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------------------+------------+
| NAME |       TAKEN AT       | EXPIRES AT |
+------+----------------------+------------+
| foo  | 2026/03/27 18:54 EDT |            |
+------+----------------------+------------+
stgraber@castiana:~$ incus snapshot delete c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------+------------+
| NAME | TAKEN AT | EXPIRES AT |
+------+----------+------------+

ネットワークアドレスセット

Incus 6.12 で初めて導入されたネットワークアドレスセットは、送信元・送信先アドレスのリストを重複させる必要がないため、ネットワーク ACL を簡素化する便利な方法です。

アドレスセットは、ACL と同様にプロジェクトにひもづけられ、それぞれのセットは IPv4 と IPv6 アドレスを含めることができます。セットは ACL のソースとデスティネーションフィールドから参照できます。

stgraber@dakara:~$ incus network address-set create cloudflare-dns
Network address set cloudflare-dns created
stgraber@dakara:~$ incus network address-set add cloudflare-dns 1.0.0.1
stgraber@dakara:~$ incus network address-set add cloudflare-dns 1.1.1.1
stgraber@dakara:~$ incus network address-set add cloudflare-dns 2606:4700:4700::1001
stgraber@dakara:~$ incus network address-set add cloudflare-dns 2606:4700:4700::1111

stgraber@dakara:~$ incus network acl create my-acl
Network ACL my-acl created
stgraber@dakara:~$ incus network acl rule add my-acl egress action=allow state=enabled
stgraber@dakara:~$ incus network acl rule add my-acl egress action=reject state=enabled destination='$cloudflare-dns'

stgraber@dakara:~$ incus config device override d13 eth0 security.acls=my-acl
Device eth0 overridden for d13

stgraber@dakara:~$ incus exec d13 -- ping linuxcontainers.org -c1 -W1
PING linuxcontainers.org (2602:fc62:a:1::7) 56 data bytes
64 bytes from rproxy.dcmtl.stgraber.org (2602:fc62:a:1::7): icmp_seq=1 ttl=59 time=8.60 ms

--- linuxcontainers.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.599/8.599/8.599/0.000 ms

stgraber@dakara:~$ incus exec d13 -- ping one.one.one.one -c1 -W1
PING one.one.one.one (2606:4700:4700::1111) 56 data bytes

--- one.one.one.one ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/network_address_sets/

Linstor ストレージドライバー

Incus 6.11 で初めて導入された Linstor は、DRBD を使ってシステム間で効率的なデータレプリケーションを行う、もう 1 つのリモートストレージオプションです。

Linstor の詳細については、公式サイトをご覧ください: https://linbit.com/linstor/

Linstor を使用すると、コンテナや仮想マシン用のブロックボリュームを生成できます。通常は、プライマリーコピーはインスタンスが稼働しているサーバー上に、レプリカはクラスター内の他のサーバー上に存在します。

ドライバードキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_linstor/
Howto: https://linuxcontainers.org/incus/docs/main/howto/storage_linstor_setup/
インターナル : https://linuxcontainers.org/incus/docs/main/reference/storage_linstor_internals/

TrueNAS ストレージドライバー

Incus 6.16 で初めて導入された TrueNAS ストレージドライバーは、リモートの TrueNAS サーバーを、Incus インスタンスとボリュームのストレージプールとして使用できるようにします。

これは、TrueNAS が使用する ZFS ストレージドライバーと非常に似た動作をします。しかし、ローカルで ZFS とやりとりするのではなく、TrueNAS API を使用してさまざまなアクションをリモートでストレージサーバー上で実行します。そして、iSCSI を使用して TrueNAS からボリュームをエクスポートし、Incus サーバーへ接続します。

(Ceph や Linstor やクラスター化された LVM と並んで)リモートストレージドライバーとしてこれをクラスターで使用すると、データの移動が不要なため、サーバー間でインスタンスのシームレスなマイグレーションができるようになります。

root@truenas-incus:~# incus storage create demo truenas source=test/demo truenas.host=192.0.2.10 truenas.api_key=MY-KEY truenas.allow_insecure=true
Storage pool demo created
root@truenas-incus:~# incus launch images:debian/13 d13 --storage demo
Launching d13
root@truenas-incus:~# incus list
+------+---------+---------------------+------------------------------------------------+-----------+-----------+
| NAME |  STATE  |        IPV4         |                      IPV6                      |   TYPE    | SNAPSHOTS |
+------+---------+---------------------+------------------------------------------------+-----------+-----------+
| d13  | RUNNING | 10.2.165.159 (eth0) | fd42:a815:51cf:d4bb:1266:6aff:fe51:ae56 (eth0) | CONTAINER | 0         |
+------+---------+---------------------+------------------------------------------------+-----------+-----------+

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_truenas/

クラスターグループごとの CPU ベースライン定義

Incus 6.4 で初めて導入されたこの機能で、Incus はクラスターグループ内で CPU 定義を構成できるようになりました。これにより、混在したクラスター内での効率的な CPU 利用とライブマイグレーションが可能になります。

この機能により、CPU モデル・世代ごとに 1 つのクラスターグループを持ち、Incus がそれらのサーバーに対して共通の CPU フラグのセットを計算できるようになります。

例えば、incus cluster group set foo instances.vm.cpu.x86_64.baseline=kvm64 instances.vm.cpu.x86_64.flags=auto とすると、Incus は自動的に foo クラスターグループ内のサーバーを自動的に調べ、共通の CPU フラグのセットを flag 設定キーに入力します。

ただし、これにより、完全にカスタムの CPU 定義を設定することもできます。例えば、incus cluster group set foo instances.vm.cpu.x86_64.baseline=EPYCv2 instances.vm.cpu.x86_64.flags=-svm とすると、仮想化拡張機能(svm)を無効にした、基本的な第 2 世代の AMD EPYC CPU が公開されます。

すべての変更点

Incus 6.23 以降のすべての変更点のリストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • shared/cliconfig: Shorten path to using keepalive proxy
  • shared/cliconfig: Implement TLS cert/key/ca caching
  • shared/cliconfig: Add support for encrypted TLS keys to keepalive proxy
  • github: format INCUS_VERSION from tag in release workflow
  • Added translation using Weblate (Georgian)
  • client: Optionally skip blocking for OIDC authentication
  • incus/version: Gracefully fail when server unreachable
  • incusd/instance/agent-loader: Use Linux arch names
  • incusd/instance/qmp: Add QuerySpice
  • incusd/instance/qemu: Add SPICE detection logic
  • incusd/instance/qemu: Disable SPICE on systems missing support
  • incusd/instances/qemu: Rework qemuArchConfig
  • incusd/instance/qmp: Add Query9pDevice
  • incusd/instance/qemu: Add plan9 detection logic
  • incusd/instance/qemu: Export plan9 drives only when supported
  • incusd/instance/qemu: enable SPICE audio via feature gate
  • incus: Un-export Command and Run functions
  • incus-benchmark: Un-export Command and Run functions
  • incus-simplestreams: Un-export Command and Run functions
  • incus-agent: Un-export Command and Run functions
  • incus-user: Un-export Command and Run functions
  • lxd-to-incus: Un-export Command and Run functions
  • lxc-to-incus: Un-export Command and Run functions
  • fuidshift: Un-export Command and Run functions
  • incus: Un-export remaining exported functions
  • incus-migrate: Un-export remaining exported functions
  • incus-benchmark: Un-export remaining exported functions
  • incusd: Un-export remaining exported functions
  • incus-benchmark: Remove unused function
  • incusd: Fix bad type in format strings
  • incusd/instance/qmp: Add QueryVirtioSoundDevice
  • incusd/instance/qemu: Add virtio-sound detection logic
  • incusd/instance/qemu: Omit audio device on systems without virtio-sound
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Russian)
  • incusd/storage: Delete dependent volumes on instance deletion
  • tests: Test dependent volume deletion on instance deletion
  • internal/incusos: Allow non-GET requests
  • internal/incusos: Implement TriggerSystemUpdateCheck
  • incusd: Trigger IncusOS update check on version mismatch
  • incusd/response: Make pipeResponse flush headers ASAP
  • incusd: Disallow setting the 'dependent' key on volume creation
  • incusd/device: Update 'dependent' flag on device add and detach
  • tests: Add additional tests for dependent volume handling
  • incusd/instance/common: Don't perform costly storage actions when no snapshots
  • incusd: Remove explicit caching mechanism in favor of implicit
  • incusd/storage/zfs: Implement better caching
  • incusd/storage/truenas: Implement better caching
  • incusd/instances: Allow more concurency
  • incusd/storage/truenas: Retry iSCSI map request
  • shared/cliconfig: Avoid treating = as part of a remote name
  • incusd/network/state: Use canAccessNetwork
  • cmd/incus-simplestreams: Add flag for overriding product name
  • incusd/storage/truenas: Use old-style ZFS types
  • incusd/storage/zfs: Use old-style ZFS types
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Greek)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • shared/api: Switch to go-yaml/v4
  • shared/cliconfig: Switch to go-yaml/v4
  • shared/cmd: Switch to go-yaml/v4
  • shared/subprocess: Switch to go-yaml/v4
  • shared/validate: Switch to go-yaml/v4
  • incusd/instance/drivers: Switch to go-yaml/v4
  • incusd/storage: Switch to go-yaml/v4
  • incus-agent: Switch to go-yaml/v4
  • incus-migrate: Switch to go-yaml/v4
  • incus-simplestreams: Switch to go-yaml/v4
  • incusd/backup: Switch to go-yaml/v4
  • incusd/storage/drivers: Switch to go-yaml/v4
  • incusd: Switch to go-yaml/v4
  • incus: Switch to go-yaml/v4
  • test: Switch to go-yaml/v4
  • gomod: Update dependencies
  • incus: Update for new YAML empty reader behavior
  • test: Fix ordering of godeps.list
  • tests: Update for slight YAML differences
  • incusd/device: Ignore 'not found' errors when updating dependent config during device add/remove
  • incusd/storage: Add ShouldMigrateDependentVolume
  • incusd/instance: Add support for disk name to ExportQcow2Block
  • incusd/instance/drivers: Add support for cross-cluster dependent volumes migration
  • incusd/storage: Add support for cross-cluster dependent volumes migration
  • incusd/instance: Add HasDependentDisk and ForEachDependentDiskType to instance interface
  • incusd/storage: use ForEachDependentDiskType and HasDependentDisk from instance
  • incusd/instance: Pass additional parameter to Delete method
  • incusd/storage: Pass additional parameter to Delete method
  • incusd/instance: Move dependent volume deletion from storage to instance delete()
  • incusd/storage: Move dependent volume deletion from storage to instance delete()
  • incusd/storage: Fix race in caching logic
  • incusd/storage: Fix potential deadlock
  • incusd/migration: Implement cancelation in migration logic
  • incusd/instances: Implement cancelation in exec logic
  • incusd: Clarify shutdown message
  • incusd: Limit request body to 1MiB by default
  • incusd: Configure exceptions to the 1MiB limit
  • incusd/instance: Rename deleteDependentVolumes to cleanupDependencies
  • incus/server/network/ovn/nb: Add function to get PortGroups by Port UUID
  • incus/server/network/ovn/driver: Cleanup stale instance port uuids from acl port groups on instance stop
  • incusd/storage: Support optimized storage for dependent volumes
  • incusd/storage: Improve logging during dependent volume creation from backup
  • incusd/storage: Rename createDependentVolumes to createDependentVolumesFromBackup
  • incusd/device: Add cleanupDependencies argument to Remove() method
  • incusd/instance/drivers: Pass the cleanupDependencies flag to device Remove
  • tests: Rewrite out-of-space test to use profiles
  • incusd/storage: Improve comments on locks
  • incusd/forksyscall: Handle mount arguments when using idmap
  • incusd/storage: Use device name when importing dependent volumes from backup
  • tests: Add tests for exporting/importing dependent volumes
  • incusd/cluster/config: Clarify description of oidc.claim option
  • doc: Update metadata
  • incusd/device/nic_physical: Fix device validation
  • doc: Update config
  • gomod: Update dependencies
  • incusd/instance: Add support for stateful snapshots for qcow2 volumes
  • incusd/storage: Add support for stateful snapshots for qcow2 volumes
  • incusd: Don't expose the API extension list pre-authentication
  • incusd/device/nic_physical: Fix bridge handling
  • incusd/device/nic_physical: Fix inheritance from network
  • incusd/instances/qemu: Skip vmcoreinfo on ppc64le
  • doc/image_format: Update Pongo2 website
  • incusd/device/nic_bridged: Handle physical NICs
  • incusd/instance/drivers: Fix live migration of instances with snapshots
  • incusd/instance/qemu: Scale SCSI queues with CPUs
  • incus: Enable admin recover and admin sql on all platforms
  • api: storage_volume_nbd
  • incusd/auth: Add can_connect_nbd
  • client: Add GetStoragePoolVolumeBlockNBDConn
  • incusd/storage_volumes: Add NBD API
  • incusd/storage: Implement NBD functions
  • doc/rest-api: Refresh swagger YAML
  • incusd/instance: Implement ConnectNBD
  • incus/storage/volume: Add NBD command
  • i18n: Update translation templates
  • incusd/instance/qmp: Add QueryBlockExports and QueryNBDBlockExports
  • incusd/instance/drivers: Improve error when NBD server is already running
  • incusd/instance: Export snapshot when VM is running to ensure consistency
  • incusd/storage: Export snapshot when VM is running to ensure consistency
  • incusd/storage/drivers: Implement ActivateTask
  • incusd/storage: Support NBD export in offline mode
  • incusd/instance/qmp: Add commands to manage dirty bitmaps
  • shared/api: Add structs for managing dirty bitmaps
  • incusd/instance: Add methods to manage dirty bitmaps
  • incusd/storage: Add InstanceByVolumeName
  • incusd: Add API endpoints for managing dirty bitmaps
  • doc/rest-api: Refresh swagger YAML
  • incusd/instance/lxc: Don't return nil when not implemented
  • client: Forward skopeo errors
  • incusd/storage: Add instanceStateful flag to volume snapshot operations
  • incusd/device: Pass instanceStateful flag during instance snapshot
  • incusd: Pass instanceStateful flag during instance snapshot
  • incusd/apparmor/qemuimg: Expand symlinks
  • incus: Fix Windows absolute paths
  • incus: Enforce stricter directory checks
  • tests: Add strict pull checks for directories
  • i18n: Update translation templates
  • incusd: Return bitmap endpoints by default, objects with recursion=1
  • doc/rest-api: Refresh swagger YAML
  • incusd/instance/qemu: Fix RTC handling on Windows
  • incusd/instance/drivers: Allow exposing dirty bitmaps through NBD export in online mode
  • incusd/storage: Allow exposing dirty bitmaps through NBD export in offline mode
  • incusd/storage/drivers: Fix ordering in Qcow2DeletionCleanup
  • incusd/instance/drivers: Improve snapshot creation rollback handling
  • incusd/storage: Improve snapshot creation rollback handling
  • internal/instance: Introduce volatile.vm.boot_state
  • incusd/instance/qemu: Rename internal structs
  • incusd/instance/qemu: Add new migration state volatile
  • incusd/instance/qemu: Move topology functions to new file
  • incusd/instance/qemu: Make use of new migration state logic
  • incusd/instance/qemu: Don't export internal vcpus and numa nodes maps
  • doc: Update config
  • incusd/instance/qemu: Handle stateful detection corner case
  • incusd/migrate: Set short timeouts on read/write of control data
  • client: Fix bad error handling
  • incusd/response/upgrade: Add small delay for NBD
  • incus/server/network/ovn/nb: Mark route as discord when nexthop is 'discard'
  • incus/server/network/ovn/driver: Only add discard route if it doesn't exist already
  • incusd/storage: Improve qcow2 volume handling
  • incusd/storage/drivers: Add syncBtrfs
  • incusd/storage/drivers: Use 'qemu-img info' in read-only mode
  • incusd/instances: Don't delete ephemeral instances on system shutdown
  • api: Add projects_restricted_storage_pool_access extension
  • incusd/project: Add support for restricted.storage-pools.access
  • doc: Update config
  • incusd/project: Make checkRestrictionsAndAggregateLimits validate pool access
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Greek)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • shared/archive: Improve detection and error handling
  • shared/subprocess: Cleanup pointless check
  • incusd/seccomp: Cleanup pointless check
  • incusd/migrate: Bump migration timeouts
  • shared/util: Introduce SafeCopy
  • incus-migrate: Switch io.CopyN to util.SafeCopy
  • incus: Switch io.CopyN to util.SafeCopy
  • incusd: Switch io.CopyN to util.SafeCopy
  • client: Switch io.Copy to util.SafeCopy
  • shared/ws: Switch io.Copy to util.SafeCopy
  • shared/cliconfig: Switch io.Copy to util.SafeCopy
  • shared/util: Switch io.Copy to util.SafeCopy
  • internal/util: Switch io.Copy to util.SafeCopy
  • internal/io: Switch io.Copy to util.SafeCopy
  • internal/rsync: Switch io.Copy to util.SafeCopy
  • lxd-to-incus: Switch io.Copy to util.SafeCopy
  • lxc-to-incus: Switch io.Copy to util.SafeCopy
  • incus-simplestreams: Switch io.Copy to util.SafeCopy
  • incus-agent: Switch io.Copy to util.SafeCopy
  • incus-user: Switch io.Copy to util.SafeCopy
  • incus-migrate: Switch io.Copy to util.SafeCopy
  • incus: Switch io.Copy to util.SafeCopy
  • incusd: Switch io.Copy to util.SafeCopy
  • Translated using Weblate (Russian)
  • incusd/migration: Bump timeouts to 30s
  • Translated using Weblate (Russian)
  • incusd/instance/qemu: Fix boot state recording
  • incusd/devices/disk: Lock creation of ISO images
  • incusd: Increase devices tmpfs
  • gomod: Update dependencies
  • incusd/device/nic: Prevent USB NICs on migratable VMs
  • incus/cluster: Tweak error message
  • i18n: Update translation templates
  • incus/info: Tweak wording in resources output
  • i18n: Update translation templates
  • incus/export: Improve target file handling
  • incus/import: Improve stdin handling
  • incus/storage_volume: Improve import/export file handling
  • incus/storage_bucket: Improve import/export file handling
  • tests: Add import from stdin and export to stdout
  • i18n: Update translation templates
  • incusd/instance/drivers/qmp: Wait for block job completion after issuing block-job-complete
  • incusd/instance/drivers: Add support for handling BLOCK_JOB_COMPLETED and BLOCK_JOB_ERROR events
  • incusd/migrate: Limit timeout to initial handshake
  • shared/archive: Avoid concurrent calls to Wait
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Greek)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Georgian)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Tamil)
  • incusd/images: Allow simpler HTTP headers
  • incusd/storage/drivers: Extract unpackVolume and backupVolume to util
  • incusd/storage/drivers: Make createParentSnapshotDirIfMissing public
  • incusd/storage: Add support for export/import qcow2 in raw format
  • Translated using Weblate (Portuguese)
  • incusd/instance/edk2: Add support for seabios at bios-256k
  • incus: Widen stdout checks in pull commands
  • incus: Add cp-like flags to incus file push
  • tests: Test cp-like flags in incus file push
  • incus: Defer dereferencing error handling
  • incus: Add cp-like flags to incus storage volume file push
  • tests: Test cp-like flags in incus storage volume file push
  • i18n: Update translation templates
  • incusd/instance/qemu: Improve OS detection for FreeBSD
  • incus-agent: Use psutil for process count
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Russian)
  • incusd/instance/qemu: Use timeouts for agent operations
  • incusd: Add validation for dependent volumes during copy request
  • incusd: Allow copy only when all volumes are on remote storage
  • incusd/storage: Include dependent disks in copy requests
  • incusd/instance/drivers: Remove temporary snapshot block device after migration
  • incusd/storage: Add support for migrating dependent volumes with a new name
  • incusd/storage: Add support for copying dependent volumes on the same target when the root volume storage changes
  • incusd/instance/drivers: Add support for live-migration of dependent volumes with a changed name
  • incusd/instance/drivers: Add check to notify disk only during cluster move
  • incusd/instances/qemu: Fix crash on nil qmp handler in RunJSON
  • incusd/storage: Prevent migration of dependent volumes for snapshot instances
  • shared/validate: Fix name validation on single character
  • internal/linux: Add logging to ClearBlock
  • Translated using Weblate (Russian)
  • incusd/networks: Support targeting of network list
  • incus/network: Add --target to network list
  • i18n: Update translation templates
  • doc/benchmark_performance: Mention GOPATH
  • incus/instance/drivers/common: Add isErrorStatusCode function Signed-off-by: Leon Schoch git@darkress.xyz
  • incus/instance/drivers/qemu: Early return state call in case instance is in error state Signed-off-by: Leon Schoch git@darkress.xyz
  • incus/instance/drivers/lxc: Early return state call in case instance is in error state Signed-off-by: Leon Schoch git@darkress.xyz
  • incusd/cgroup: Require Cgroup V2
  • incusd/instance/lxc: Remove cgroup1 support
  • incusd: Remove cgroup1 support
  • incusd/apparmor: Remove cgroup1 support
  • incusd/device: Remove cgroup1 support
  • incusd/seccomp: Remove cgroup1 support
  • incusd/sys: Remove cgroup1 support
  • doc: Remove cgroup1 mentions
  • Translated using Weblate (Russian)
  • incus-agent: Work around issue when built with GO111MODULE=off
  • incusd/storage/drivers: Add CanRestoreVolume
  • incusd/storage/drivers: Run Qcow2Info in read-only mode
  • incusd/storage: Add CanRestoreInstanceSnapshot and qcow2CanRestoreSnapshot
  • incusd/instance/drivers: Check whether an instance snapshot can be safely restored
  • incusd/storage/drivers: Fix migration import-shadowing
  • incus; Fix copy/pasted list column description
  • incus: Add missing example descriptions
  • incus/profile: Clarify example description
  • incus/admin_sql: Clarify behavior on standalone systems
  • i18n: Update translation templates
  • incus: Wrap addition of string flags
  • incus: Wrap addition of string array flags
  • incus: Wrap addition of integer flags
  • incus: Wrap addition of boolean flags
  • incus: Wrap addition of native integer flags
  • incus: Generalize -f shorthand for --force
  • incus: Generalize -f shorthand for --format
  • incus: Generalize -t shorthand for --type
  • incus: Generalize -a shorthand for --all
  • i18n: Update translation templates
  • incusd: Reset LXC feature detection
  • incusd/cgroup: Update LXC baseline
  • incusd/device: Update LXC baseline
  • incusd/instance/lxc: Update LXC baseline
  • incusd/seccomp: Update LXC baseline
  • incus: Improve cp compatibility for pull operations
  • tests: Add more thorough tests for pull/push operations
  • client: Add bitmap manipulation functions
  • incusd: Remove kernel feature detection
  • incusd/sys: Update kernel baseline
  • incusd/instance/lxc: Update kernel baseline
  • incusd/device: Update kernel baseline
  • incusd/apparmor: Update kernel baseline
  • incusd/seccomp: Update kernel baseline
  • incusd/seccomp: Update LXC baseline
  • incusd/instance/lxc: Drop forknet info fallback in networkState
  • incusd/forknet: Remove unused info subcommand
  • incusd/device/proxy: Drop pidfd fallback in setupProxyProcInfo
  • incusd/seccomp: Assume pidfd kernel support in MakePidFd
  • incusd/instance/lxc: Drop pidfd fallback paths
  • shared/idmap: Keep respecting INCUS_IDMAPPED_MOUNTS_DISABLE
  • doc/requirements: Expand on minimum versions
  • incusd: Drop kernel version checks (6.12 baseline)
  • incusd/instance/qemu: Drop QEMU version checks below 8.2
  • incusd/storage/zfs: Drop ZFS version checks below 2.1.0
  • incusd/storage/btrfs: Drop btrfs version checks below 6.12.0
  • incusd/storage/lvm: Drop LVM version checks below 2.03.11
  • incusd/storage/truenas: Bump baseline to 0.7.7
  • incusd/firewall/nftables: Drop nftables version checks below 1.0.0
  • incusd/apparmor: Drop AppArmor version checks below 3.0.0
  • incusd/rsync: Drop rsync version checks below 3.2.0
  • incusd/network/bridge: Drop dnsmasq version checks below 2.90
  • Translated using Weblate (Portuguese)
  • incusd/storage/linstor: Update comment
  • incus/config_trust: Drop legacy [:] ATOM syntax
  • shared/cliconfig: Drop legacy syntax
  • incus/remote_unix: Drop legacy syntax
  • incus/color: Add warning prefix
  • incus/usage: Add deprecation warning for the syntax
  • incus/storage_volume: Drop legacy [custom/] prefix
  • tests: Drop legacy [custom/] prefix
  • i18n: Update translation templates
  • incusd/firewall: Drop xtables/iptables/ebtables backend (nftables only)
  • doc: Drop xtables/iptables/ebtables references
  • tests: Drop xtables firewall driver support
  • github: Automatically close untyped issues
  • github: Add disclaimer on bug reports
  • incusd/storage: Allow overriding pool for dependent disk during migration
  • incusd/migration: Add DeviceName field to DependentVolume
  • client: Pass device override information during copy
  • incusd/migration: Add support for overriding disk device pool during migration
  • incusd/storage: Add support for overriding disk device pool during migration
  • incusd/instance: Add UpdateDevices
  • incusd/instance: Add support for overriding disk device pool during migration
  • incusd: Add support for overriding disk device pool during migration
  • incusd: Fix cross-server migration being used instead of intra-cluster migration when storage and target are specified
  • incusd/storage/linstor: Tune DrbdOptions/Disk/rs-discard-granularity on pool creation
  • incus/storage: Fix typo
  • i18n: Update translation templates
  • incus/cluster: Fix spelling of YAML
  • i18n: Updatee translation templates
  • incus/network_zone: Fix missing example description
  • i18n: Updatee translation templates
  • incus/storage_bucket: Fix bad list column help message
  • i18n: Updatee translation templates
  • internal/rsync: Fix gofumpt
  • internal/server/cgroup: Fix gofumpt
  • incusd/instances: Fix gofump
  • incusd/storage/s3: Add in-process S3 handler package
  • incusd/storage/s3: Switch to new listener
  • incusd/storage/s3: Migrate data from minio to new format
  • incusd/storage: Remove remaining minio interactions
  • incusd/storage/s3: Remove minio supervisor and ActivateBucket
  • tests: Replace minio with simple built-in S3 endpoint
  • incusd: Switch minio S3 client for AWS SDK
  • incusd/storage/s3: Derive AWS region from S3 endpoint URL
  • gomod: Update dependencies
  • incusd: Patch LINSTOR to set DrbdOptions/Disk/rs-discard-granularity
  • incus/server/network/ovn/driver: Validate that networks external ips are not used by another network, forward or loadbalancer
  • incusd/images: Add image server restriction check in image URL download path
  • incusd/storage/bucket: Validate expected metadata on import
  • incusd/storage/volume: Validate snapshot entries on import
  • incusd/storage/instance: Properly check dependent volumes on import
  • incusd/network/ovn: Fix TLS validation logic
  • incusd/storage/instance: Fix bad snapshot index calculation
  • incusd/storage/s3: Fix nil pointer dereference on truncated input
  • incusd: Limit tarball YAML reads to 1MiB
  • incusd: Fix nil pointer dereference in instance backup restore
  • incusd: Use QuotaWriter for backup and ISO uploads
  • api: Add server_shutdown_action extension
  • incusd/cluster/config: Add core.shutdown_action
  • doc: Update metadata
  • incusd/evacuate: Extract evacuateStopInstance and evacuateMigrateInstance helpers
  • incusd: Implement core.shutdown_action
  • incus/cluster: Don't attempt to connect during join
  • incus/image/copy: Add --reuse flag for --copy-aliases
  • i18n: Update translation templates
  • incus/server/network/ovn/driver: Fix duplicate external network ip check on network creation
  • doc/metrics: Mention Loki requirement
  • incusd: Add missing path parameters
  • doc/rest-api: Refresh swagger YAML
  • Makefile: Add help target and remove tags target
  • tests: Use a 5MiB test file for buckets
  • incus/cluster: Simplify logic
  • api: instances_placement_scriptlet_rebalance
  • shared/api/scriptlet: Add InstancePlacementReasonRebalance
  • incusd/cluster: Run placement scriptlet during re-balancing
  • doc/clustering: Add new scriptlet reason
  • incusd/instance/qemu: Fix locking around VM reset
  • incusd/device/nic: Set next-hop based on configured IP addresses
  • tests: Adjust to work with next-hop
  • incusd/instance/agent-loader: Remove some trailing whitespaces
  • incus/storage_bucket/key: Fix incorrect list column description
  • incus/launch: Add missing example description
  • incus/config_template: Add missing example description
  • incus/create: Add missing example description
  • incus/network_acl: Add missing example description
  • incus/network_address_set: Add missing example description
  • incus/network_integration: Add missing example description
  • incus/network_zone: Add missing example description
  • incus/storage: Add missing example description
  • i18n: Update translation templates
  • incusd/device/disk: Auto-create missing volume sub-directories
  • incusd/instance: Allow initial keys for sub-paths
  • doc/devices/disk: Update to cover sub-path creation
  • doc: Update config
  • tests: Extend sub-path tests to cover directory creation
  • incusd/instance/qemu: Don't emit shutdown lifecycle event during restart
  • incusd/instance/qemu: Don't restart the VM on shutdown
  • incusd/instance/console: Emit a single instance-console event on SPICE
  • gomod: Update dependencies
  • Makefile: Switch to new golangci-lint install script
  • github/workflows/tests: Configure PPAs without apt-add-repository
  • github/workflows/tests: Install mdl from rubygems instead of snap
  • github/workflows/tests: Build cowsql and raft from source
  • Rewrite Go import path to v7
  • gomod: Update dependencies

ドキュメント

Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)

インストール

Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。

Linux パッケージ

Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。

https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)

Incus クライアントの Homebrew パッケージ

Homebrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。

https://formulae.brew.sh/formula/incus

Incus クライアントの Chocolatey パッケージ

Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://community.chocolatey.org/packages/incus/7.0.0

Incus クライアントの Winget パッケージ

Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://winstall.app/apps/LinuxContainers.Incus

LXD からの移行

lxd-to-incus 移行ツールを使用すると、LXD から Incus へ直接移行できます。
このツールは、LXD 4.0 LTS から最新の LXD 5.21 バグ修正リリースまで、幅広いバージョンでテストされています。

事前に、潜在的なコンフリクトを自動的にチェックし、LXD から Incus への非常に素早い移行が可能です。

asciicast

詳細はこちらをご覧ください : https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/

サポート

Incus 7.0 LTS は、合計 5 年間(2031 年 6 月まで)サポートされます。

最初の 2 年間は、バグ修正やセキュリティ修正、および軽微なユーザビリティ改善を含むポイントリリースが提供されます。最初の 2 年間が経過した後(Incus 8.0 LTSのリリース後)は、Incus 7.0 LTS は残りの 3 年間はセキュリティ修正のみのサポートに移行します。

これは、過去 10 年間、他のプロジェクト(LXCおよびLXCFS)で実施してきたサポートと同様です。

コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues

Incus 6.23 リリースのお知らせ

2026/03/27

はじめに

Incus チームは、Incus 6.23 のリリースのアナウンスができてうれしいです!

このリリースは、4 月 30 日にリリース予定の Incus 7.0 LTS に前にリリースする、最後の 6.x リリースです。

今回は非常に内容が充実したリリースです。セキュリティ問題(7asecurity による継続的な分析のおかげです)、バグ修正、パフォーマンスの改良に加えて、VM 向け OS サポートの拡張から、依存ボリュームによる、より柔軟なインスタンスストレージの追加まで、非常に優れた機能が多数含まれています。

image|690x357

いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/

Enjoy!

新たなメンテナー

今回の Incus リリースに伴い、Incus プロジェクトに 2 人の新たなメンテナーが加わりました:

  • Benjamin Somers
  • Piotr Resztak

彼らは二人とも Incus に長年貢献しており、Incus のコードベース全体にわたる様々な機能開発やバグ修正に携わってきたため、コードレビューやプロジェクトの全体的な方向性決定、メンテナンスを支援するのに十分な資格を持っています。

彼らはこれまでのメンテナーに合流します:

  • Aleksa Sarai
  • Christian Brauner
  • Free Ekanayaka
  • Serge Hallyn
  • Stéphane Graber
  • Tycho Andersen

脆弱性の修正

このリリースでは、次の 6 つの脆弱性を修正しました:

CVE-2026-33542 を除くすべての問題は、7asecurity による Incus の継続的なレビューの一環として発見されました。

LTS ブランチへのバックポートは stable-6.0 ブランチで利用可能であり、Incus LTS のパッケージをリリースしているディストリビューションには通知済みで、更新されたパッケージが公開されているか、まもなく公開される予定です。

新機能

依存ストレージボリューム

Incus は「依存」(dependent)ボリュームをサポートするようになりました。これは、インスタンスにアタッチされた通常のカスタムボリュームと実質同じですが、インスタンスに完全にひもづいているところが異なります。

これは、インスタンスを削除すると同時にボリュームも削除され、インスタンスのスナップショットを作成するとボリューム上に一致するスナップショットが作成され、インスタンスのバックアップには依存ボリュームが含まれ、リストア時は依存ボリュームもリストアされ、インスタンスを移行すると依存ボリュームも一緒に移行されることを意味します。

stgraber@castiana:~$ incus launch images:debian/13 c1
Launching c1
stgraber@castiana:~$ incus storage volume create default c1-extra dependent=true
Storage volume c1-extra created
stgraber@castiana:~$ incus config device add c1 extra disk pool=default source=c1-extra dependent=true path=/extra
Device extra added to c1
stgraber@castiana:~$ incus storage volume snapshot create default c1-extra test
Error: Direct snapshots are not allowed for dependent volumes
stgraber@castiana:~$ incus snapshot create c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------------------+------------+
| NAME |       TAKEN AT       | EXPIRES AT |
+------+----------------------+------------+
| foo  | 2026/03/27 18:54 EDT |            |
+------+----------------------+------------+
stgraber@castiana:~$ incus snapshot delete c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------+------------+
| NAME | TAKEN AT | EXPIRES AT |
+------+----------+------------+

FreeBSD VM サポート

Incus は FreeBSD 上でエージェントを実行することをサポートするようになりました。
MacOS サポートと同様に、これは Incus とエージェント間でネットワーク接続があることに依存しており、VM は Incus が管理するネットワーク上で実行されている必要があります。

イメージサーバーで、FreeBSD 14 と 15 のデイリービルドが利用できます。

stgraber@castiana:~$ incus launch images:freebsd/15.0 bsd -c security.secureboot=false --vm
Launching bsd
stgraber@castiana:~$ incus wait bsd agent && incus exec bsd sh
# freebsd-version·
15.0-RELEASE

注意: すべてのパッケージ作成者が FreeBSD エージェント用の必要なビルドレシピを含めるまでにしばらく時間がかかる場合があります。その結果、一部の Incus 6.23 システムでは、初期状態ではシェルにアクセスできないことがあります。VM をシングルユーザーモードで再起動すると、root パスワードを設定して、コンソール経由で使用できるようになります。

CLI パーサーの改良

incus コマンドのメインコマンドラインパーサーにいくつかの改良が加えられました。引数に誤りや不足があることを示すエラーメッセージが大幅に改良され、ヘルプメッセージの視認性を向上させるためにカラー出力されるようになりました。

image|690x192

ゲートウェイの DHCP アナウンスの無効化をサポート

ipv4.dhcp.gateway に、特別な値として none を設定できるようになりました。これにより、DHCP サーバーから IP アドレスのみを設定し、ルーティング情報をプッシュしないよう設定できます。

これにより、インスタンスの一部が複数のネットワークに接続されており、それらの中には外部ネットワークへのトラフィックをルーティングすることを目的としていないような場合に、特に役立ちます。

OVN ネットワークでの ipv4.dhcp.gateway のサポート

前述の機能に関連し、OVN でも、特別な値である none を含め、ipv4.dhcp.gateway もサポートするようになりました。

これにより、OVN ネットワーク上の別のインスタンスやマシンを仮想ルーターの代わりにゲートウェイとして機能させたり、OVN DHCP サービスがデフォルトルートを一切広告しないように設定したりできるようになります。

OVN NIC での io.bus サポート

OVN NIC で io.bus が使えるようになりました。

これにより、VM に USB ネットワークインターフェースを追加し、OVN ネットワークに接続できるようになりました。

VM エージェントのライフサイクルイベント

今回のリリースで、新たなライフサイクルイベントが 2 つ追加されました:

  • instance-agent-started
  • instance-agent-stopped

これらのイベントについては説明不要でしょう。イベントは、Incus VM に限定されており、Incus がシリアル接続経由でエージェント通知を受信するとすぐに発生します。

incus file pullincus storage volume file pull の再実装

この両方のコマンドのファイル取得ロジックは、一般的な cp コマンドの動作に合わせるように更新されました。

これは、特にシンボリックリンクの扱いに関係するもので、次のようなオプションをサポートするようになりました:

  • -L (ソースパス内のシンボリックリンクを常にたどる)
  • -H (コマンドラインに指定したソースパスのみシンボリックリンクをたどる)
  • -P (ソースパス内のシンボリックリンクはたどらない)

プロジェクト関連のメトリクス

プロジェクト全体の統計情報を提供するために、いくつか新しいメトリクスが追加されました。

stgraber@castiana:~/Code/lxc/incus (git:lxc/main)$ incus query /1.0/metrics | grep _project_
# HELP incus_project_resources_total Current resource count in a project.
# TYPE incus_project_resources_total gauge
incus_project_resources_total{project="default",resource="containers"} 0
incus_project_resources_total{project="default",resource="virtual-machines"} 3
incus_project_resources_total{project="default",resource="images"} 17
incus_project_resources_total{project="default",resource="profiles"} 1
incus_project_resources_total{project="default",resource="networks"} 3
incus_project_resources_total{project="default",resource="storage-volumes"} 6
incus_project_resources_total{project="demo",resource="containers"} 0
incus_project_resources_total{project="demo",resource="virtual-machines"} 0
incus_project_resources_total{project="demo",resource="images"} 0
incus_project_resources_total{project="demo",resource="profiles"} 1
incus_project_resources_total{project="demo",resource="networks"} 0
incus_project_resources_total{project="demo",resource="storage-volumes"} 0
incus_project_resources_total{project="user-1001",resource="containers"} 0
incus_project_resources_total{project="user-1001",resource="virtual-machines"} 0
incus_project_resources_total{project="user-1001",resource="images"} 2
incus_project_resources_total{project="user-1001",resource="profiles"} 1
incus_project_resources_total{project="user-1001",resource="networks"} 0
incus_project_resources_total{project="user-1001",resource="storage-volumes"} 0

インスタンスの低レベル修復 API

/1.0/instances/NAME/debug/repair に新しい API 専用のエンドポイントを導入しました。
これにより、Incus は低レベルの修復アクションをいくつか公開できるようになりました。これは、特にユーザーがインスタンスのディスク上の構成やストレージを直接確認できないような制限された環境(IncusOS はその良い例です)で実行する必要があるかもしれない修復アクションです。

現在サポートされているアクションは rebuild-config-volume 1 つだけです。クラスター化 LVM ドライバーで QCOW2 ブロックストレージを使用しているインスタンスで利用できます。名前が示すとおり、ホストの電源喪失から生じる btrfs の破損問題から構成ボリュームを完全にリビルドできます。

すべての変更点

このリリースのすべての変更のリストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • incusd/instance: Allow custom volume snapshot create/delete when attached to running instance
  • incusd/server: Allow custom volume snapshot create/delete when attached to running instance
  • shared/cliconfig: Add lock to prevent panic
  • incusd/endpoints/starttls: Report correct ServerName
  • cmd/generate-database: fix linter complaints - #2636
  • build(deps): bump actions/upload-artifact from 6 to 7
  • incusd/network/bridge: Support disabling DHCPv4 router announcement
  • incusd/network/ovn: Implement ipv4.dhcp.gateway
  • doc: Update config
  • internal/server/firewall: fix linter complaints - #2636
  • internal/server/sys: fix linter complaints - #2636
  • internal/server/project: fix linter complaints - #2636
  • internal/server/util: fix linter complaints - #2636
  • incusd/instance/lxc: Add /usr/bin/init to OCI PID1 list
  • internal/server/seccomp: fix linter complaints - #2636
  • internal/server/migration: fix linter complaints - #2636
  • internal/server/task: fix linter complaints - #2636
  • incus/usage: Add a way to show the user a parsing rule different from the one in use
  • incus/usage: Small tweaks before adding parsers
  • api: instances_debug_repair
  • shared/api: Add InstanceDebugRepairPost
  • doc/rest-api: Refresh swagger YAML
  • incusd/storage: Implement ActivateTask
  • incusd/instance/debug: Implement instance repair API
  • incus/usage: Add parsers
  • incus: Add --explain global flag
  • incus/usage: Add legacy support functions
  • incus/action: Switch to new parser
  • incus/admin_init: Switch to new parser
  • incus/admin_recover: Switch to new parser
  • incus/admin_shutdown: Switch to new parser
  • incus/admin_sql: Switch to new parser
  • incus/admin_waitready: Switch to new parser
  • incus/alias: Switch to new parser
  • incus/cluster: Switch to new parser
  • incus/cluster_group: Switch to new parser
  • incus/cluster_role: Switch to new parser
  • incus/config: Switch to new parser
  • incus/config_device: Switch to new parser
  • incus/config_metadata: Switch to new parser
  • incus/config_template: Switch to new parser
  • incus/config_trust: Switch to new parser
  • incus/console: Switch to new parser
  • incus/delete: Switch to new parser
  • incus: Switch copy and move to new parser
  • incus: Switch create and launch to new parser
  • incus/debug: Switch to new parser
  • incus/exec: Switch to new parser
  • incus/export: Switch to new parser
  • incus/file: Switch to new parser
  • incus/image: Switch to new parser
  • incus/image_alias: Switch to new parser
  • incus/import: Switch to new parser
  • incus/info: Switch to new parser
  • incus/list: Switch to new parser
  • incus/manpage: Switch to new parser
  • incus/monitor: Switch to new parser
  • incus/network: Switch to new parser
  • incus/network_acl: Switch to new parser
  • incus/network_address_set: Switch to new parser
  • incus/network_allocations: Switch to new parser
  • incus/network_forward: Switch to new parser
  • incus/network_integration: Switch to new parser
  • incus/network_load_balancer: Switch to new parser
  • incus/network_peer: Switch to new parser
  • incus/network_zone: Switch to new parser
  • incus/operation: Switch to new parser
  • incus/profile: Switch to new parser
  • incus/project: Switch to new parser
  • incus/publish: Switch to new parser
  • incus/query: Switch to new parser
  • incus/rebuild: Switch to new parser
  • incus/remote: Switch to new parser
  • incus/rename: Switch to new parser
  • incus/snapshot: Switch to new parser
  • incus/storage: Switch to new parser
  • incus/storage_bucket: Switch to new parser
  • incus/storage_volume: Switch to new parser
  • incus/top: Switch to new parser
  • incus/version: Switch to new parser
  • incus/wait: Switch to new parser
  • incus/warning: Switch to new parser
  • incus/webui: Switch to new parser
  • test: Fix incus config set tests
  • test: Fix incus profile assign tests
  • test: Fix incus storage volume attach tests
  • test: Fix incus storage volume snapshot show tests
  • test: ISO import now allows setting no volume name
  • go.mod: Make runewidth a direct dependency
  • Makefile: Properly set POT encoding
  • i18n: Update translation templates
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Russian)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • incusd/operations: Fix missing Unlock
  • doc: Fix typo
  • incusd: Fix typo
  • Translated using Weblate (Portuguese)
  • incusd/metrics: Increase node-exporter timeout to 5s
  • doc: Add preselects to wordlist
  • Translated using Weblate (Swedish)
  • incusd/instance_logs: Prevent bad values for exec-output
  • incus-migrate: Restrict OVA unpack path
  • incus/network_allocation: Fix project handling
  • incusd/network_allocations: Use canAccessNetwork
  • incusd/instance/qemu: Relax SEV check
  • incus: Fix import shadowing
  • incusd/storage_volumes: Use switch statement
  • incusd/network/common: Use FPrintf instead of WriteString
  • incusd/device/nic_physical: Drop support for connected key
  • incusd/device/nic_ovn: Add io.bus key for OVN NICs
  • doc: Update config
  • api: network_io_bus_ovn
  • shared/api: add new instance-agent events
  • internal/server: fire instance-agent events when agent status changes
  • doc: add instance-agent entries to lifecycle events
  • incus/usage: Defer remote connection
  • incusd/backup: Make extra sure backup.yaml is consistent on disk
  • incus-agent/darwin: Factor BSD-like bits out
  • incus-agent/freebsd: Add FreeBSD agent
  • incusd/instance/agent-loader: Add FreeBSD files
  • incusd/instance/qemu: Support FreeBSD
  • doc/instance/create: Add details for FreeBSD
  • doc/wordlist: Update wordlist
  • incusd/instance/lxc: Stop any forkfile instances prior to migration
  • incusd/storage/zfs: Freeze ZFS instances when using block_mode
  • incusd/storage/zfs: Don't create temporary snapshot for inactive volumes
  • incusd/storage/zfs: Don't unmap a mounted snapshot
  • incus/storage/volume: Fix image deletion
  • incusd/storage: Don't allow loop pools on IncusOS
  • Translated using Weblate (Swedish)
  • cmd/incus: fix log in sftpRecursiveMkdir
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • devcontainer: update Go version and pipx install command
  • Translated using Weblate (Swedish)
  • incus/cluster: Fix default column layout in help text
  • i18n: Update translation templates
  • incus: Fix indent on --sub-commands
  • incusd/storage: Add readonly 'dependent' volume config key
  • incusd/device: Add 'dependent' config key to disk device
  • incusd: Prevent direct snapshot creation and deletion on dependent volumes
  • incusd/storage: Create and delete dependent volume snapshots with instance snapshots
  • incusd/storage: Support restoring an instance with dependent volumes from a snapshot
  • incusd/storage/drivers: Add ability to set archive files path when exporting/importing volumes
  • incusd/backup: Add DefaultBackupPrefix constant
  • incusd/backup/config: Add DependentVolumes field to Config struct
  • incusd: Pass path info when exporting/importing custom volume
  • incusd/storage: Add support for exporting/importing dependent volumes
  • incusd/storage/drivers: Create QCOW2 config volume snapshot during unpack if needed
  • incusd/export: Add support for root-only flag
  • incusd: Pass rootOnly argument where needed
  • shared/api: Add RootOnly to InstanceBackupsPost
  • incusd/backup: Add support for dependent volumes to backup
  • incusd/db/cluster: Add root_only column to instances_backups
  • incusd/db: Read and write 'root_only' field in table operations
  • incusd/storage: Conditionally export dependent volumes
  • incusd/instance: Pass rootOnly argument where needed
  • tests: Add tests for dependent volumes
  • doc/rest-api: Refresh swagger YAML
  • doc: Update metadata
  • api: Add dependent extension
  • i18n: Update translation templates
  • Introduce goreleaser
  • incusd/daemon: Allow internal and os API during startup
  • api: Add project_metrics extension
  • incusd/metrics: Add project resource, limit and usage metrics
  • doc: Add project metrics documentation
  • incus-agent: Fix typos
  • incusd/instance/agent-loader: Make stop kill the daemon instead of the agent
  • incus-agent: Add hostname update logic for FreeBSD
  • github: Disable shellcheck for rc.d services
  • incusd/storage/drivers: Disallow for qcow2 custom block volumes
  • doc: Document restriction for qcow2 custom block volumes
  • cmd/incus: Print newly-created snapshot name if unspecified
  • i18n: Update translation templates
  • incus/info: Allow querying alternative log files
  • i18n: Update translation templates
  • incus: Add colors
  • go.mod: Make color a direct dependency
  • golangci: ignore errcheck for colored printers
  • shared/cmd: Remove non-translatable colon
  • incus: Refactor description strings
  • incus-simplestreams: Re-add colons in description headers
  • incusd: Re-add colons in description headers
  • Makefile: Add missing packages to translate
  • i18n: Update translation templates
  • incusd/storage: Remove renaming of config volume Btrfs subvolume
  • incusd/storage/drivers: Switch Btrfs subvolume naming to 'instance-' prefix
  • incusd: Add patch to rename existing Btrfs subvolumes from '-' to 'instance-'
  • incusd/device: Add support for partial device validation
  • incusd: Pass partial validation flag to device validation functions
  • incusd/instance: Pass partial validation flag to device validation functions
  • incusd/migration: Add protobuf definitions to support dependent volume migration
  • incusd/migration: Add structs and helper functions for dependent volume migration
  • incusd: Switch to common VolumeSnapshotToProtobuf
  • incusd/storage: Add support for dependent volumes migration
  • incusd/instance: Add support for dependent volumes migration
  • incusd: Add support for removing dependent volumes on source after migration
  • internal/util: Fix LogPath logic to work with logs volume
  • incusd/instances: Use internalUtil.LogPath
  • incusd/daemon_storage: Fix log directory handling after LogPath change
  • incus: Disable colors in parsing error messages
  • incus: Print a new line before printing parsing errors
  • shared/ws: Remove CheckOrigin bypass
  • incusd/s3: Use standard TLS config on S3 API calls
  • incusd/auth/oidc: Tighten cookie policy
  • incus-agent: Tighten HTTP listener configuration
  • incusd: Tighten HTTP listener configuration
  • incusd/certificates: Prevent any type change
  • tests: Confirm certificate type can't be changed
  • incus: Add no_color config key
  • incusd/seccomp: Limit the new mount API system calls we block
  • shared/validate: Allow LZ4 compression
  • incus-migrate: Fix OVA handling within os.Root
  • incus-migrate: Allow importing OVAs from URLs
  • client: Make ImageFileRequest require a ReadWriteSeeker
  • incus: Update for changes to incus.ImageFileRequest
  • incusd: Update for changes to incus.ImageFileRequest
  • client/simplestreams: Validate the full image hash
  • incusd/instance_console: Prevent symlink attacks
  • incusd/storage/s3: Don't assume backup structure
  • incusd/instance: Use restricted pongo2 parser
  • incus/remote: Actually validate the token code in incus webui
  • doc/authentication: Clarify the type of incus.allowed_subnets
  • incusd/auth/oidc: Cleanup and tighten subnet claim handling
  • incus-agent: Use same YAML version as rest of code base
  • incusd/network: Switch to backoff/v5
  • incusd/network: Switch to go-criu/v8
  • shared/logger: Implement basic slog wrapper
  • incusd/bgp: Port to go-bgp/v4
  • Makefile: Bump to Go 1.25.6
  • gomod: Update dependencies
  • github: Allow GHSA-4p9m-8gc4-rw2h (no fix available)
  • incus/usage: Fix edge case
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • doc: Remove config-options page
  • Added translation using Weblate (Greek)
  • incusd/instance/drivers: Refactor live migration - extract common logic
  • incusd/storage/drivers: Prevent setting the 'snapshots.XYZ' keys on dependent volumes
  • incusd/device: Use ValidateDependentConfigKey for dependent config validation
  • incus: Add cp-like flags to incus file pull
  • tests: Test cp-like flags in incus file pull
  • incus/storage_volume: Add cp-like flags to incus storage volume file pull
  • tests: Test cp-like flags in incus storage volume file pull
  • i18n: Update translation templates
  • incusd/instances_post: Add extra validation during backup import
  • incus/import: Fix bad rendering on error
  • incusd/device: Allow live migration of dependent disks
  • incusd/instance/drivers: Add support for live migration of dependent disks
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (French)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Spanish)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Indonesian)
  • Translated using Weblate (Tamil)
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Russian)
  • Translated using Weblate (Russian)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Greek)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (German)
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (French)
  • Translated using Weblate (Russian)
  • incusd/instance/qemu: Add image.requirements.cdrom_cloud_init key
  • doc: Update config
  • incusd/daemon_storage: Don't unmount logs path on shutdown
  • incusd/instance/lxc: Wait after thawing
  • incusd/instance/lxc: Confine credentials write to credentials directory
  • incusd/response: Make sftpResponse generic
  • incusd: Update for UpgradeResponse
  • client: Move to generic upgrader
  • Translated using Weblate (Russian)
  • Translated using Weblate (Portuguese)
  • Translated using Weblate (French)
  • incusd/storage/lvm: Use shared access mode for ISO
  • incusd/storage/truenas: Fix VM rename
  • incus-agent: Fix router to avoid global match
  • incusd/instance/lxc: Include config.json on publish
  • doc/images_create: Mention that OCI container publishing isn't recommended
  • incus: Complete all configs keys
  • incusd/instance/lxc: Relax handling of initial.
  • incusd/storage/volume/list: Fix project handling in all-projects queries
  • incusd/seccomp: Fix mknod in /dev
  • incus: Don't hang on password prompt when run from script
  • gomod: Update dependencies
  • Release Incus 6.23

ドキュメント

Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)

パッケージ

Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。

Linux 上に Incus サーバーをインストールする

Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。

https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)

Incus クライアントの Homebrew パッケージ

Homebrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。

https://formulae.brew.sh/formula/incus

Incus クライアントの Chocolatey パッケージ

Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://community.chocolatey.org/packages/incus/6.23.0

Incus クライアントの Winget パッケージ

Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://winstall.app/apps/LinuxContainers.Incus

サポート

月次のフィーチャーリリースは、次のリリースがリリースされるまでのみサポートされます。より長いサポート期間と少ない変更頻度が必要な場合、代わりに Incus 6.0 LTS の使用を検討すべきです。

コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues

Incus 6.0.6 LTS リリースのお知らせ

2026/03/16

はじめに

Incus チームは、Incus 6.0.6 のリリースのアナウンスができてうれしいです!

このリリースは、Incus 6.0 に対する 6 度目のバグ修正リリースです。Incus 6.0 は 2029 年 6 月までサポートされます。

変更点

いつもどおり、このバグ修正リリースは、安定性とセキュリティー強化にフォーカスを当てています。

データの移行や、データベースの変更を必要としない、ユーザー側の動作に予期しない変更を起こさないようなマイナーな改善もバックポートされています。

このような改善の数は、LTS ブランチ内での時間経過とともに減っていくでしょう。

このリリースのハイライトは次のとおりです:

  • VM における USB CD-ROM の処理の見直し
  • CLI でのコンソール動作の設定の拡張
  • コンテナ向けの tmpfstmpfs-overlay ディスクのサポート
  • IncusOS 管理コマンドの追加
  • Out-of-memory 優先度の制御のための設定の追加
  • バックアップをインポートする際に設定とデバイスを上書き可能に
  • database-client クラスターロールの追加
  • OVN アップリンクネットワークにおける parent=none のサポート
  • 事前に与える構成でクラスターグループが設定可能に
  • Systemd クレデンシャルメカニズムの利用の追加
  • ストレージボリュームのファイル操作
  • ISO ボリュームのエクスポート
  • BPF トークン委任のサポート
  • Incus エージェントの macOS サポート
  • VM における VirtIO サウンドカードタイプの追加
  • USB デバイスを削除せずにデタッチする機能のサポート
  • OVN network における dns.mode プロパティの追加
  • MAC アドレスパターンを設定可能に
  • IncusOS CLI の拡張
  • SELinux の初期サポート
  • Windows エージェントサポートの改良
  • リソース API にシリアルデバイス情報が含まれるように
  • OVN NIC の帯域幅制限サポート
  • ほとんどの CLI コマンドで複数オブジェクトの削除をサポート
  • PCI ファームウェアの VM へのパススルーをオフにする機能
  • CLI での PKCS12 生成
  • CLI CSV 出力における RAW 単位の出力サポート
  • クラスター化 LVM 上のボリュームで QCOW2 フォーマットを使用
  • スタンドアローンの incus cluster join コマンドの追加
  • VM エージェントの設定ファイルの追加
  • OVN での逆引き DNS レコードの生成
  • incus wait コマンドの追加
  • ネットワークインタフェースの自動 SR-IOV 選択
  • ネットワークインターフェースへの attachedconnected プロパティーの追加
  • インスタンスの並列起動
  • OIDC クレームによるネットワーク制限
  • ネットワークゾーンにおける SOA レコードのサポート強化
  • API での強制(再帰的)ファイル削除機能のサポート
  • Windows エージェントの vsock サポート
  • 直接バックアップの取得が可能に
  • ディスクのみのスナップショットリストアのサポート
  • サーバーログ専用のストレージボリュームのサポート
  • QCOW2 ストレージの改良
  • lvmcluster ストレージプールのリサイズ
  • lvmcluster でのリストアにおけるスナップショットの自動削除のサポート
  • unix-hotplug における USB コントローラーの完全なパススルーのサポート
  • 認可スクリプトレット内の証明書情報の拡張
  • VM の高速再起動
  • プロジェクトにおけるイメージサーバー URL の制限のサポート
  • incus-migrate における URL ベースのインポートのサポート
  • ACME を使用した証明書取得のマルチドメインサポート
  • SR-IOV NIC における信頼済みプロパティーの制御が可能に
  • 退避状況を追跡するためのクラスターメンバーの状態の追加
  • インスタンスの移行なしでのクラスターのリストアのサポート
  • インスタンス起動時のメトリクスの追加

このアップデートでは、次の脆弱性にも対処しています:

これらの問題はすべて、これまでの月例リリースで修正されていました。LXD 側での情報公開の遅れにより、CVE 番号が割り当てられない場合がありました。6.0.x を提供しているディストリビューションでは、これらの問題について事前に通知を受けており、6.0.6 リリースに先立って、パッチを適用した Incus 6.0.5 が利用可能になっていたはずです。

コミットのすべてのリストは次のとおりです(翻訳なし):

すべてのChangeLogを見る
  • incusd/storage: Tighten storage pool volume permissions
  • incusd/patches: Re-apply storage permissions on update
  • incusd/patches: Fix incorrect error check in permission patch
  • incusd/apparmor/lxc: Don't bother with sys/proc protections when nesting enabled
  • internal/instance: Prevent line breaks in environment variables
  • incusd/instance/lxc: Restrict path of template files and targets
  • doc: Fix build failure
  • Fix typo and add clarity for project param
  • doc: Mention nft in Docker part of firewall doc
  • doc: Tweak Docker recommendations
  • incusd/instance/qemu: Ensure cdrom is always read-only
  • incusd/instance/qmp: Use USB block transport to handle CD-ROM
  • incusd/instance/qemu: Fix USB CDROM handling
  • incusd/storage: Restrict setting description to global record
  • incusd/network: Restrict setting description to global record
  • incusd/networks: Set the description when completing the record
  • incusd/project: Don't empty global default profile on force deletion
  • doc/requirements: Document minimum OVS/OVN versions
  • lxd-to-incus: Handle typo in trigger name
  • incusd/instance_exec: Relax connection timeout
  • incusd/network: Fix logic for UsedByInstanceDevices
  • incusd/instance/utils: Don't fail instance startup due to incomplete CPU baseline
  • incusd/device/disk: Add tmpfs support for disk devices
  • incusd/auth/tls: Don't spam with warnings
  • incusd/fsmonitor: Fix handler issue when flooded
  • incusd/device/nic: Don't apply MTU if none detected
  • incusd/ip/tuntap: Fix handling of Master property
  • doc/device: Add documentation for tmpfs disk
  • tests: Add test for tmpfs disk
  • doc/installing: Update Debian install instructions
  • api: container_disk_tmpfs
  • shared/api: Add missing Description field to InstanceSnapshots
  • incusd: Correctly fill in the instance snapshot description
  • doc/rest-api: Refresh swagger YAML
  • incusd/cluster: Don't use the proxy for internal connections
  • tests: Skip XFS on ZFS with Ubuntu 24.04
  • Makefile: Bump Go to 1.24.0
  • github: Disable go-swagger on Go 1.25+
  • incusd/device/disk: Allow mounting individual files from custom volumes
  • tests: Test mounting individual files from custom volumes
  • network/incusd: Allow parent=none physical networks, bypass chassis enablement
  • incusd/cluster/evacuate: Clarify error
  • doc/instance-create: Mention TLS for the agent
  • devcontainer: Update Go to 1.24 and Debian to trixie
  • incusd/db: Add 'database-client' role
  • incusd/cluster: Add support for rebalancing nodes with 'database-client' role
  • incusd: Add logic for selecting nodes with 'database-client' role to process
  • incusd: Allow rebalancing when there are too many voters or stand-by nodes
  • docs: Fix markdown linting issues for tables
  • incusd/cluster: Rename dqlite to cowsql in header
  • incus: Add incus admin os command
  • incusd/cluster: Clarify comment for cluster rebalancing
  • incusd/instance_patch: Fix description field not respecting PATCH semantics
  • client/oci: Allow OCI image names with a pinned hash
  • doc: Add Rocky 10 Copr Repository
  • shared/tls: Remove tls.Config.Time override
  • build(deps): bump actions/setup-go from 5 to 6
  • build(deps): bump actions/labeler from 5 to 6
  • incusd/storage/lvm: Don't use pvcreate with cluster
  • incus/admin/os: Fix list commands
  • incus/admin/os: Don't require remote name in debug
  • incus/admin/os: Rename commands for consistency
  • doc: Update third party tool URLs
  • doc: Hashicorp web servers don't like Github Runners
  • incusd/api_os: Set X-IncusOS-Proxy prefix
  • incus/export: Fail fast if target already exists
  • tests: Cleanup backup files after use
  • docs: Clarify clustered storage pools
  • api: instance_limits_oom
  • incusd/instance/validate: Add OOM priority validation
  • incusd/instance/config: Add limits.memory.oom_priority config key
  • doc: Update metadata
  • incusd/instance/driver_common: Add setOOMPriority shared method
  • incusd/instance/driver_lxc: Apply OOM priority to containers
  • incusd/instance/driver_qemu: Apply OOM priority to VMs
  • incusd/project/permissions: Forbid limits.memory.oom_priority in restricted projects
  • api: backup_override_config
  • client: Allow config/device override on backup import
  • incus/import: Add override config and device
  • incusd/instances/import: Add device and config overrides
  • incusd/network/ovn: Support for directional port groups
  • incusd/network/acl: Support for directional port groups
  • incusd/patches: Migrate port groups to directional
  • incusd/network/ovn: Fix behavior when ACL name is used as match source
  • incusd/network/acl: Fix behavior when ACL name is used as match source
  • internal/incusos: Introduce IncusOS API client
  • incusd/sys/os: Make use of IncusOS client
  • incusd: Update for OS struct change
  • incusd/networks: Use IncusOS API client
  • incusd/storage: Add IncusOS service checks
  • incusd/network: Add IncusOS service checks
  • incusd/config: Prevent unsetting core.https_address on IncusOS
  • incusd: Consistent spelling of IncusOS
  • incusd/certificates: Add check for IncusOS
  • incusd/db: Add UpdateStoragePoolConfig
  • incusd/storage/drivers: Add SameSource field to Info struct
  • incusd: Update configs of all members when SameSource is true
  • api: Add ConfigMap type to better support unmarshaling numbers and bools to map[string]string
  • api: Use ConfigMap type for map[string]string
  • api: Handle pre initialized targed ConfigMap (default values)
  • filter: Add support for api.ConfigMap
  • server: Fix test with api.ConfigMap
  • golangci-lint: Do not require period in Example comments
  • incusd/storage: Fix unmount calls for ISO volumes
  • incusd/storage/lvm: Fix locking changes
  • incusd/instance/qemu: Re-enable vsock on Windows
  • shared/idmap: Skip xattrs on EINVAL
  • Makefile: Bump minimal Go to 1.24.7 and remove pins
  • Makefile: Use latest go-swagger (for Go 1.25 support)
  • Revert "github: Disable go-swagger on Go 1.25+"
  • incusd/network/driver: Add support for network tunnels to OVN networks
  • incusd/networks: Validate config keys only for ClientTypeNormal requests
  • api: Add network_ovn_tunnels extension
  • doc: Update config
  • client/oci: Set the umoci logger on init
  • shared/api: Add missing YAML tag
  • api: init_preseed_cluster_groups
  • shared/api: Add support for cluster group preseeding
  • client: Add support for cluster group preseeding
  • doc/rest-api: Refresh swagger YAML
  • client: Implement IdenticalCertificate
  • incusd/cluster: Set IdenticalCertificate for intra-cluster connections
  • incusd/cluster: Rework tlsTransport to handle cluster certificate validation
  • incusd/cluster: Make use of updated tlsTransport
  • doc: Add description for database-client role
  • incusd/network/driver: Add support for dns.mode to OVN network
  • incusd/network/ovn: Destroy DNS entry in CleanupLogicalSwitchPort
  • doc: Update config
  • doc: Change command to snapshot delete
  • incusd: Use 'Patch' method for PATCH requests
  • internal/server: Add tables on sql dump
  • incusd: Add tables on sql dump
  • incus/admin/sql: Add tables on sql dump
  • incus/admin/os: Update for current API prefix
  • Fixed grammar in README.md
  • incus: Add a date format with second granularity
  • incus/admin/os: Improve debug log command
  • incusd/cluster: Don't use proxy when joining
  • incusd/device/usb: Add attached configuration key
  • doc: Update metadata
  • doc: Remove outdated warning
  • incusd/device/disk: Remove dead code
  • api: usb_attached
  • incusd/storage: Generalize InstanceTarWriter
  • incusd/instancewriter: Add raw instance writer
  • incusd/storage: Add ISO volume export
  • incus: Handle ISO export
  • test: Incus now allows ISO export
  • incusd/storage/generic: Use proper custom volume size for backup if possible
  • api: backup_iso
  • incusd/metrics: Always include internal metrics
  • incusd/auth: log the error if getting the oidc provider fails
  • Fix file push cmd help typo
  • incusd/instance/qemu: Remove attached attribute handling for disks
  • incusd/device/disk: Handle attached attribute early
  • incusd/server/drivers: Add gendoc for storage config keys
  • doc: Include doc for storage configuration from config_options.txt file
  • doc: Update metadata
  • incusd/storage/lvm: Clarify doc strings
  • incusd/storage: Don't skip zeroes on qcow2 unpack to LVM
  • incusd/device: Fix gofumpt
  • doc: Update config
  • incusd/network/ovn: Check the correct config on uplink validation
  • incusd/instance/qemu: Add support for SPICE audio
  • incusd/console: Close remote connection on console disconnect
  • shared/resources: Fix caching mechanism
  • shared/validate: Add IsBase64
  • incusd/instance/config: Add systemd.credential. and systemd.credential-binary.
  • incusd/instance/qemu: Add support for systemd credentials through SMBIOS-11
  • incusd/instance/lxc: Add support for systemd credentials through CREDENTIALS_DIRECTORY
  • incusd/instance/lxc: Allow live-updating systemd credentials
  • doc: Update configs
  • incus-agent: Pass more information to osUmount
  • api: instance_systemd_credentials
  • doc/wordlist: Update wordlist
  • test: Add tests for systemd keys
  • incusd/cluster: Disable proxy during cluster join
  • agent/darwin: Initial darwin agent implementation
  • doc: Kubernetes and ClusterAPI integration
  • doc: Add API to wordlist
  • internal/server/network: Update libovsdb import path
  • Makefile: Update libovsdb command URL
  • internal/server/network/ovn/schema: Update generated schema
  • incus-agent/darwin: Split non-darwin-specific logic
  • incus-agent/windows: Feature parity with Darwin
  • test/mini-oidc: Clarify usage in README.md
  • test/mini-oidc: Extract logic from main
  • test/mini-oidc: Add RunTest for usage in tests
  • test/mini-oidc: Move user file to global var
  • test/mini-oidc: Make linter happy
  • test/mini-oidc: Make poll interval configurable in tests
  • test/mini-oidc: Allow setting expiration for tokens
  • test/mini-oidc: Make linter happy
  • test/mini-oidc: Fix missing support for device control flow
  • incus/admin/os: Add system list command
  • shared/cmd: Move from internal/cmd
  • incus: Use cli.CheckArgs
  • cmd: Update for shared/cmd
  • incus-simplestreams: Use cli.CheckArgs
  • shared/cmd: Add CheckArgs
  • shared/cmd: Add Usage
  • incus: Use cli.Usage
  • shared/cmd: Add TextEditor
  • cmd: Use cli.TextEditor
  • incus: Switch to shared IncusOS CLI
  • incusd: Use ExtendMetadata when possible
  • incusd/instance/qmp: Better protect against write after close
  • doc/rest-api: Refresh swagger YAML
  • shared/api: Add 'UsedBy' field to 'ClusterGroup' struct
  • incusd/db: Add 'GetClusterGroupMemberInstances' and check cluster group member usage
  • incusd: Check if cluster group is in use
  • Makefile: Bump Go to 1.25.0
  • gomod: Update dependencies
  • api: Add cluster_group_usedby extension
  • doc/rest-api: Refresh swagger YAML
  • api: Add bpf_token_delegation extension
  • incusd/main_forkbpf: Create forkbpf helper for bpf token delegation.
  • incusd/instance: Add bpf token delegation feature.
  • doc: Update configs
  • doc: Add documentation for bpf token delegation
  • incusd/project: Require lowlevel access for bpffs options
  • tests: Add test for bpf token delegation
  • codespell: Allow attachs (bpffs mount option)
  • incusd/instance: Add GuestOS
  • incusd/device/disk: Rework OS and architecture detection
  • incus-agent/darwin: Implement interactive console
  • incusd/instance/qemu: Add Darwin agent files
  • incus-agent/darwin: Fix typo in comment
  • doc/instance/create: Add details for macOS
  • incusd/network: Check if target_address in forward is a broadcast address of the networks subnet
  • incusd/network: Check if target_address in forward is the networkID of the networks subnet
  • incusd/network: Add doc comment to function; Rename variable to avoid shadowing
  • incusd/network: Make linter happy
  • make: check if run-parts is installed
  • incusd/instance/lxc: Fix handling of credentials on existing instances
  • incusd/instance/lxc: Don't apply credentials update on stopped containers
  • incusd/auth: Reorder 'EntitlementCanAccessFiles' and 'EntitlementCanConnectSFTP' for clarity
  • shared/api: Add lifecycle events for storage volume files management
  • incusd/lifecycle: Add lifecycle events for storage volume files management
  • incusd/storage: Add support for creating SFTP server for storage volume using forkfile
  • incusd: Extract helper function for reuse by storage volumes
  • incusd: Add support for file management in storage volumes
  • incus/file: Extract helper function for reuse by storage volumes
  • incus/storage_volumes: Add support for file management in storage volumes
  • client: Add support for file management in storage volumes
  • tests: Add tests for storage volume files manipulation
  • api: Add 'file_storage_volume' extension
  • doc/rest-api: Refresh swagger YAML
  • shared/osarch: Add aliases for the various x86_64 versions
  • incus/export: Quiesce output when writing to stdout
  • build(deps): bump actions/upload-artifact from 4 to 5
  • server/operations: Remove project name from operations executed on other nodes
  • incusd: Remove remaining project remnants from operations
  • shared/validate: Add IsMACPattern
  • incusd/config: Add MAC address pattern key
  • incusd/project: Add MAC address pattern key
  • incus: Support remotes for "admin os" commands
  • doc: Update configs
  • incusd/instance: Allow customizing MAC address patterns
  • incusd/device: Allow customizing MAC address patterns
  • incusd/network: Allow customizing MAC address patterns
  • api: network_hwaddr_pattern
  • test: Add network.hwaddr_pattern tests
  • incus/file/pull: Respect target name for symlinks
  • incus/file/pull: Allow reading symlink content to stdout
  • incus/file/push: Keep remote owner/mode when present and not overriden
  • incusd/network/ovn: Fix failure on device stop for networks without uplink
  • incusd/network/common: Handle parent field in State
  • doc/clustering: Cover CPU baseline calculation
  • doc/instances: clarify VM definition with abbreviation
  • incusd/network/macvlan: Bring up parent interface and check existence on update
  • incusd/network/macvlan: Please the static analyzer
  • incusd/storage/drivers/lvmcluster: Restrict snapshotting
  • doc/environment: Add INCUS_SECURITY_SELINUX
  • incusd/db/warnings: Add SELinuxNotAvailable
  • incusd/sys: Add SELinux detection
  • incusd/instance/lxc: Set SELinux context
  • doc: Add SELinux to the word list
  • incusd/network/ovn: Tweak port removal logic
  • github: Build the agent on MacOS
  • incusd/instance/qemu: Disable virtio-snd on Windows
  • incusd/instance/qmp: Remove double line break
  • incusd/instance/qmp: Don't log serial port changes
  • incusd/device/disk: Skip VirtioFS Posix ACLs on Windows
  • incusd/selinux: Add basic refpolicy support
  • client: Add GetEventsByType and GetEventsAllProjectsByType
  • incusd/lifecycle: Fix project prefix in volume name
  • incusd/cluster: Use server name instead of IP
  • cmd/generate-database/db: Fix create/update with composite keys
  • incusd/storage_volumes: Better handle bad patterns
  • client: Omit trailing ? for /events without query parameters
  • incusd/acme: Handle HTTPS proxies
  • incusd: Fix lifecycle events being emited on pending entities
  • incusd/network: Fix vlan/parent modification on physical uplink
  • incus: Include admin os command on non-Linux pltforms
  • incus/list: Add option for raw units in CSV output
  • incusd/storage: Fix sparse writer performance
  • incus-migrate: Write in 4MB chunks
  • incus-migrate: Strict error checking
  • incus/instance: Add missing godocs
  • incusd: only apply qemu rtc adjustments if it is configured
  • incusd/instance/qemu: Fix macOS agent
  • incusd/instance/qemu: Properly parse dashed disk names when detaching
  • incusd/api: Refresh OIDC on changes to oidc.scopes
  • incus/admin/sql: Allow remote interactions
  • incus/admin/recover: Allow remote interactions
  • incusd: Allow some remote internal API interactions
  • incusd/daemon: Setup /var/lib/incus/devices as a tmpfs
  • incusd/daemon: Remove nodev check now that we control that path
  • cmd/incus-agent: address errcheck lint issue
  • cmd/incus-agent: address import shadowing
  • cmd/incus-agent: address os.Exit being called outside of main and init
  • cmd/incus-agent: refactor DevIncusAPIGET to use switch
  • cmd/incus-agent: silence defer being use in loop
  • cmd/incus-agent: address if flow in Connect
  • cmd/incus-agent: silence warning about break in select in execWs.Do
  • incus/util: #2636 fix linter complaints in internal/util
  • doc: Remove mentions of IRC
  • Added Windows agent install scripts.
  • doc/howto/instances: Update Windows agent instructions
  • doc/image_format: Tweak wording
  • internal/linux: Add IoctlBlkZname
  • incusd/storage/zfs: Rework zvol resolution logic
  • Revert "tests: Skip XFS on ZFS with Ubuntu 24.04"
  • incus-agent: Fix gofumpt
  • lint: Make govulncheck non-fatal
  • incusd/device/unix_hotplug: Prevent duplicate uevent injection
  • incus/storage_volume: Fix determination of target path
  • cmd/incus-simplestream: output of golangci-lint run --fix for cmd/incus-simplestream
  • cmd/incus-user: refactor to not use os.Exit and instead close listener
  • cmd/lxc-to-incus: address golangci-lint issues
  • cmd/lxc-to-incus: return error instead of using os.Exit
  • cmd/lxc-to-incus: simplify logic to check mount validity
  • cmd/lxc-to-incus: simplify logic to check mount validity
  • cmd/lxc-to-incus: rename argument in protoSendError to avoid package shadowing
  • cmd/lxd-to-incus: address golangci-lint issues
  • cmd/lxd-to-incus: do not use os.Exit outside of main
  • build(deps): bump actions/checkout from 5 to 6
  • shared/resources: Skip broken udev symlinks
  • cmd/generate-config: address golangci-lint issues
  • incusd/network/zone: Support setting top level records
  • cmd/incusd: recursive instance GET returns InstanceFull
  • doc/rest-api: Refresh swagger YAML
  • incus/remote: Add support for PFX generation
  • incus/file: Fix crash on file mount
  • incusd/auth/openfga: Add missing storage volume entitlements
  • incusd/auth/openfga: Rebuild model
  • incusd/patches: Upgrade OpenFGA model
  • shared/api: Remove non-existent field from StoragePoolBucketBackup
  • incusd/backup/bucket: Remove unused field
  • shared/api: Add missing CreatedAt on bucket backup
  • incusd/storage/bucket: Fix backup listing endpoint
  • api: storage_volume_full
  • api: storage_bucket_full
  • shared/api: Add StorageVolumeFull
  • shared/api: Add StorageBucketFull
  • client: Add GetStoragePoolBucketFull and GetStoragePoolVolumeFull
  • client: Add full variants of volume and bucket list functions
  • incusd/storage_buckets: Add recursion=1 for storage bucket get
  • incusd/storage_volumes: Add recursion=1 for storage volume get
  • incusd/storage_volumes: Add recursion=2 for storage volumes get
  • incusd/storage_buckets: Add recursion=2 for storage buckets get
  • doc/rest-api: Refresh swsagger YAML
  • tests: Fix snapshot list testing
  • incus: Add support for bulk deletion to all objects
  • api: device_pci_firmware
  • incusd/device/pci: Add firmware option
  • incusd/instance/qemu: Add rom-bar to PCI template
  • incusd/instance/qemu: Pass firmware option to qemuPCIPhysical
  • doc: Update configs
  • incusd/instance/qemu: Update tests
  • api: resources_serial
  • shared/api: Add Serial device resource types
  • shared/resources: Add serial device resource support
  • shared/resources: Add test cases for serial device
  • incus/info: Add Serial devices to --resources
  • shares/resources/usbid: Only load the database once
  • doc/rest-api: Refresh swagger YAML
  • tests: Re-structure test suite for better parallel runs
  • github: Tweak test matrix
  • test/metrics: Fix missing cleanup
  • tests/tls_restrictions: Query specific certificate
  • tests/remote: Clear the trusted certificates at beginning of test
  • tests/includes: Fix ensure_has_localhost_remote to clear any existing remote
  • api: ovn_nic_limits
  • incus/server/network/ovn/nb: Add QoS function
  • incus/server/network/ovn: Add limits support
  • incus/server/device/nic_ovn: Add limits support
  • doc: Update configs
  • incusd/instances: Use /tmp for temporary screenshot storage
  • client/oci: Use SHA256 of combined layers as digest
  • shared/ioprogress: Cap download speed to file size
  • incusd/network/acl: Only refresh bridge network rules if ACL is directly used
  • incusd/device/pci: Don't attempt to bind to current driver
  • incusd/instance/lxc: Tweak seccomp category
  • api: More precise name for test
  • api: Add DevicesMap typ to better support unmarshaling
  • api: Use DevicesMap type for map[string]map[string]string
  • shared/archive: Fix crash on nil tracker
  • agent-loader/install-linux.sh Fix SELinux issue with agent run path
  • incusd/device/nic: Fix link to instances-limit-units
  • doc: fix instances-limit-units reference links
  • Added default environment variables for the Windows agent.
  • instance/drivers/driver_common: Fix cat order bug in selinuxContext()
  • doc/rest-api: Refresh swagger YAML
  • gomod: Update dependencies
  • incusd/instance/lxc: Generate a stable MAC for managed physical bridged networks
  • Added new Windows environment variable 'SystemDrive'
  • incus/create: Allow reading Ephemeral flag from stdin
  • incusd/device/nic_physical: Fix VLAN for VMs
  • incusd/network/bridge: Don't listen for incoming RAs
  • incusd/network/zone: Allow trailing dot in NS records
  • incusd/device/physical: Allow live-migration of bridged physical NICs
  • shared/tls: Move ACME challenge to shared/tls
  • internal/server/acme: Update certificate renewal call
  • incusd/instance/qemu: Don't attempt agent connections on frozen VMs
  • incusd/instance/qemu: Rework state reporting
  • incusd/operations: Return a copy of the metadata to avoid concurrent access
  • Attempt to make the Incus Agent on Windows better integrated.
  • incusd/instance/qemu: Fix regression in reported state
  • build(deps): bump actions/upload-artifact from 5 to 6
  • incus/io: #2636 fix linter complaints in internal/io
  • generate-database: Allow overwriting the target column for a join
  • incusd/storage_volumes: Fix state handling in getVolumeFull
  • internal/jmap: Refactor Map methods and add comprehensive tests
  • shared/tls: implement Happy Eyeballs (RFC 8305) in RFC3493Dialer
  • incusd/devices/tpm: Make incompatible with live-migration
  • incus/util: #2636 fix linter complaints in internal/filter
  • incus/network_load_balancer: Fix typo in cmd info description
  • api: Add storage_lvmcluster_qcow2 extension
  • incusd/storage/drivers: Add utils for qcow2 manipulation
  • incusd/instance/drivers: Add qcow2 block device utility functions
  • incusd/storage/drivers: Add 'block.type' config and additional validation checks
  • incusd/storage: Implement the creation of qcow2 formatted volumes when on lvmcluster
  • incusd/instance/drivers/qmp: Add QueryNamedBlockNodes and ChangeBackingFile
  • incusd/storage/drivers: Add support for activating and deactivating qcow2-formatted volumes
  • incusd/storage/drivers: Add support for the qcow2 config filesystem snapshots
  • incusd/storage/drivers: Add support for creating and renaming qcow2 volume snapshots
  • incusd/storage/drivers: Add GetQcow2BackingFilePath and Qcow2DeletionCleanup
  • incusd/device/config: Add 'BackingPath' to track backing chain for qcow2 volumes
  • incusd/storage: Add 'BackingPath' to track backing chain for qcow2 volumes
  • incusd/storage: Add support for creating, renaming, restoring and deleting qcow2 instance volumes
  • incusd/instance/drivers: Add support for running instances from a backing chain
  • incusd/instance: Add support for creating/deleting qcow2 snapshots while instance is running
  • incusd/storage/drivers: Show config filesystem only for FS volumes
  • incusd/storage/lvmcluster: Fix activation for containers
  • incusd/storage/lvm: Fix handling of stripe size config
  • incusd/storage/lvmcluster: Set block.filesystem to btrfs
  • incusd/storage: Don't add new volume options on snapshot
  • incusd/storage/drivers/types: Fix gofumpt
  • doc: Update metadata
  • incusd/cluster: Add missing project handling to ConnectIfVolumeIsRemote
  • incusd/storage_volumes: Handle remote volumes in recursion=2
  • incusd/storage/lvm: Fix incorrect activation mode
  • incus/storage: Take project into account during qcow2 operation
  • shared/api: add comprehensive unit tests for URL builder
  • incus/admin/init: Prepare code for adding initialized server to cluster
  • incus/cluster: Add 'cluster join' command
  • incus-agent: Code cleanup
  • incus-agent: Add OS config path
  • incus-agent: Add system configuration support
  • incus-agent: Add feature checks
  • doc/instances: Cover incus-agent configuration
  • doc/bpf-tokens: Fix markdown
  • incus/file: Improve error messages
  • doc/network/firewall: Remove warning against IP forward and Docker
  • incusd/storage: Generate a clean backup.yaml after a backup is generated
  • incusd/api_buckets: Provide fastpath for miniod access
  • incusd: Move ReverseDNS to util
  • incusd/network/ovn: Set PTR records
  • doc/openfga: Clarify required config keys
  • doc/openfga: Improve required config keys
  • incusd/network/ovn: Drop now obsolete DNS check
  • cmd/incus-user: Don't reset setup if user has access
  • api: oidc_allowed_subnets
  • incusd/auth/oidc: Introduce incus.restricted_subnets
  • doc/authentication: Mentioned incus.allowed_subnets claim
  • internal/instance: Tweak handling of boot.autostart
  • doc: Update configs
  • incusd/instances: Support last-state value for boot.autostart
  • incusd/network/physical: Allow parent re-use for bridges
  • incusd/network/physical: Allow vlan.tagged
  • incusd/device: Add vlan.tagged to physical NICs
  • doc: Update configs
  • incusd/device/nic_physical: Fix internal bridge handling
  • incusd: Add X-Incus-force header for file operations
  • doc/rest-api: Refresh swagger YAML
  • api: file_delete_force
  • doc/network_ovn: Add note about advanced external_interfaces syntax
  • incusd: Parallelize instance startup on daemon start
  • incusd/instance/drivers: Add size parameter to UpdateBlockSize method
  • incusd/storage/drivers: Export roundAbove function
  • incusd/storage/drivers: Add Qcow2Resize and export isQcow2Block function
  • incusd/storage: Add support for resizing qcow2 volumes
  • generate-database: Respect "primary" config for Identifier in mappings
  • Added a few more environment variables. PATHEXT and COMPUTERNAME were needed for 'shutdown.exe'. Meanwhile, I've connected as SYSTEM with PsExec to show the environment variables by default and added them.
  • internal/server/endpoints/listeners: Use new proxyproto package
  • generate-database: fix import type for association tables
  • incusd/instance/drivers: Fix adding disk with a device name longer than 31 bytes
  • incusd/instance/drivers: Add tests for hashName
  • shared/validate: Don't allow $ in API names
  • shared/util: Add SingleQuote
  • incusd/instance/lxc: Use SingleQuote instead of Quote
  • incusd/device/disk: Use isRequired
  • incusd/device/disk: Move check for attached property
  • incusd/device/disk: Handle required=false on custom volumes
  • incusd/api_internal: Block instance hooks until daemon is ready
  • incusd/instance_console: Align cleanup logic with exec
  • incusd: pass firmware opt from device/pci to instance/qemu
  • incusd/device: Move reusable code into getNumaNodeSet helper
  • incusd/network: Add SRIOVCountFreeVirtualFunctions
  • incusd/device: Add support for nic SR-IOV selection by vendorid, productid and pci
  • doc: Update configs
  • api: Add 'nic_sriov_select_ext' extension
  • incusd/storage/drivers: Allow setting 'vg_name' for non-clustered LVM during init
  • incus: Implement "incus wait"
  • incusd/instance/drivers: Rename hashName to hashValue
  • incusd/instance/drivers: Hash serial value if it exceeds the maximum length
  • doc: Update configs
  • incusd/network/bridge: Skip dnsmasq on non-routed IPv6
  • Update Rocky Linux instructions
  • incusd/network/zone: Use the standard SOA format
  • incusd/network/zone: Allow setting DNS admin contact
  • doc: Update configs
  • api: network_zones_dns_contact
  • incusd/network: Remove automatic increasing of SR-IOV VF count
  • doc: Add warning about long device names
  • incusd/device/nic: Add attached configuration key
  • incusd/device/nic: Add connected configuration key
  • incusd/instance/qemu: Properly update detached devices
  • incusd/instance/lxc: Properly update detached devices
  • incusd/device/nic_ovn: Factor common options
  • incusd/device/nic_p2p: Fix boot.priority spelling in gendoc
  • incusd/instance/qemu: Implement NIC connected config key
  • incusd/ip/link: Relax parent detection logic
  • incusd/instance/lxc: Implement NIC connected config key
  • api: nic_attached_connected
  • doc: Update config
  • incusd/instance/lxc: Restrict path of template files and targets
  • tests: Add NIC tests for attached and connected keys
  • mini-oidc: Update for newer Zitadel
  • incusd/cluster: Skip first re-balance
  • incusd/auth/tls: Fix handling of GetPermissionChecker
  • incusd/instance: Report clear error on concurent migrations
  • incusd/device/nic: Fix connected logic for non-NIC QEMU devices
  • doc: Update config
  • incusd/instance/qmp: Prevent setting link up at initialization
  • incusd/instance/qemu: Properly initialize connected status
  • incusd/storage/zfs: Set IncusOS storage usage property
  • Fix typo: Supported cConditions to Supported Conditions
  • shared/util: Fix SingleQuote to actually quote
  • cmd/incus: Fix get-client-certificate ignoring per-remote certs
  • incusd/storage/lvm: Move IncusOS check to pool creation
  • incus-migrate: Allow running as non-root
  • incus-migrate: Add URL imports
  • doc: Ignore broken links on Alpine gitlab
  • doc: Ignore broken links on docbook website
  • github: Deal with new Github images
  • tests: Fix SR-IOV attached key test
  • incusd/device/nic_physical: Allow migration of managed devices
  • shared/cliconfig: Don't pass scheme to OCI creds helper
  • incusd/cluster: Allow restoring a cluster without its instances
  • incus/cluster: Add --action for restore
  • internal/instance; Correct doc for boot.autostart.priority
  • doc: Update config
  • incusd/cluster: Restrict join token to database servers
  • incusd/storage/lvm: Prevent use of lvmcluster with loop files
  • incusd/operations: Prevent concurrent access to metadata
  • incusd/storage: Add support for renaming qcow2 volumes
  • incusd/storage/drivers: Load NBD module for lvmcluster
  • incusd/instance/drivers: Pass information about whether migration is live
  • incusd/storage: Add support for qcow2 volume migration
  • incusd/storage: Add snapshot mount paths parameter to the task function
  • incusd/device/nic_riov: Retry MAC setting logic
  • doc/howto/instances: Mention keeping agent drive attached
  • incusd/instances/agent-loader: Silence semanage
  • incusd/cluster: Also transfer public key on join
  • doc/cloud-init: Fix bad link
  • incusd: Search OVS switch external_interfaces
  • api: nic_sriov_security_trusted
  • incusd/ip/link: Add support for virtual function trusted property
  • incusd/device/nic: Add security.trusted configuration key
  • internal/instance: Add volatile.<name>.last_state.vf.trusted
  • tests: Add tests for SR-IOV security.trusted property
  • doc: Update config for SR-IOV security.trusted
  • doc/backup: Fix MarkdownLint warnings
  • incusd/storage_volumes_snapshot: Treat pongo templates as unique
  • incusd/instance/drivers: Propagate error when adding qcow2 backing block device
  • incusd/instancewriter: Make signature more generic
  • client/instances: Add direct backup capability
  • client/storage_volumes: Add direct backup capability
  • client/storage_buckets: Add direct backup capability
  • incusd/response: Add pipe response
  • incus/export: Add direct backup capability
  • incus/storage_volume: Add direct backup capability
  • incus/storage_bucket: Add direct backup capability
  • incusd/backup: Refactor S3 upload
  • incusd/instance_backup: Add direct backup capability
  • incusd/storage_volumes_backup: Add direct backup capability
  • incusd/storage_buckets_backup: Add direct backup capability
  • doc/rest-api: Refresh swagger YAML
  • api: direct_backup
  • incusd/instance/qemu: gofumpt
  • incusd/device/disk: Add IsSpecialDisk
  • incusd/instance/lxc: Skip metrics on special disks
  • github: Resolve /dev/scratch symlink when consumed
  • api: instance_snapshot_disk_only_restore
  • shared/api: Add DiskOnly option in InstancePut
  • incusd/instance_put: Add DiskOnly option and check for mismatching options
  • incusd/instance/qemu: Implement disk-only restore logic in qemu driver
  • incusd/instance/lxc: Implement disk-only restore logic in lxc driver
  • incusd/instance: Adjust interface for diskOnly parameter
  • doc/rest-api: Refresh swagger YAML
  • client: Check for diskOnly api extension when invoked
  • incus/snapshot: Add disk only restore
  • incusd/storage: Prevent moving shared storage volumes
  • incus/image: Add generate-metadata
  • doc: Update incus-migrate documentation
  • incusd: Validate that instance can be migrated
  • incusd/instance/drivers: Add writable argument to NBDBlockExportAdd
  • incusd/instance/drivers/qmp: Add NBDUnixServerStart
  • incusd/instance: Add ExportQcow2Disk
  • incusd/storage: Support live migration of qcow2 volumes
  • doc: Add information about lvmcluster limitations
  • incusd/instance: Add QCOW2 live migration support for instances with snapshots
  • incusd/storage: Add QCOW2 live migration support for instances with snapshots
  • incusd: Remove ensureMigratable as checks are no longer valid
  • doc: Remove outdated doc about live QCOW2 migration limitation
  • incusd/instance/drivers: Propagate live migration information
  • incusd/storage: Skip final filesystem sync for VMs during migration
  • doc/requirements: Bump minimal requirements
  • Validate requested storage pool during instance migration
  • incusd/instance/qemu: Rename onDisconnectEvent to initialized
  • incusd/instance/qemu: Add EventVMReset
  • incusd/instance/qemu: Use standard QEMU actions and catch in handler
  • internal/instance: Add volatile.vm.needs_reset
  • incusd/instance/qemu: Implement fast reboot
  • doc: Update config
  • incusd/instance/qmp: Fix cross-server live-migration
  • incusd/instance/qemu: Report QEMU error on VM restore
  • incus-migrate: Fix URL detection
  • incusd/instance/drivers: Remove instance volume on revert after failed live migration
  • incusd/instance/drivers: Propagate target migration failure to source using context cancellation
  • incusd/storage: Prevent concurrent QCOW2 snapshot deletions
  • incusd/instance/qemu: Require full restart after eject
  • incusd/storage: Prevent concurrent snapshot deletions
  • incus: Refactor CLI usage strings
  • incusd/instance/qemu: Force a real reboot after applying templates
  • incusd/storage/ceph: Use the standard error for unsupported disk usage
  • api: unix_hotplug_pci
  • incusd/devices/unix_hotplug: Allow selecting by PCI bus
  • doc: Update config
  • incusd/instance/qmp: Fix gofumpt
  • incusd/storage/qcow2: Wait for qemu-nbd to be ready
  • incusd/instance/drivers: Fix backing block device ordering when fetching from QEMU
  • internal/server/instance/drivers: Get vsock client for Windows
  • cmd/incus-agent: Add serial communication for Windows
  • incusd/storage/drivers: Delete mount paths when deleting snapshots
  • cmd/incus-agent: Only use TCP agent for macOS
  • cmd/incus-agent: Use vsock for Windows agent
  • incusd/fsmonitor: Read multiple fanotify events
  • doc/instance_units: Mention common units
  • incusd/instance/qemu: Clarify CPU hotplug error
  • incusd/instance/qmp: Add MemoryConfiguration
  • incusd/instance/qemu: Improve error message on memory hotplug
  • doc/instance: Cover CPU and memory hotplug limits
  • incusd/storage/drivers: Allow creation of qcow2 custom volumes
  • incusd/instance/drivers: Support detaching qcow2 custom volumes
  • incusd/storage: Add snapshot management for qcow2 custom volumes
  • incusd/device: Pass backing path information for disk devices
  • incusd/storage: Block custom volume snapshot create/delete when attached to an instance
  • api: cluster_evacuating_restoring
  • incusd/cluster: Implement evacuating and restoring states
  • shared/api: Align JSON and YAML behavior for preseeding
  • client: Update for InitPreseed change
  • incus: Update for InitPreseed change
  • incusd: Update for InitPreseed change
  • doc/rest-api: Refresh swagger YAML
  • incusd/device/nic_ovn: Fix nested NIC state
  • incusd/metrics: Implement incus_boot_time_seconds and incus_time_seconds
  • incus-agent: Implement incus_boot_time_seconds and incus_time_seconds
  • incusd/instance/lxc: Implement time metrics
  • doc: Add description of incus_boot_time_seconds and incus_time_seconds
  • shared/validate: Allow a specific set of compressors
  • incusd: Validate CompressionAlgorithm everywhere it's received
  • tests: Check compression algorithm validation
  • incusd/project: Prevent restricted projects from pulling data
  • api: projects_restricted_image_servers
  • incusd/project: Introduce restricted.images.servers
  • doc: Update config
  • incusd/project: Implement image server restrictions
  • incusd/images: Check project restrictions on image download
  • incusd/db: Turn NodeSpecificStorageConfig into driver aware function
  • incusd: Switch usages to NodeSpecificStorageConfig function
  • incusd/storage: Add support for expanding lvmcluster storage pool
  • incusd/storage: Add DisallowedStorageConfigForCreation and ClusterWideStorageConfig
  • incusd: Add additional checks fro re-sizing lvmcluster pool
  • api: Add storage_lvmcluster_size extension
  • doc: Update config
  • incusd/certificates: Store full API objects in the cache
  • incusd/project: Update permissions test for new certificate cache
  • incusd/certificate: Allow to retrieve a single API certificate
  • incusd/auth/scriptlet: Expose API certificate and request TLS chain to the scriptlet
  • doc/authorization: Document new scriptlet details fields
  • api: authorization_scriptlet_cert
  • incusd/images: Simplify image URL check
  • api: lvmcluster_remove_snapshots
  • incusd/storage/drivers: Add 'lvmcluster.remove_snapshots' config key
  • incusd/storage: Handle snapshot restore when 'lvmcluster.remove_snapshots' is set
  • doc: Update config
  • incus: Add validation before starting sshSFTPserver
  • tests: Add validation for sftp checks
  • incusd: Pass volume type to daemonStorageValidate
  • api: daemon_storage_logs
  • incusd/config: Add storage logs_volume option
  • incusd/daemon_storage: Add storage operation for 'storage.logs_volume'
  • incusd/api: Add validation and management of 'storage.logs_volume'
  • incusd/instance/common: Use logs folder when configured
  • incusd/instance/lxc: Use LogPath for forkstart
  • incusd/instance_logs: Use LogPath
  • incus/server/network/util: Add ipInPoinerRanges util function
  • incusd/network/bridge: Trigger dependency notifcation on changes
  • incusd/network/ovn: Resetup network on change of uplink ovn range/gateway
  • incusd/apparmor/instance: Fix logs volume handling
  • incus/server/network/ovn/nb: Overwrite static mac bindings if it already exists
  • incusd/api_cluster: Fix database-client count logic
  • incusd/instances: Properly instruct to reset NVRAM when changing secure boot config
  • incusd/instance/config: Propagate volatile.apply_nvram to copied instances
  • incusd/network/acl: Use 'allow-related' instead of 'allow' for default egress action
  • incusd/daemon_storage: Don't fail on log volume unmount failure
  • incusd/cluster: Handle evacuation on single-node clusters
  • internal/instance: Add volatile.hotplug.memory
  • doc: Update config
  • incusd/instance/qemu: Record and re-use base memory configuration
  • incusd/device/nic_bridged: Lookup ACLs in the correct project
  • ncusd/network/zone: Include records from all relevant projects
  • tests: Update for network zone filtering
  • incusd/response: Store original Host in forwardedResponse
  • shared/tls: Support multiple domains in ACME functions
  • incusd/acme: Support multiple domains
  • incusd/network/zone: Allow wildcard records
  • incusd/cluster: Don't stop local networking on healing
  • incusd/db/networks: Set Project in getPartialNetworkByProjectAndName
  • incusd/instance: Allow custom volume snapshot create/delete when attached to running instance
  • incusd/server: Allow custom volume snapshot create/delete when attached to running instance
  • shared/cliconfig: Add lock to prevent panic
  • incusd/endpoints/starttls: Report correct ServerName
  • cmd/generate-database: fix linter complaints - #2636
  • build(deps): bump actions/upload-artifact from 6 to 7
  • internal/server/firewall: fix linter complaints - #2636
  • internal/server/sys: fix linter complaints - #2636
  • internal/server/project: fix linter complaints - #2636
  • internal/server/util: fix linter complaints - #2636
  • internal/server/seccomp: fix linter complaints - #2636
  • internal/server/migration: fix linter complaints - #2636
  • internal/server/task: fix linter complaints - #2636
  • api: instances_debug_repair
  • shared/api: Add InstanceDebugRepairPost
  • doc/rest-api: Refresh swagger YAML
  • incusd/storage: Implement ActivateTask
  • incusd/instance/debug: Implement instance repair API
  • Makefile: Properly set POT encoding
  • incusd/operations: Fix missing Unlock
  • doc: Fix typo
  • incusd: Fix typo
  • incusd/metrics: Increase node-exporter timeout to 5s
  • doc: Add preselects to wordlist
  • incusd/instance_logs: Prevent bad values for exec-output
  • incus-migrate: Restrict OVA unpack path
  • incusd/network_allocations: Use canAccessNetwork
  • incusd/instance/qemu: Relax SEV check
  • gomod: Update dependencies
  • doc: Update config
  • i18n: Update translation templates
  • incus: Fix import shadowing
  • incusd/storage_volumes: Use switch statement
  • incusd/network/common: Use FPrintf instead of WriteString
  • github: Remove mention of Linstor
  • doc: Remove mention of Linstor and TrueNAS
  • doc: Add snapshotted to wordlist
  • incusd/device/nic_physical: Drop support for connected key
  • incusd/backup: Make extra sure backup.yaml is consistent on disk
  • incusd/instance/lxc: Stop any forkfile instances prior to migration
  • incusd/storage/zfs: Freeze ZFS instances when using block_mode
  • incusd/storage/zfs: Don't create temporary snapshot for inactive volumes
  • incusd/storage/zfs: Don't unmap a mounted snapshot
  • incusd/storage: Don't allow loop pools on IncusOS
  • cmd/incus: fix log in sftpRecursiveMkdir
  • doc: Update config
  • gomod: Update dependencies

サポートとアップグレード

Incus 6.0 ブランチは 2029 年 6 月までサポートされます。常に最新の LTS バグ修正リリースを実行することを強く推奨します。

ダウンロード

以前のニュース