Incus 6.13 リリースのお知らせ¶
2025/05/30
はじめに ¶
Incus チームは、Incus 6.13 のリリースのアナウンスができてうれしいです!
このリリースは、さまざまな規模やユーザーに向けた多数の新機能が盛り込まれた非常に充実したリリースです。誰にとっても何かがあるはずです!
いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/
Enjoy!
新機能 ¶
Windows エージェントのサポート ¶
Incus VM エージェントのロジックは、Linux 以外のオペレーティングシステム上でビルドできるようにリファクタリングされました。そして、Windows 用のエージェントが初期実装されました。
残念ながら、Windows にはまだ、Incus が通常エージェントとの通信に利用する vsock 通信メカニズム用の署名済み VirtIO ドライバーがないため、これはまだかなり初期の取り組みです。
幸いなことに、vsock で使っているプロトコルは HTTPS なので、代わりに VM へ直接(ネットワーク経由で) HTTPS を使えました。これは、Incus は Windows VM の IP アドレスを把握しており、その IP アドレスに Incus ホストから直接アクセスできる場合のみ動作します。将来的には、これをネイティブの vsock 接続に置き換える予定です。
サポートされている機能としては、incus exec を通してコマンドを実行したり、incus info で OS の詳細を取得したり、incus file でファイルを転送したりすることができるようになります。
これを動作させるには通常、source=agent:config ディスクデバイスを Windows VM に追加する必要があります。これにより、(ホストディストリビューションでパッケージ化されている場合)Windows エージェントと、必要な構成ファイルを含む CD-ROM ドライブが提供されます。
その時点から、そこから手動で直接エージェントを起動するか、手動でシステムサービスを追加できます。
Windows の経験がある方で、CD-ROM ドライブに含めることができるインストール PowerShell を通して、エクスペリエンスを磨き上げてくれる方を歓迎します。また、エージェント自体の Windows ビルドを Linux 版と完全に同等にするための作業も歓迎します。
この数ヶ月にわたる取り組みは、Sovereign Tech Fund からの資金提供により実現しました。
incus-migrate の改良 ¶
スタンドアローンツールである incus-migrate にかなりの改良が加えられました。
なお、このツールは Incus コンテナや VM に変換する必要があるリモートサーバー上、または Incus にインポートする必要がある既存のコンテナや VM を実行しているリモートサーバー上で実行できます。
このリリースで、incus-migrate に次のサポートを追加しました:
- ファイルシステムツリーやディスクイメージを新しいカスタムボリュームとしてアップロードする
- 新しいインスタンスの一部として追加のディスクやファイルシステムをインポートする
- OVA イメージを新しいインスタンスとしてインストールする
- Incus サーバーがクラスターの場合、特定のサーバーやクラスターグループを選択する
incus-migrate のスタティックビルドが GitHub上で取得できます。これは Incus を実行していないシステムを変換する時に役に立ちます。
カスタムボリューム上の SFTP ¶
インスタンスの場合と同様のファイル API をサポートするために、徐々にカスタムストレージボリューム(ファイルシステム各種)を取得しようとしています。
その第一歩として、Incus はそれらのボリューム上の SFTP 操作をサポートするようになりました。これは、現時点では incus storage volume file mount コマンドに相当します。残りの API とコマンドは Incus 6.14 でサポートされる予定です。
これは University of Texas in Austin の学生による作業です。
OVN ネットワーク上の設定可能なインスタンス外部 IP アドレス ¶
新しい NIC の設定キーを 2 つ追加しました:
ipv4.address.externalipv6.address.external
これは、インスタンス起点の外部トラフィックに使う IP アドレスを設定するのに使えます。通常、これはネットワークの外部アドレス(デフォルト)か、インスタンスを指すネットワーク転送アドレスのいずれかです。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-ovn
これは University of Texas in Austin の学生による作業です。
OVN ネットワークのゲートウェイ MAC アドレスを固定する機能 ¶
OVN は MAC バインディングのリスト、つまり IP アドレスと MAC アドレスのマッピング(ARP テーブルや NDP テーブルに相当)を管理します。これは通常、OVN が特定のアドレスと通信する必要があるときに作成され、データベースに保存されます。
VRRP や同様の仮想 MAC アドレスで動作するネットワークでは、ゲートウェイの予想される MAC アドレスを事前に設定し、OVN が保持する必要がある場合があるため、これは必ずしも理想的ではありません。
このような場合のために、physical タイプの OVN アップリンクネットワークに設定できる 2 つの新しい設定キーが追加されました:
ipv4.gateway.hwaddripv6.gateway.hwaddr
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/network_physical/
これは University of Texas in Austin の学生による作業です。
仮想マシン内のクロック処理 ¶
Incus は、移行しないことが想定されている仮想マシンに invtsc QEMU オプションを自動的に設定するようになりました。
さらに、Incus は VM の RTC クロックを永続化するために、QEMU から送出される RTC イベントをリッスンするようになりました。これにより、Windows VM だけでなく、UTC ハードウェアクロックに依存しない他の VM の処理も改善できます。
新しい get-client-certificate と get-client-token コマンド ¶
CLI に新たに incus remote get-client-certificate と incus remote get-client-token コマンドが追加されました。これにより、クライアント証明書の抽出やクライアント証明書からの JWT の発行が簡単になるため、スクリプト作成に役立ちます。
これは University of Texas in Austin の学生による作業です。
OCI での DHCPv6 サポート ¶
OCI コンテナで使用されるビルトインの DHCP クライアントは、ステートフルとステートレスの両方の DHCPv6 に対応できるようになりました。
これは University of Texas in Austin の学生による作業です。
routed NIC のネットワークホストテーブルの設定 ¶
Incus は routed NIC デバイスをどのルーティングテーブルに配置するかの制御をサポートしていますが、少し柔軟性に欠けていました。
代わりに、いくつか新しい設定キーが追加されました:
ipv4.host_tablesipv6.host_tables
ルートを保存するテーブルのカンマ区切りのリストを設定できます。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-routed
これは University of Texas in Austin の学生による作業です。
Support for split image publishing¶
これまで、incus publish を実行すると、生成されるイメージは常に統合タイプのイメージでした。つまり、通常はルートディスクと Incus の設定の両方を含む圧縮された tarball 形式の単一ファイルでした。
しかし、分割イメージの生成をサポートするようになりました。分割イメージは、Incus 固有のメタデータとルートディスクデータの 2 つのファイルを生成します。
CLI では、incus publish に --format=split を与えて制御します。
これは University of Texas in Austin の学生による作業です。
事前に与える証明書 ¶
Incus サーバーに事前に与える構成ファイルに証明書を含めることができるようになりました。
次のようになります:
certificates:
- type: client
name: my-client
certificate: |-
PEM ENCODED CERTIFICATE
この機能は、Incus OS のようなシステムを自動的にプロビジョニングするときに役立ちます。
これは University of Texas in Austin の学生による作業です。
リスト形式の設定 ¶
Incus CLI の設定ファイル(通常は ~/.config/incus/config.yml)で、優先するリストの出力フォーマットを選択できるようになりました。
たとえば、次のようになります:
defaults:
list_format: compact
これは list コマンドに --format=compact を渡すのと同じです。
これは University of Texas in Austin の学生による作業です。
create/add、delete/remove/rm のエイリアスの追加 ¶
Incus CLI は次のようにデザインされています:
- 重要な状態を持っているオブジェクトは
createしたあと、deleteしなければなりません - 状態がほとんどないか、全くないオブジェクトは
addedしたあと、removedします
これは、特定のアクションに関係したリスクの一部を伝えることを目的にしていますが、一貫性を欠いている印象を与え、Incus のスクリプトの作成が少し難しくなる可能性があります。
この問題を解決するために、CLI に多数のエイリアスを追加しました。これにより、必要なコマンドを見つけられる可能性が大幅に高まります。
これは University of Texas in Austin の学生による作業です。
マニュアルで記述していた DB 関数のコードジェネレーターへの移行 ¶
Incus のコードベースには、データベースへのアクセス関数用のコードジェネレーターが含まれています。
これは、動作の一貫性を保証することと、データベースクエリーを手動で記述する際に起こりやすいイージーミスを防ぐのに非常に役立ちます。
すべての新しいデータベーステーブルでジェネレーターを使うことは事実上の要件ですが、まだジェネレーターを使用していないオブジェクトがかなりあります。
このリリースでは、次のオブジェクトの生成された関数への移行が完了しました:
- ネットワーク ACL
- ネットワークロードバランサー
- ネットワークゾーン
すべてのテストはパスしていますが、この手のリファクタリングは簡単には気づけないリグレッションを起こすリスクが高いです。Incus 6.13 で、これらのオブジェクトの動作に通常と異なる変化に気づいた場合は問題報告をください。調査します。
これは University of Texas in Austin の学生による作業です。
サーバーサイドフィルタリング ¶
このリリースでは、Incus 全体を通して可能な限りサーバーサイドフィルタリングを使う取り組みを継続しています。
このリリースで、次がサポートされました:
incus network listincus storage bucket listincus project listincus config trust list
これは University of Texas in Austin の学生による作業です。
コードから生成するドキュメント ¶
設定キーが関係するすべての場所でドキュメントを自動生成する実装を行う取り組みを続けています。今回のリリースでは、次の項目が自動生成されるようになりました:
- PCI デバイス
- OVN ネットワーク
- 物理ネットワーク
- SR-IOV ネットワーク
- Macvlan ネットワーク
これは University of Texas in Austin の学生による作業です。
Incus OS 上の Incus メトリクスと統合された OS メトリクス ¶
Incus OS 上で Incus を実行すると、(node-exporter からの)ホストメトリクスが Incus のメトリクス API に自動的に含まれるようになりました。
これは、Incus OS が可能な限り開いているポート数を制限しようとし、すべてのトラフィックを単一のスタック(Incus 自身)を通して認証・認可しようとするために行われます。
パッケージャーに向けた注意 ¶
外部の umoci コマンドの使用から、Go パッケージを使用するように変更しました。
新しい Windows エージェントのサポートを受けるには、エージェントを Windows 用にビルドし、通常の Linux 用と共に、Incus で利用できるようにする必要があります。
すべての変更点 ¶
このリリースのすべての変更のリストは次の通りです(翻訳なし):
すべてのChangeLogを見る
- client: Add server-side filtering for networks
- incus/network: Use server-side filtering
- i18n: Update translation templates for network list cmd
- incus/network: Add config-based server-side filtering
- doc: Fix default value of ipv4.dhcp.gateway to IPv4 address
- doc: Update configs
- doc: Fix default value of ipv6.routes network_bridge
- doc: Update configs
- doc: Fix Debian 12 nickname
- incusd/firewall: Clear correct table for address sets
- incusd/firewall: Remove unused part of nftables structs
- incusd/dns: fix typo in error log
- incusd/device/pci: Port to gendoc
- doc: Update PCI documentation to use Gendoc
- doc: Update configs
- incusd/device/infiniband: Fix gendoc entity
- incusd/device/tpm: Fix gendoc entity
- doc: Update config
- doc: Update TPM device gendoc
- doc: Update Infiniband device gendoc
- incusd: Rename reverters from revert to reverter
- incus-user: Rename reverters from revert to reverter
- incus-agent: Rename reverters from revert to reverter
- internal/linux: Rename reverters from revert to reverter
- incusd: Rename reverters from revert to reverter
- incusd: Use errors.Is instead of direct error comparison Replace direct error comparison with errors.Is checks to avoid potential bugs with wrapped errors.
- incusd: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- incus-user: Use errors.Is instead of direct error comparison
- incus: Use errors.Is instead of direct error comparison
- internal/server: Use errors.Is instead of direct error comparison
- internal/linux: Use errors.Is instead of direct error comparison
- internal/eagain: Use errors.Is instead of direct error comparison
- internal/server: replace manual unwrap call with errors.As
- internal/rsync: replace manual unwrap call with errors.As
- internal/server: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- internal/linux: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- internal/server: make all methods on the zfs struct take a pointer
- internal/server: change method isAllowed on the dnsHandler struct into a static function
- shared/api: unify methods declared on the Instance struct to all take a pointer
- generate-database: unify methods declared on the Field struct to all take a pointer
- internal/server: refactor getting heartbeat mode name into a function
- internal/server: rename close to closeFunc
- internal/version: Rename variables to better represent what they are used for
- client: Rename variables because error is a builtin interface name
- incusd: Rename variables because recover and min are builtin functions
- incusd: Rename variables because they collide with builtin function names
- generate-database/db: Un-export joinConfig
- incusd: Introduce patchRun type
- incusd: Remove unused parameter names in cobra commands
- incusd: Remove unused parameters or rename unused parameters to _
- incusd: Un-export command functions
- incusd: Don't export internal websocket struct functions
- incusd: Don't export internal migration struct functions
- incusd: Fix import shadowing
- incusd/instance/drivers: Rewrite config entries as maps
- incusd/scriptlet/qemu: Remove legacy wrapper
- incusd/instance/drivers: Fix tests
- incusd/instance/drivers: Use fmt.Fprintf
- client: Add server-side filtering for storage buckets
- incus/storage_bucket: use server-side filtering
- incusd/firewall/nftables: Fix handling of address set deletion
- incusd/instance/qemu: Handle agents with limited information
- incus/file: Handle Windows
- incus-agent: Split OS specific logic
- incus-agent: Set base directory
- incus-agent: Reduce code duplication
- incus-agent/exec: Move away from os.File
- incus-agent: Add initial Windows support
- incusd/instance/qemu: Add support for agent over HTTPS
- incusd/instance/qemu: Add agent drive support for Windows
- github: Build incus agent for Linux and Windows
- incusd: remove conditional check that is always true
- incusd: remove outdated comment about no longer existing force option
- incusd: remove code that was unreachable in api_internal.go
- incusd: remove code that was unreachable in api_internal.go
- shared/archive: remove unnecessary err check
- incusd: refactor condition checks that are always true or false respectively
- cmd/incus: refactor unnecessary err condition checks
- internal/linux: refactor unnecessary err condition check
- client: remove unnecessary err check and unused variable ioErr
- incusd: refactor process kill error being ignored
- incusd/instance: fix device finding logic
- incusd/instance/drivers: Make test ignore host-nodes order
- incus: refactor admin_init.go config initialization
- incusd/network/ovn: Wait up to 10s for OVN northd to allocate an IP
- incusd/dnsmasq: refactor DHCPValidIP condition checks
- incusd: Prevent panic when VolumeSize is missing
- incusd/migrate: Set write time limit for sendControl method
- client: Add CreateStoragePoolVolumeFromMigration
- incus-migrate: Prepare migration code for adding custom volume support
- incus-migrate: Support for uploading filesystems and disks as custom volumes
- incusd/network/bridge: Add missing line breaks
- client: Add GetProjectsWithFilter
- incus: Add filtering support for project list
- incusd/network/ovn: Port to gendoc
- doc/reference/network_ovn: Port to gendoc
- doc: Update configs
- incusd/network/bridge: Add BGP keys to gendoc
- doc/reference/network_bridge: Add BGP configuration
- incusd/network/physical: Port to gendoc
- doc/reference/network_physical: Convert to gendoc
- doc: Update configs
- Remove gopkg.in/tomb.v2 dependency
- incusd/instance/qemu: Don't allow hotplug when at maxmem
- incusd/device/nic_routed: Fix spacing
- incusd/network: Clear gofumpt
- api: instance_nic_routed_host_tables
- incusd/server/device/nic_routed.go: Added host_tables
- incusd/device/nic_routed: Deprecate ipv4.host_table and ipv6.host_table
- doc: Update configs
- incusd: rename variable
muxtorouterso it does not collide with the package of the same name - cmd/incus-agent: rename variable
muxtorouterso it does not collide with the package of the same name - incusd: rename all instances of sha256.New() to hash256 so they dont collide with the package name
- client: rename all instances of sha256.New() to hash256 so they dont collide with the package name
- cmd/incus-migrate: add missing switch case with explicit comment
- incusd: internalize the default case into the switch so it covers all iota constants
- internal/filter: internalize the default case into the switch so it covers all iota constants
- incusd: add missing err handling for transactions
- incusd/storage: Fix migration error due to rounding
- incusd/storage/zfs: Optimize snapshot deletion
- incusd: add more ErrorList tests for error formatting
- incusd: refactor Error implementation of ErrorList
- incusd: make all functions on ErrorList take a pointer receiver
- incusd: rename Error struct and make it private
- internal/iprange: add tests for the iprange.Range struct
- internal/dnsutil: remove unused package dnsutil
- incusd: rename instanceActionToOptype to instanceActionToOpType
- incusd/instance/drivers: Rewrite QEMU config override logic
- incusd/instance/drivers: Adapt the tests to the new override logic
- incusd/instance/drivers: Drop old RegEx parser and return proper errors
- incusd/instance/drivers: Update tests
- tools: Add govulncheck
- incusd: remove redundant size 0 initialization for maps
- cmd/generate-config: remove redundant size 0 initialization for maps
- cmd/lxc-to-incus: remove redundant size 0 initialization for maps
- incusd/certificates: Properly handle PEM encoding on POST
- incusd/network/macvlan: Add gendoc comments
- doc: Update configs
- doc: Use gendoc for macvlan
- incusd/instance/qemu: Don't allow QEMU RSS to exceed memory limit
- lint: Exclude generated docs from codespell
- lint: Exclude generated manpages from codespell
- incusd/network/macvlan: Run gofumpt
- client: Add server-side filtering for certificates
- incus/config_trust: Use server-side filtering
- incus-migrate: introduce Migrator interface with separate structs
- incus-migrate: Add support for additional disks
- cmd/generate-database/lex: Support pluralizing entities ending in y
- cmd/generate-database/db: Support multi-word association tables
- cmd/generate-database/db: Don't duplicate join statements
- incusd/dns: Restart DNS server on failure
- incusd/instance/qemu: Limit memory hotplug slots to 8
- incusd/network/sriov: Port to gendoc
- doc: Use gendoc for network sriov
- doc: Update configs
- api: instance_publish_split
- shared/api: Add field for image type to ImagePost struct
- incusd/instance: Change instance interface to add support for exporting to split images
- incusd/instance/lxc: Add support for publishing split images for containers
- incusd/instance/qemu: Add support for publishing split images for VMs
- incusd/images: Add support for publishing split images
- incus/publish: Add new flag to publish command for split images
- shared/cliconfig: Added DefaultSettings to Config Struct
- incus: Added defaultListFormat helper function
- incus: Added Default List Format calls in List Commands
- tests: Add test for publishing split images
- i18n: Update translation templates
- doc/rest-api: Refresh swagger YAML
- incusd/device/sriov: Handle cards without configurable spoof checking
- incusd/firewall/nftables: disable UDP checksum validation for packets on bridged network
- cmd/generate-database/db: Use snake case entity names for ID column names
- incusd/db/network_acls: Move to generated functions
- incusd: Switch to new GetNetworkACLs
- api: init_preseed_certificates
- client: Add certificate handling to ApplyServerPreseed
- shared/api: Add Certificates to InitLocalPreseed
- doc/rest-api: Refresh swagger YAML
- incusd: Switch to new GetNetworkACLsAllProjects
- shared/api: Add URL function on NetworkACL
- incusd: Switch to new GetNetworkACLURIs
- incusd: Switch to new DeleteNetworkACL
- incusd: Switch to new RenameNetworkACL
- incusd: Switch to new CreateNetworkACL
- incusd: Switch to new GetNetworkACLNameAndProjectWithID
- incusd: Switch to new GetNetworkACLIDsByNames
- incusd: Move remaining network ACLs DB functions
- client: Fix required extension for GetNetworkAddressSetsAllProjects
- incusd: Move cluster resource caching logic
- incusd/main_forknet: Implement stateful DHCPv6
- incusd/main_forknet: Add delay to wait for IPv6 link-local
- incusd/main_forknet: Add stateless DHCPv6 support
- gomod: Update dependencies
- lint/govulncheck: Don't test stdlib
- incus: Move sshfs helpers to utils
- CONTRIBUTING: Clearly ban LLMs
- doc/wordlist: Extend acronyms
- incusd/response: Move SFTPResponse
- api: custom_volume_sftp
- incusd/storage_volumes: Add SFTP endpoint
- client: Add GetStoragePoolVolumeFileSFTPConn
- incus: Add incus storage volume file mount
- i18n: Update translation templates
- doc/rest-api: Refresh swagger YAML
- incus/remote: Add "get-client-certificate" and "get-client-token"
- i18n: Update translation templates
- incus-migrate: Add support for .OVA import
- incus: Add add aliases to incus commands
- incus: Add create aliases to add commands
- incus: Add delete and rm aliases to remove commands
- incus: Add remove aliases to delete commands
- incus-agent: Skip /dev/incus on Windows
- incusd/instance/qemu: Don't block on Windows agent
- internal/util: Add Incus OS detection
- incusd: Use IsIncusOS
- incusd/metrics: Include OS metrics on Incus OS
- incusd/instance/lxc: Refactor inheritInitPidFd
- Removed useless else in Makefile
- incusd/storage/ceph: Fix parent tracking for VMs
- incusd/main_forknet: Don't touch resolv.conf when no leases
- incusd/storage/ceph: Fix typo in parseParent
- tests: Switch clustering test subnet
- incusd/storage/linstor: Prevent mounting unreachable pools
- incusd: Simplify code by using modern constructs
- internal/util: Simplify code by using modern constructs
- internal/linux: Simplify code by using modern constructs
- internal/filter: Simplify code by using modern constructs
- generate-config: Simplify code by using modern constructs
- generate-database: Simplify code by using modern constructs
- incus-agent: Simplify code by using modern constructs
- incus-benchmark: Simplify code by using modern constructs
- incusd: Simplify code by using modern constructs
- lxc-to-incus: Simplify code by using modern constructs
- incus: Simplify code by using modern constructs
- shared/api: Simplify code by using modern constructs
- shared/cliconfig: Simplify code by using modern constructs
- shared/idmap: Simplify code by using modern constructs
- shared/ioprogress: Simplify code by using modern constructs
- shared/osarch: Simplify code by using modern constructs
- shared/subprocess: Simplify code by using modern constructs
- test: Simplify code by using modern constructs
- Translated using Weblate (Spanish)
- incusd/instances: Tweak storage migration errors
- incusd/instances_post: Prevent pointless device overrides
- incusd/instance: Fix incorrect cluster.Connect call
- incusd/instance/qemu: Enable invtsc CPU extension when not migratable
- Makefile: Pin tablewriter (API breakage)
- client: Use the umoci Go package instead of the command
- doc: Remove mentions of the umoci command
- gomod: Update dependencies
- tests: Update godeps
- tests: Skip rootless-containers/proto/go-proto (Apache 2.0)
- internal/server/device: remove no-op rewriteHostAddr
- incusd/forkproxy: join the correct mntns for listen
- tests: add tests for bind=container with proxy device
- client: Don't needlessly use format string functions
- tests: Don't needlessly use format string functions
- lxd-to-incus: Don't needlessly use format string functions
- lxc-to-incus: Don't needlessly use format string functions
- incus-simplestreams: Don't needlessly use format string functions
- generate-config: Don't needlessly use format string functions
- generate-database: Don't needlessly use format string functions
- incus-agent: Don't needlessly use format string functions
- fuidshift: Don't needlessly use format string functions
- incus-user: Don't needlessly use format string functions
- incus-migrate: Don't needlessly use format string functions
- incus: Don't needlessly use format string functions
- shared/validate: Don't needlessly use format string functions
- shared/util: Don't needlessly use format string functions
- shared/tls: Don't needlessly use format string functions
- shared/tcp: Don't needlessly use format string functions
- shared/subprocess: Don't needlessly use format string functions
- shared/simplestreams: Don't needlessly use format string functions
- shared/logger: Don't needlessly use format string functions
- shared/ioprogress: Don't needlessly use format string functions
- shared/idmap: Don't needlessly use format string functions
- shared/cliconfig: Don't needlessly use format string functions
- shared/cancel: Don't needlessly use format string functions
- shared/ask: Don't needlessly use format string functions
- shared/archive: Don't needlessly use format string functions
- shared/api: Don't needlessly use format string functions
- internal/util: Don't needlessly use format string functions
- internal/usbid: Don't needlessly use format string functions
- internal/rsync: Don't needlessly use format string functions
- internal/netutils: Don't needlessly use format string functions
- internal/migration: Don't needlessly use format string functions
- internal/linux: Don't needlessly use format string functions
- internal/instance: Don't needlessly use format string functions
- internal/filter: Don't needlessly use format string functions
- internal/cmd: Don't needlessly use format string functions
- incusd: Don't needlessly use format string functions
- incus-migrate: Prompt for cluster target
- incus/instance/qmp: Implement our own QMP client
- incusd/instance/qmp: Add tests for in-house QMP
- incusd/instance/qmp: Switch to our own QMP client
- gomod: Update dependencies
- incusd/instance/qmp: Don't export internal QMP implementation
- Make sure limits.memory <= root.size.state
- incusd/instance/qmp: if else if to switch case
- incusd/instance/qmp: Remove weird qemu qmp bug handling
- incusd/instance/qmp: Refactor qmpWriteMsg
- incusd/db/node: Add GetPendingNodeByName
- api: network_ovn_external_nic_address
- incusd/device/nic_ovn: Added the two new nic options
- incusd/network/ovn: Add support for applying external address
- doc: Update config
- incusd/db/cluster: Update generated files
- api: network_physical_gateway_hwaddr
- incusd/network/ovn: Bump base schema to 23.03.0
- incusd/network/physical: Add gateway hwaddr config
- incusd/network/ovn: Add StaticBinding functions
- incusd/network/ovn: Add support for static MAC binding
- doc: Update config
- typo: mountabble -> mountable
- typo: DIsk -> Disk
- typo: mount -> unmount
- incusd/storage: fix squashfs unpacking to NFS destinations
- incusd/cluster: Add support for pending nodes in Leave and Purge functions
- client: Add DeletePendingClusterMember
- incusd: Remove cluster member on join failure
- incusd/instance/qmp: Associate request/reply with a command ID
- incusd/instance/qmp: Add command ID to runWithFile
- incusd/instance/qmp: Add command ID to RunJSON
- incusd/instance/qemu: Use switch statement
- internal/instance: Add RTC volatile keys
- incusd/instance/qemu: Handle RTC base adjustments
- doc: Update config
- incusd: Return empty slice instead of nil when no storage pool is present
- tests: Fix LINSTOR preconfiguration
- incusd/instance/drivers: Clear the volatile.cpu.nodes if needed
- incusd/storage/drivers: Add support for specifying username in CephFS commands
- incusd/device: Pass username in CephFS commands
- incusd/db/cluster: Rename network ACL files
- incusd/db/cluster: Port load balancers to database generator
- vscode: Add VSCode launch.json for incusd "Run and Debug" functionality
- incusd: Update for generated load-balancer functions
- incus/network_zone: Fix typo in help description
- po: Update translation template
- incusd/db: Port network zone to database generator
- incusd: Port to new database functions
- incusd/instance/drivers: Allow updating root disk size and root io.bus simultaneously
- incusd/db: Fix network ACL generation
- incusd/db: Properly remove node/location from load balancers
- incusd/network/load_balancer: Fix update logic
- incusd/network: Fix ACL regression
- gomod: Update dependencies
ドキュメント ¶
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.13.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
