Retour à l’aperçu de l’actualité
Incus 6.21 est maintenant disponible¶
23 janv. 2026
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.21 !
Nous démarrons 2026 avec des correctifs de sécurité, mais ce n’est pas tout : nous avons des améliorations attendues depuis longtemps dans notre CLI, une utilisation simplifiée du SR-IOV, de meilleures performances au démarrage, et plus encore !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Correctifs de sécurité¶
Rory McNamara, de snyk.io, a remonté deux problèmes de sécurité majeurs.
Ces deux problèmes permettent une élévation de privilèges à des utilisateurs aux droits restreints (utilisateurs locaux dans le groupe incus ou utilisateurs distants avec un certificat TLS restreint ou une configuration OpenFGA / un scriptlet équivalents).
- CVE-2026-23953 (injection de retour à la ligne dans une variable d’environnement)
- CVE-2026-23954 (lecture/écriture arbitraire de fichiers via des templates)
Ces deux problèmes sont corrigés dans cette version, des rétroportages sont disponibles dans la branche Incus 6.0.x, et des mises à jour de sécurité arrivent dans les diverses distributions Linux.
Nouvelles fonctionnalités¶
Commande incus wait¶
Une nouvelle commande, incus wait, a été ajoutée afin de permettre d’attendre que certains événements se produisent sur une instance donnée :
- L’arrivée de l’instance dans un état donné
- Le bon lancement de son agent
- L’obtention d’une adresse IP
La commande pourra être étendue dans le futur avec de nouvelles conditions utiles.
stgraber@castiana:~$ incus launch images:debian/13 v1 --vm && incus wait v1 agent && incus exec v1 -- echo "Hello world"
Launching v1
Hello world
Sélection automatique de fonctions SR-IOV pour les interfaces réseau¶
Les interfaces réseau SR-IOV ont à présent la même logique de sélection dynamique que les GPU, introduite il y a quelques versions.
Cela permet d’ajouter des interfaces réseau en spécifiant le constructeur et le modèle de la carte, peu importe le nombre d’interfaces physiques présentes sur le système. Incus choisira ensuite la carte optimale, en équilibrant les VF entre les différentes cartes et ports disponibles.
stgraber@dakara:~$ incus create images:debian/13 sriov
Creating sriov
stgraber@dakara:~$ incus config device add sriov eth0 nic nictype=sriov vendorid=8086 productid=10fb
Device eth0 added to sriov
stgraber@dakara:~$ incus start sriov
Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#id2
Propriétés attached et connected pour les interfaces réseau¶
Deux nouvelles propriétés sont maintenant disponibles pour la plupart des interfaces réseau :
attachedcontrôle le fait que la carte soit attachée ou non à l’instance. Définir cette option àfalsepermet de conserver la configuration de la carte, tout en s’assurant que celle-ci soit pas vue par l’instance.connectedcontrôle l’état du lien réseau. Définir cette option àfalsepermet à l’instance de continuer à voir la carte réseau, mais celle-ci ne fournira aucune connectivité.
Voici un exemple de leur utilisation :
stgraber@dakara:~$ incus launch images:debian/13 v1 --vm
Launching v1
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
PING ipv6.google.com (2607:f8b0:4023:1804::71) 56 data bytes
64 bytes from 2607:f8b0:4023:1804::71: icmp_seq=1 ttl=113 time=14.2 ms
--- ipv6.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.151/14.151/14.151/0.000 ms
stgraber@dakara:~$ incus config device override v1 eth0 connected=false
Device eth0 overridden for v1
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
ping6: ipv6.google.com: Temporary failure in name resolution
stgraber@dakara:~$ incus config device set v1 eth0 connected=true
stgraber@dakara:~$ incus exec v1 -- ping6 -n ipv6.google.com -c1
PING ipv6.google.com (2607:f8b0:4023:1804::64) 56 data bytes
64 bytes from 2607:f8b0:4023:1804::64: icmp_seq=1 ttl=111 time=17.0 ms
--- ipv6.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 16.960/16.960/16.960/0.000 ms
stgraber@dakara:~$ incus config device set v1 eth0 attached=false
stgraber@dakara:~$ incus exec v1 -- ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
Démarrage d’instances en parallèle¶
Jusqu’à présent, toutes les instances marquées pour démarrer automatiquement au démarrage du système hôte étaient démarrées séquentiellement, en respectant les priorités et délais définis.
Pour accélérer leur démarrage sur des systèmes en comportant un grand nombre, Incus les sépare en deux catégories : celles avec une priorité de démarrage ou un délai, et celles sans. Ces dernières sont démarrées en parallèle, à raison d’une instance tous les 4 cœurs CPU, puis les autres démarrent en respectant leurs priorités.
Restrictions réseau via des claims OIDC¶
Une nouvelle fonctionnalité avancée à destination des personnes utilisant l’authentification OIDC est un claim nommé incus.allowed_subnets, qui peut contenir une liste de sous-réseaux CIDR séparée par des virgules depuis lesquels le client doit se connecter afin d’être autorisé à interagir avec l’API.
La fonctionnalité est particulièrement utile dans des environnements où un groupe d’utilisateurs donné doit nécessairement passer par un VPN ou se connecter en physique. L’IdP peut être configuré pour définir ce claim, et Incus en vérifie le respect à chaque requête.
Documentation : https://linuxcontainers.org/incus/docs/main/authentication/#openid-connect-authentication
Meilleur support pour le SOA dans les zones réseau¶
Les zones réseau DNS générées comportent à présent un enregistrement SOA plus standard, utilisant le premier serveur DNS configuré comme serveur primaire, et utilisant une nouvelle option de configuration dns.contact pour personnaliser le champ de contact pour la zone.
Documentation : https://linuxcontainers.org/incus/docs/main/howto/network_zones/
Support de la suppression forcée (récursive) de fichiers via l’API REST¶
Incus supporte deux API différentes pour l’accès aux fichiers dans les instances et les volumes personnalisés.
Les clients modernes utilisent notre nouvelle API SFTP, permettant de nombreuses opérations sur les fichiers, tandis que les clients plus simples ou anciens utilisent notre API REST plus basique.
Une fonctionnalité facilement disponible en SFTP mais pas en REST était la possibilité de supprimer de manière forcée un sous-arbre du système de fichiers, entraînant une suppression récursive.
Pour simplifier la tâche chez les clients n’utilisant pas l’API SFTP, nous avons ajouté un en-tête HTTP X-Incus-force pour l’opération DELETE qui déclenche la suppression récursive côté serveur, comme le ferait incus file delete -f.
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- doc/openfga: Improve required config keys
- incusd/network/ovn: Drop now obsolete DNS check
- incusd/storage/truenas: fix SetVolumeQuota issue when growing FS volumes
- 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
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- Translated using Weblate (Tamil)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- 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 (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)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Russian)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- 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)
- 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
- Translated using Weblate (Swedish)
- 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.
- Add pires/go-proxyproto
- 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
- Translated using Weblate (Japanese)
- 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
- doc: Fix build failure
- incus: Implement "incus wait"
- i18n: Update translation templates
- internal/instance: Prevent line breaks in environment variables
- incusd/instance/drivers: Rename hashName to hashValue
- incusd/instance/drivers: Hash serial value if it exceeds the maximum length
- doc/linstor: Add documentation for
sourceparameter. - 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
- Translated using Weblate (Portuguese)
- incusd/network: Remove automatic increasing of SR-IOV VF count
- doc: Add warning about long device names
- incusd/device/nic: Add
attachedconfiguration key - incusd/device/nic: Add
connectedconfiguration 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
- Makefile: Bump to Go 1.24.12
- gomod: Update dependencies
- 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
Documentation¶
La documentation d’Incus peut être consultée sur :
https://linuxcontainers.org/incus/docs/main/
Paquets¶
Incus ne fournit pas de paquet d’installation mais bien un tarball à chaque version. Vous trouverez ci-dessous différentes solutions pour mettre Incus en service.
Installation du serveur Incus sous Linux¶
Incus est disponible sur la plupart des distributions Linux courantes. Vous trouverez des instructions d’installation détaillées dans notre documentation.
https://linuxcontainers.org/incus/docs/main/installing/
Paquet Homebrew du client Incus¶
Le client Incus est disponible sur Homebrew pour Linux et macOS.
https://formulae.brew.sh/formula/incus
Paquet Chocolatey du client Incus¶
Le client Incus est disponible sur Chocolatey pour les utilisateurs de Windows.
https://community.chocolatey.org/packages/incus/6.21.0
Paquet Winget du client Incus¶
Le client Incus est aussi disponible sur Winget pour les utilisateurs de Windows.
https://winstall.app/apps/LinuxContainers.Incus
Support¶
Les versions de fonctionnalité d’Incus ne sont supportées que jusqu’à la sortie de la suivante. Les personnes souhaitant un support plus long et des changements moins fréquents devraient plutôt envisager d’utiliser Incus 6.0 LTS.
Le support communautaire est disponible sur : https://discuss.linuxcontainers.org
Un support commercial est disponible sur : https://zabbly.com/incus
Les bugs peuvent être signalés sur : https://github.com/lxc/incus/issues
