Actualités

Incus 6.20 est maintenant disponible

19 déc. 2025

Introduction

L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.20 !

C’est la dernière version de l’année 2025, et la durée de développement a été réduite afin de ne pas sortir une nouvelle version au milieu des vacances !

image|690x383

Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/

Nouvelles fonctionnalités

Une limitation ennuyeuse de notre implémentation des clusters LVM était que les instantanés ne fonctionnaient pas de manière sûre sur toutes les versions de LVM.

Les nouvelles versions de LVM ont apporté des restrictions sur la manière dont les volumes sont activés, nous empêchant de les monter sur deux serveurs à la fois, et ainsi d’effectuer des migrations à chaud.

Dans Incus 6.18, nous avions donc désactivé les instantanés pour tous les volumes en bloc stockés sur du LVM en cluster, afin d’avoir une expérience utilisateur cohérente et éviter des problèmes lors de la mise à jour des systèmes hôtes.

Nous avons à présent implémenté une nouvelle solution pour les instantanés sur LVM en cluster. Elle utilise le format QCOW2 pour les volumes logiques au lieu du format brut. Cela nous permet de gérer manuellement les instantanés et de composer leurs volumes logiques LVM pour retrouver le bon état de la VM.

Le nouveau format est celui par défaut pour les nouvelles VM. Les VM existantes resteront sur un format brut et ne supporteront donc toujours pas les instantanés. Il est possible de les convertir en QCOW2 en les déplaçant sur un autre pool de stockage puis en les remettant sur le pool initial.

Documentation : https://linuxcontainers.org/incus/docs/main/reference/storage_lvm/

Nouvelle commande incus cluster join

Cette nouvelle commande est née d’un besoin dans IncusOS, dans lequel les interactions doivent être faites depuis l’outil en ligne de commande ou l’interface web. Bien qu’il était possible d’initialiser un nouveau cluster avec incus cluster enable, l’ajout de serveurs IncusOS additionnels était assez difficile.

Pour simplifier la tâche, nous avons ajouté une nouvelle commande incus cluster join, qui prend en arguments le cluster existant et le serveur à y rajouter. La commande pose ensuite des questions comme avec incus admin init, puis ajoute le serveur au cluster.

stgraber@castiana:~$ incus cluster join incus01: incus02:
What IP address or DNS name should be used to reach this server? [default=10.244.64.185]:·
What member name should be used to identify this server in the cluster? [default=eb7bbd3f-d385-4a06-919f-d66a7c52b058]: incus02
All existing data is lost when joining a cluster, continue? (yes/no) [default=no] yes
Choose "source" property for storage pool "local": local/incus
Choose "zfs.pool_name" property for storage pool "local": local/incus

stgraber@castiana:~$ incus cluster list incus01:
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
|  NAME   |            URL             |      ROLES       | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS |      MESSAGE      |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://10.244.64.183:8443 | database-leader  | x86_64       | default        |             | ONLINE | Fully operational |
|         |                            | database         |              |                |             |        |                   |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://10.244.64.185:8443 | database-standby | x86_64       | default        |             | ONLINE | Fully operational |
+---------+----------------------------+------------------+--------------+----------------+-------------+--------+-------------------+

stgraber@castiana:~$ incus cluster join incus01: incus03:
What IP address or DNS name should be used to reach this server? [default=10.244.64.60]:·
What member name should be used to identify this server in the cluster? [default=ef50a39f-289d-46c4-989f-9466f8f8ae58]: incus03
All existing data is lost when joining a cluster, continue? (yes/no) [default=no] yes
Choose "source" property for storage pool "local": local/incus
Choose "zfs.pool_name" property for storage pool "local": local/incus

stgraber@castiana:~$ incus cluster list incus01:
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
|  NAME   |            URL             |      ROLES      | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS |      MESSAGE      |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus01 | https://10.244.64.183:8443 | database-leader | x86_64       | default        |             | ONLINE | Fully operational |
|         |                            | database        |              |                |             |        |                   |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus02 | https://10.244.64.185:8443 | database        | x86_64       | default        |             | ONLINE | Fully operational |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| incus03 | https://10.244.64.60:8443  | database        | x86_64       | default        |             | ONLINE | Fully operational |
+---------+----------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
stgraber@castiana:~$

Fichier de configuration pour l’agent

Il est désormais possible de restreindre les actions que l’agent Incus peut effectuer. Les restrictions sont configurées dans un fichier qui liste les fonctionnalités activées. Si le fichier existe et que cette liste y est présente, toutes les fonctionnalités non explicitement activées sont désactivées.

Documentation : https://linuxcontainers.org/incus/docs/main/howto/instances_create/#configure-the-incus-agent

Enregistrements DNS inverses dans les réseaux OVN

Il s’agit d’un ajout modeste, mais potentiellement très utile. Toutes les instances sur un réseau OVN se voient désormais générer à la fois des enregistrements directs et inverses pour leurs adresses.

stgraber@castiana:~ (incus:dev-cluster/default)$ incus list c
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| NAME |  STATE  |        IPV4        |                     IPV6                      |   TYPE    | SNAPSHOTS | LOCATION |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| c1   | RUNNING | 10.20.162.2 (eth0) | fd42:e9ac:c3e5:65f:1266:6aff:fef6:b217 (eth0) | CONTAINER | 0         | incus01  |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
| c2   | RUNNING | 10.20.162.3 (eth0) | fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936 (eth0) | CONTAINER | 0         | incus02  |
+------+---------+--------------------+-----------------------------------------------+-----------+-----------+----------+
stgraber@castiana:~ (incus:dev-cluster/default)$ incus exec c1 bash
root@c1:~# host c2.incus
c2.incus has address 10.20.162.3
c2.incus has IPv6 address fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936
Host c2.incus not found: 3(NXDOMAIN)
Host c2.incus not found: 3(NXDOMAIN)
root@c1:~# host 10.20.162.3
3.162.20.10.in-addr.arpa domain name pointer c2.incus.
root@c1:~# host fd42:e9ac:c3e5:65f:1266:6aff:fea4:5936
6.3.9.5.4.a.e.f.f.f.a.6.6.6.2.1.f.5.6.0.5.e.3.c.c.a.9.e.2.4.d.f.ip6.arpa domain name pointer c2.incus.
root@c1:~#

Liste complète des changements

Voici une liste complète de tous les changements apportés par cette version :

Liste complète des commits
  • Translated using Weblate (Portuguese)
  • 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()
  • Added translation using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Swedish)
  • incusd/instance/lxc: Generate a stable MAC for managed physical bridged networks
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Swedish)
  • Added new Windows environment variable 'SystemDrive'
  • incus/create: Allow reading Ephemeral flag from stdin
  • incusd/device/nic_physical: Fix VLAN for VMs
  • Translated using Weblate (Swedish)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • 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
  • Translated using Weblate (Chinese (Simplified Han script))
  • 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
  • Translated using Weblate (Japanese)
  • gomod: Update dependencies
  • gomod: Get latest umoci
  • 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
  • i18n: Update translation templates
  • 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
  • Translated using Weblate (Portuguese)
  • incus/admin/init: Prepare code for adding initialized server to cluster
  • incus/cluster: Add 'cluster join' command
  • i18n: Update translation templates
  • 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
  • gomod: Update dependencies
  • incus/file: Improve error messages
  • i18n: Update translation templates
  • 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
  • incusd/storage/linstor: Disable volume copie with snapshots
  • tests: Update tests for Linstor limitation

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.20.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

Incus 6.19 est maintenant disponible

29 nov. 2025

Introduction

L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.19 !

Cette version présente moins de nouveautés qu’habituellement, puisque nous avons passé un certain temps à améliorer l’interfaçage avec IncusOS.

Cela dit, cette version comporte quelques améliorations intéressantes, et beaucoup de corrections de bugs !

image|690x328

Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/

Nouvelles fonctionnalités

Support initial de SELinux

Dans cette nouvelle version, nous avons posé les premières pierres d’un support natif futur de SELinux dans Incus. Il s’agit là d’un travail préliminaire, aussi nous avons désactivé par défaut la fonctionnalité. Celle-ci peut être activée en définissant la variable d’environnement INCUS_SECURITY_SELINUX=true.

Actuellement, avec cette fonctionnalité activée, Incus détecte le support de SELinux sur le système et tente de détecter l’un des environnements SELinux suivants :

  • L’ensemble de contextes SELinux de Fedora/RHEL
  • La refpolicy SELinux d’Incus

Lorsque lancé sur un système supporté, Incus applique le bon contexte SELinux aux conteneurs, avec génération de catégories SELinux uniques.

Cela permet d’éviter d’éventuelles interactions entre deux conteneurs, même si ceux-ci partagent le même contexte SELinux.

En l’état, seul le contexte d’exécution est défini. Incus n’interagit pas pour le moment avec le contexte du système de fichiers, ne gère pas les machines virtueles ou encore les volumes et ressources partagés.

Nous encourageons les personnes avec de l’expérience et un intérêt dans le support de SELinux dans Incus d’essayer la fonctionnalité et de travailler avec nous pour améliorer notre support !

[root@fedora ~]# journalctl -u incus | grep -i selinux
Nov 29 03:47:44 fedora incusd[8156]: time="2025-11-29T03:47:44Z" level=debug msg="Detected Fedora-style SELinux setup"
[root@fedora ~]# ps fauxwwZ | grep /sbin/init
system_u:system_r:spc_t:s0:c359,c602 1000000 6647 0.0  0.3  23156 14124 ?        Ss   03:42   0:00  \_ /sbin/init
system_u:system_r:spc_t:s0:c449,c951 1000000 8309 0.0  0.3  23156 14112 ?        Ss   03:47   0:00  \_ /sbin/init

Amélioration de l’agent Windows

Incus supporte à présent de lancer l’agent Windows en tant que service, en incluant des scripts d’installation similaires à ceux disponibles pour Linux et macOS.

Nous avons donc à présent des expériences utilisateur très similaires sur les machines virtuelles Linux, macOS et Windows.

Ce travail s’est suivi d’une amélioration dans le plugin de connexion Ansible pour y ajouter le support de ces trois plateformes.

image|690x429

Périphériques série dans l’API des ressources

Cette fonctionnalité est née d’un retour d’expérience d’utilisation d’IncusOS avec des conteneurs gérant de l’IoT interagissant avec des réseaux Zigbee et Z-Wave.

Sur un système standard, il est possible d’inspecter /dev/serial afin d’y trouver un identifiant stable pour les adaptateurs série USB. Mais avec l’environnement clos d’IncusOS, ce n’était pas possible.

Pour résoudre ce problème, l’API des ressources contient à présent une liste de périphériques série avec tous les détails nécessaires à leur utilisation dans les conteneurs.

stgraber@castiana:~ (incus:dev-local/default)$ incus info --resources
System:
  UUID: 33c2c530-8b02-426c-b48c-30d53dbea682
  Vendor: QEMU
  Product: Standard PC (Q35 + ICH9, 2009)
  Version: pc-q35-10.1
  Type: virtual-machine
  Chassis:
      Vendor: QEMU
      Type: Other
      Version: pc-q35-10.1
  Motherboard:
      Vendor: LinuxContainers
      Product: Incus
      Version: pc-q35-10.1
  Firmware:
      Vendor: EDK II
      Version: unknown
      Date: 02/02/2022

[...SNIP...]

Serial devices:
  Device 0:
    Id: ttyUSB0
    Device: 188:0
    DeviceID: /dev/serial/by-id/usb-QEMU_QEMU_USB_SERIAL_1-0000:00:01.0:00.6-4-if00-port0
    DevicePath: /dev/serial/by-path/pci-0000:01:00.6-usbv2-0:4:1.0-port0
    Vendor: Future Technology Devices International, Ltd
    Vendor ID: 0403
    Product: FT232 Serial (UART) IC
    Product ID: 6001
    Driver: ftdi_sio
  Device 1:
    Id: ttyUSB1
    Device: 188:1
    DeviceID: /dev/serial/by-id/usb-QEMU_QEMU_USB_SERIAL_1-0000:00:01.0:00.6-5-if00-port0
    DevicePath: /dev/serial/by-path/pci-0000:01:00.6-usbv2-0:5:1.0-port0
    Vendor: Future Technology Devices International, Ltd
    Vendor ID: 0403
    Product: FT232 Serial (UART) IC
    Product ID: 6001
    Driver: ftdi_sio

Limite de bande passante dans les interfaces réseau OVN

Les interfaces réseau OVN peuvent désormais utiliser les clefs de configuration limits.ingress, limits.egress, limits.max et limits.priority.

Celles-ci sont converties en règles QoS dans OVN.

Support de la suppression de plusieurs objets dans les commandes de la CLI

Les commandes suivantes peuvent désormais supprimer plus d’un objet à la fois :

  • incus cluster group delete
  • incus image alias delete
  • incus network delete
  • incus network acl delete
  • incus network address-set delete
  • incus network integration delete
  • incus network zone delete
  • incus operation delete
  • incus profile delete
  • incus project delete
  • incus storage delete
  • incus warning delete

Possibilité de désactiver le passage du firmware des périphériques PCI aux VM

Une nouvelle clef de configuration firmware a été ajoutée aux périphériques de type pci.
Celle-ci peut être mise à false pour ne pas passer à la VM la ROM du périphérique.

Cela est parfois nécessaire pour pouvoir correctement utiliser des périphériques PCI dans des VM.

Génération de PKCS12 dans la CLI

De plus en plus de personnes découvrent l’interface web d’Incus, et un point souvent remonté est la difficulté de générer un certificat client qui convient aux navigateurs web.

Pour simplifier la procédure, la commande incus remote get-client-certificate a été étendue.

Désormais, elle permet de générer un certificat public encodé en PEM avec incus remote get-client-certificate client.crt, mais également un couple certificat–clef PKCS12 avec incus remote get-client-certificate client.pfx --format=pfx.

stgraber@castiana:~$ incus remote get-client-certificate browser.pfx --format=pfx
Password for browser.pfx:·
stgraber@castiana:~$ ls -lh browser.pfx·
-rw------- 1 stgraber stgraber 1.2K Nov 29 16:35 browser.pfx

Affichage d’unités brutes en CSV depuis la CLI

Une nouvelle option raw s’appliquant au format csv dans les commandes de listage permet d’afficher les unités de stockage en octets bruts plutôt que dans un format adapté aux humains.

stgraber@castiana:~$ incus list -cnm -fcsv
c1,9.57MiB
dev-os,1.06GiB
nginx,2.14MiB
test,7.57MiB
test1,7.89MiB

stgraber@castiana:~$ incus list -cnm -fcsv,raw
c1,10293248
dev-os,1141211136
nginx,2240512
test,7938048
test1,8278016

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/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
  • Translated using Weblate (Portuguese)
  • 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/apparmor/lxc: Don't bother with sys/proc protections when nesting enabled
  • 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
  • gomod: Update incus-osd dependency
  • gomod: Update dependencies
  • 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
  • incusd/storage: Tighten storage pool volume permissions
  • incusd/patches: Re-apply storage permissions on update
  • incusd/patches: Fix incorrect error check in permission patch
  • 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
  • Translated using Weblate (Chinese (Simplified Han script))
  • incus/admin/sql: Allow remote interactions
  • incus/admin/recover: Allow remote interactions
  • i18n: Update translation templates
  • incusd: Allow some remote internal API interactions
  • gomod: Update dependencies
  • Translated using Weblate (Portuguese)
  • 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"
  • incusd/storage/linstor: Parse URLs ourselves
  • incus-agent: Fix gofumpt
  • gomod: Update dependencies
  • 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
  • i18n: Update translation templates
  • 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
  • Translated using Weblate (Portuguese)
  • 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
  • i18n: Update translation templates
  • 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
  • i18n: Update translation templates
  • 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
  • gomod: Update dependencies
  • api: More precise name for test
  • api: Add DevicesMap typ to better support unmarshaling
  • api: Use DevicesMap type for map[string]map[string]string
  • doc/rest-api: Refresh swagger YAML
  • tests/storage/linstor: Use correct command to check on snapshots
  • shared/archive: Fix crash on nil tracker

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.19.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

Incus 6.18 est maintenant disponible

31 oct. 2025

Introduction

L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.18 !

C’est une version assez dense, avec un bon nombre de nouvelles fonctionnalités aux quatre coins du logiciel ; tout le monde devrait donc y trouver son compte !

image|690x259

Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/

Nouvelles fonctionnalités

Secrets gérés par systemd

Deux nouvelles familles de clefs de configuration permettant de passer des secrets à systemd sont maintenant disponibles, à la fois pour les conteneurs et les machines virtuelles.

Les nouvelles clefs systemd.credential.XYZ et systemd.credential-binary.XYZ permettent respectivement de passer des chaînes de caractères et des données binaires encodées en base64.

stgraber@dakara:~$ incus create images:debian/13 c1
Creating c1
stgraber@dakara:~$ incus create images:debian/13 v1 --vm
Creating v1
stgraber@dakara:~$ incus config set c1 systemd.credential.foo=bar
stgraber@dakara:~$ incus config set v1 systemd.credential.foo=bar
stgraber@dakara:~$ incus start c1 v1
stgraber@dakara:~$ incus exec c1 -- systemd-creds --system cat foo
bar
stgraber@dakara:~$ incus exec v1 -- systemd-creds --system cat foo
bar

Opérations sur les fichiers des volumes

Incus 6.13 a introduit le support initial pour des opérations SFTP sur des volumes de stockage personnalisés.

Nous avons étendu l’ensemble des opérations disponibles sur les volumes de stockage personnalisés pour correspondre à celles déjà disponibles dans les instances.

stgraber@dakara:~$ incus storage volume file
Usage:
  incus storage volume file [flags]
  incus storage volume file [command]

Available Commands:
  create      Create files and directories in custom vollume
  delete      Delete files in custom volume
  edit        Edit files in storage volumes
  mount       Mount files from custom storage volumes
  pull        Pull files from custom volumes
  push        Push files into custom volumes

Export de volumes ISO

Les volumes de stockage ISO ont toujours été un peu spéciaux : ils ne peuvent pas être créés, uniquement importés avec incus storage volume import, mais nous n’offrions aucun moyen de les exporter jusque là.

Désormais, incus storage volume export peut être utilisé pour récupérer un ISO depuis Incus.

stgraber@dakara:~$ incus storage volume export default virtio-drivers
Backup exported successfully!         
stgraber@dakara:~$ file virtio-drivers.iso 
virtio-drivers.iso: ISO 9660 CD-ROM filesystem data 'virtio-win-0.1.271'

Délégation de jetons BPF

Incus supporte à présent de déléguer certaines capacités BPF par l’intermédiaire de jetons BPF.

La fonctionnalité est implémentée à l’aide d’un ensemble de clefs de configuration security.bpffs permettant de spécifier les éléments délégués.

Documentation : https://linuxcontainers.org/incus/docs/main/explanation/bpf-tokens/

Support de macOS pour l’agent Incus

Incus s’est progressivement amélioré au fil des versions dans sa gestion des VM macOS en x86.
Vous pouvez trouver davantage de détails sur comment virtualiser macOS sur Incus ici : https://github.com/macOS-on-Incus

Cette nouvelle version amène une fonctionnalité intéressante : l’agent Incus peut désormais fonctionner sur macOS. Cela signifie que notre agent supporte maintenant Linux, Windows et macOS, avec des capacités un peu différentes cependant d’un agent à l’autre.

Dans le cas de macOS, nous supportons l’exécution de commandes (en mode interactif et non-interactif), les transferts de fichiers, et même la possibilité de monter du stockage partagé (via 9p). Enfin, l’agent peut renvoyer la plupart des informations du système à Incus.

Pour installer l’agent, assurez-vous que image.os est défini à macOS, puis, depuis l’instance faisant tourner macOS, vous pouvez monter le partage 9p config et y démarrer l’agent.

Carte son VirtIO dans les VM

Le support des cartes son VirtIO a été ajouté il y a quelques temps dans QEMU, et nous les avons intégrées à notre ensemble de périphériques inclus par défaut dans les machines virtuelles. Il est important de noter que ce périphérique n’est pas migrable ; ainsi, nous le désactivons pour toutes les instances migrables à chaud.

La carte son virtuelle est connectée à SPICE, permettant à la console SPICE de récupérer les flux audio en plus des flux vidéo VGA.

Notez que Windows ne dispose pas d’un driver adapté pour le moment, donc cette fonctionnalité intéressera principalement les utilisateurs de Linux.

Support du détachement de périphériques USB

Les périphériques USB peuvent désormais être conservés dans la configuration des VM tout en restant détachés du système invité. Pour ce faire, il faut définir la propriété attached à false.

stgraber@dakara:~$ incus config device set v1 usb0 attached=false

dns.mode pour les réseaux OVN

Les enregistrements DNS gérés par OVN peuvent être désactivés pour les réseaux OVN en définissant dns.mode à none, comme cela pouvait être fait depuis longtemps avec les bridges.

root@server01:~# incus network set default dns.mode=none
root@server01:~#

Modèles d’adresses MAC configurables

Le modèle d’adresses MAC peut maintenant être paramétré de manière globale ou locale par projet.
Cela permet aux organisations qui ont acquis leur propre préfixe d’adresses MAC de l’utiliser à la place de la plage par défaut fournie par Zabbly.

Une fois le changement effectué, le nouveau modèle s’appliquera à la création de tous les futurs réseaux et instances.

stgraber@dakara:~$ incus launch images:debian/13 c1
Launching c1
stgraber@dakara:~$ incus info c1 | grep MAC
      MAC address: 10:66:6a:d6:80:3b
stgraber@dakara:~$ incus config set network.hwaddr_pattern 00:16:3e:xx:xx:xx
stgraber@dakara:~$ incus launch images:debian/13 c2
Launching c2
stgraber@dakara:~$ incus info c2 | grep MAC
      MAC address: 00:16:3e:a4:54:24

Extension de la CLI d’IncusOS

L’interface en ligne de commande d’IncusOS, présente sous incus admin os, a été retravaillée pour utiliser du code du dépôt d’IncusOS plutôt que d’implémenter la logique dans le code d’Incus.

La CLI a également été étendue de telle sorte que chaque action de l’API, de l’extinction ou redémarrage du serveur aux actions spécifiques sur le TPM ou encore le stockage, est désormais accessible depuis le client.

stgraber@dakara:~$ incus admin os system
WARNING: The IncusOS API and configuration is subject to change

Usage:
  incus admin os system [flags]
  incus admin os system [command]

Available Commands:
  backup                        Backup the system
  check-update                  Check for updates
  delete-storage-pool           Delete the storage pool
  edit                          Edit system configuration
  factory-reset                 Factory reset the system
  import-storage-encryption-key Import the storage encryption key
  list                          List system configuration sections
  poweroff                      Power off the system
  reboot                        Reboot the system
  restore                       Restore a system backup
  show                          Show system configuration details
  tpm-rebind                    Rebind the TPM (after using recovery key)
  wipe-drive                    Wipe the drive

Nous prévoyons quelques changements dans la structure du client dans la prochaine version, à l’issue desquels la CLI d’IncusOS pourra être considérée suffisamment stable.

Liste complète des changements

Voici une liste complète de tous les changements apportés par cette version :

Liste complète des commits
  • 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
  • doc/rest-api: Refresh swagger YAML
  • golangci-lint: Do not require period in Example comments
  • 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
  • i18n: Update translation templates
  • incus/admin/os: Update for current API prefix
  • Translated using Weblate (Portuguese)
  • Fixed grammar in README.md
  • incus: Add a date format with second granularity
  • incus/admin/os: Improve debug log command
  • i18n: Update translation templates
  • 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
  • i18n: Update translation templates
  • 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
  • i18n: Update translation templates
  • 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
  • Update translations from Weblate
  • 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
  • Translated using Weblate (Portuguese)
  • 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
  • gomod: Add gopsutil
  • agent/darwin: Initial darwin agent implementation
  • doc: Kubernetes and ClusterAPI integration
  • doc: Add API to wordlist
  • github: Re-enable LINSTOR tests
  • internal/server/network: Update libovsdb import path
  • Makefile: Update libovsdb command URL
  • go.mod: Update libovsdb import path
  • 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
  • cmd: Update for shared/cmd
  • incus: Use cli.CheckArgs
  • 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
  • i18n: Update translation templates
  • incus: Switch to shared IncusOS CLI
  • gomod: Update dependencies
  • i18n: Update translation templates
  • incusd: Use ExtendMetadata when possible
  • incusd/instance/qmp: Better protect against write after close
  • doc/rest-api: Refresh swagger YAML
  • Update translations from weblate
  • 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
  • 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
  • Translated using Weblate (English)
  • 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 (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 (Italian)
  • Translated using Weblate (Italian)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Dutch)
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Portuguese (Brazil))
  • Translated using Weblate (Russian)
  • 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)
  • Translated using Weblate (Norwegian Bokmål)
  • Translated using Weblate (Norwegian Bokmål)
  • 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 (Tamil)
  • i18n: Update translation templates
  • gomod: Refresh for latest IncusOS CLI
  • 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
  • i18n: Update translation templates
  • shared/osarch: Add aliases for the various x86_64 versions
  • incus/export: Quiesce output when writing to stdout
  • i18n: Update translation templates
  • 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
  • go.mod: Update github.com/lxc/incus-os/incus-osd
  • 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
  • i18n: Update translations from weblate
  • 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
  • gomod: Update dependencies
  • incusd/storage/drivers/lvmcluster: Restrict snapshotting

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.18.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

Incus 6.17 est maintenant disponible

26 sept. 2025

Introduction

L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.17 !

Cette nouvelle version apporte une première interface en ligne de commande pour les utilisateurs d’IncusOS, quelques améliorations pour les réseaux OVN, plus de flexibilité dans l’utilisation des clusters, et de nouvelles options pour les instances.

image|690x443

Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/

Nouvelles fonctionnalités

Commandes de gestion d’IncusOS

Un nouvel ensemble de commandes a été ajouté sous incus admin os, pour configurer facilement des systèmes IncusOS distants.

stgraber@castiana:~$ incus admin os system show laptop:storage
WARNING: The IncusOS API and configuration is subject to change

config: {}
state:
  drives:
  - boot: true
    bus: nvme
    capacity_in_bytes: 5.12110190592e+11
    id: /dev/disk/by-id/nvme-Samsung_SSD_970_PRO_512GB_S5JYNS0RB08237J
    model_family: ""
    model_name: Samsung SSD 970 PRO 512GB
    remote: false
    removable: false
    serial_number: S5JYNS0RB08237J
    smart:
      enabled: true
      passed: true
  pools:
  - devices:
    - /dev/disk/by-partlabel/local-data
    encryption_key_status: available
    name: local
    pool_allocated_space_in_bytes: 7.03410176e+08
    raw_pool_size_in_bytes: 4.7244640256e+11
    state: ONLINE
    type: zfs-raid0
    usable_pool_size_in_bytes: 4.7244640256e+11

La CLI est encore primitive et beaucoup de fonctionnalités sont à venir, mais elle peut déjà être utilisée pour une partie de la configuration du réseau, du stockage, et des services système.

Support des tunnels dans les réseaux OVN

Les réseaux OVN peuvent désormais utiliser les clefs de configuration relatives aux tunnels, présentes depuis longtemps pour les réseaux de type bridge.

Celles-ci permettent d’étendre un réseau OVN en GRE ou VXLAN.

root@server04:~# incus network show ovn-vxlan
config:
  bridge.mtu: "1450"
  ipv4.address: 10.12.125.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:ce36:66f9:5ec2::1/64
  ipv6.nat: "true"
  network: UPLINK
  tunnel.sta.id: "100"
  tunnel.sta.protocol: vxlan
  volatile.network.ipv4.address: 172.31.254.15
  volatile.network.ipv6.address: fd00:1e4d:637d:1234:1266:6aff:fe98:b8db
description: ""
name: ovn-vxlan
type: ovn
used_by: []
managed: true
status: Created
locations:
- server04
- server03
- server01
- server02
project: default

Documentation : https://linuxcontainers.org/incus/docs/main/reference/network_ovn/

Contrôle de la priorité des instances en cas d’épuisement de la mémoire

Une nouvelle clef de configuration pour les conteneurs et les machines virtuelles a été ajoutée, pour contrôler la priorité des processus en cas d’épuisement de la mémoire.

La clef de configuration est limits.memory.oom_priority, et sa valeur correspond à la priorité du processus, une petite valeur signifiant que celui-ci a moins de chance d’être tué par l’OOM Killer en cas d’épuisement mémoire.

Documentation : https://linuxcontainers.org/incus/docs/main/reference/instance_options/#instance-options-limits

Modification de la configuration et des périphériques des instances à l’import

Il est à présent possible d’appliquer des changements dans la configuration et les périphériques d’une instance lors de son import (incus import). Le fonctionnement est similaire à celui de la copie d’instance (incus copy).

stgraber@castiana:~$ incus config show a1
architecture: x86_64
config:
  image.architecture: amd64
  image.description: Alpine edge amd64 (20250925_13:00)
  image.os: Alpine
  image.release: edge
  image.requirements.secureboot: "false"
  image.serial: "20250925_13:00"
  image.type: squashfs
  image.variant: default
  volatile.base_image: aba1610b7aca5e68952511100e2652423baaa326d66d8a81efafb9385b322976
  volatile.cloud-init.instance-id: 3da65657-1355-40ec-88b0-c69cee657ddb
  volatile.eth0.host_name: veth18d71455
  volatile.eth0.hwaddr: 10:66:6a:fd:cc:96
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
  volatile.uuid: dc392e6f-e1dd-42cd-af81-3491eebac20e
  volatile.uuid.generation: dc392e6f-e1dd-42cd-af81-3491eebac20e
devices:
  root:
    path: /
    pool: default
    size: 1GiB
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""
stgraber@castiana:~$ incus export a1
Backup exported successfully!
stgraber@castiana:~$ incus delete -f a1

stgraber@castiana:~$ incus import a1.tar.gz -c limits.cpu=4 -d root,size=5GiB
stgraber@castiana:~$ incus config show a1
architecture: x86_64
config:
  image.architecture: amd64
  image.description: Alpine edge amd64 (20250925_13:00)
  image.os: Alpine
  image.release: edge
  image.requirements.secureboot: "false"
  image.serial: "20250925_13:00"
  image.type: squashfs
  image.variant: default
  limits.cpu: "4"
  volatile.base_image: aba1610b7aca5e68952511100e2652423baaa326d66d8a81efafb9385b322976
  volatile.cloud-init.instance-id: 3da65657-1355-40ec-88b0-c69cee657ddb
  volatile.eth0.host_name: veth18d71455
  volatile.eth0.hwaddr: 10:66:6a:fd:cc:96
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
  volatile.uuid: dc392e6f-e1dd-42cd-af81-3491eebac20e
  volatile.uuid.generation: dc392e6f-e1dd-42cd-af81-3491eebac20e
devices:
  root:
    path: /
    pool: default
    size: 5GiB
    type: disk
ephemeral: false
profiles:
- default
stateful: false
description: ""

Rôle database-client pour les nœuds des clusters

Un nouveau rôle database-client a été ajouté pour les nœuds des clusters.

Donner ce rôle à un serveur dans un cluster garantit que celui-ci n’obtiendra jamais de copie de la base de données et ne se comportera qu’en client uniquement.

Ce rôle sert principalement à gérer les clusters dans lesquels certains serveurs sont des machines virtuelles fonctionnant sur des serveurs physiques qui font eux-mêmes partie du cluster. Dans un tel scénario, il faut s’assurer qu'aucune de ces machines virtuelles ne fait partie du cluster de la base de données d’Incus, car perdre un serveur physique entraînerait la perte de potentiellement plusieurs nœuds supplémentaires de la base, ce qui pourrait provoquer la perte instantanée du quorum et le blocage du cluster.

root@server04:~# incus cluster list
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
|   NAME   |                        URL                         |      ROLES       | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS |      MESSAGE      |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server01 | https://[2602:fc62:b:8006:216:3eff:fe1a:ed0d]:8443 | database         | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server02 | https://[2602:fc62:b:8006:216:3eff:fe56:5276]:8443 | database         | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server03 | https://[2602:fc62:b:8006:216:3eff:fec6:eaa8]:8443 | database-leader  | x86_64       | default        |             | ONLINE | Fully operational |
|          |                                                    | database         |              |                |             |        |                   |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
| server04 | https://[2602:fc62:b:8006:216:3eff:fea3:6d]:8443   | database-standby | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+------------------+--------------+----------------+-------------+--------+-------------------+
root@server04:~# incus cluster role add server04 database-client
root@server04:~# incus cluster list
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
|   NAME   |                        URL                         |      ROLES      | ARCHITECTURE | FAILURE DOMAIN | DESCRIPTION | STATUS |      MESSAGE      |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server01 | https://[2602:fc62:b:8006:216:3eff:fe1a:ed0d]:8443 | database        | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server02 | https://[2602:fc62:b:8006:216:3eff:fe56:5276]:8443 | database        | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server03 | https://[2602:fc62:b:8006:216:3eff:fec6:eaa8]:8443 | database-leader | x86_64       | default        |             | ONLINE | Fully operational |
|          |                                                    | database        |              |                |             |        |                   |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+
| server04 | https://[2602:fc62:b:8006:216:3eff:fea3:6d]:8443   | database-client | x86_64       | default        |             | ONLINE | Fully operational |
+----------+----------------------------------------------------+-----------------+--------------+----------------+-------------+--------+-------------------+

Documentation : https://linuxcontainers.org/incus/docs/main/explanation/clustering/

Il est maintenant possible d’avoir un réseau uplink OVN n’existant que dans un sous-ensemble de serveurs d’un cluster. Les serveurs n’ayant pas accès au réseau en question doivent avoir parent=none dans leur configuration.

Avec ce paramètre, OVN ne lancera ses routeurs logiques que sur les serveurs qui sont physiquement connectés à l’uplink, tout en permettant au reste des serveurs de lancer des instances connectées au réseau OVN en tunellisant le trafic vers les autres serveurs.

Documentation : https://linuxcontainers.org/incus/docs/main/reference/network_ovn/

Définition des groupes dans un cluster via un preseed

La logique de preseed d’Incus a été étendue pour inclure les groupes dans les clusters.
Cela permet de configurer le groupe par défaut, ainsi que des groupes supplémentaires, durant l’initialisation.

root@server01:~# cat seed.yaml 
cluster_groups:
  - name: default
    description: Default cluster group
    config:
      instances.vm.cpu.x86_64.baseline: host
  - name: test2
    description: Test
    config:
      instances.vm.cpu.x86_64.baseline: core2duo
root@server01:~# incus admin init --preseed < seed.yaml 
root@server01:~#

Liste complète des changements

Voici une liste complète de tous les changements apportés par cette version :

Liste complète des commits
  • tests: Skip XFS on ZFS with Ubuntu 24.04
  • doc: Remove unnecessary backquotes around commands in TrueNAS doc
  • 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
  • i18n: Update translation templates
  • incusd/cluster: Clarify comment for cluster rebalancing
  • incusd/instance_patch: Fix description field not respecting PATCH semantics
  • Translated using Weblate (Portuguese)
  • 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
  • i18n: Update translation templates
  • 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
  • i18n: Update translation templates
  • po: Manual import from weblate
  • 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
  • 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
  • gomod: Update dependencies
  • 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
  • incusd/instances/oci: Properly handle environment from profiles
  • 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
  • gomod: Update dependencies

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.17.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

Incus 6.16 est maintenant disponible

29 août 2025

Introduction

L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.16 !

Cette nouvele version embarque un nouveau driver de stockage, la possibilité d’installer des VM Windows sans repaquetage d’ISO, et le support du stockage temporaire dans les conteneurs.

image|690x286

Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/

Nouvelles fonctionnalités

Driver de stockage TrueNAS

Incus peut désormais utiliser un serveur TrueNAS distant comme pool de stockage.

Son comportement est similaire au driver de stockage ZFS (que TrueNAS utilise), mais, plutôt que d’interagir avec ZFS localement, le driver utilise l’API de TrueNAS pour effectuer les actions sur un serveur de stockage distant. Les volumes sont exposés au serveur Incus en iSCSI par le serveur TrueNAS.

Puisqu’il s’agit d’un driver de stockage distant (comme Ceph, Linstor et LVM en cluster), il peut être utilisé avec des clusters de serveurs Incus pour assurer des migrations fluides d’instances sans déplacement de disques.

NOTE : Cette fonctionnalité ne fonctionne qu’avec une version pré-release de TrueNAS Scale.

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         |
+------+---------+---------------------+------------------------------------------------+-----------+-----------+

Documentation : https://linuxcontainers.org/incus/docs/main/reference/storage_truenas/

Gestion des CD-ROM connectés en USB aux VM

Nous avons modifié la façon dont les disques USB sont gérés.

Plutôt que d’utiliser le driver basique de stockage de masse USB de QEMU, comme c’était le cas avant, nous paramétrons désormais les périphériques plus finement.

L’avantage principal de cette approche est que l’ajout d’un ISO à une VM via le bus USB va désormais être vu par la VM comme un périphérique virtuel de type CD-ROM.

Ainsi, il est maintenant possible d’attacher à une VM un disque d’installation Windows et un disque contenant les drivers VirtIO avec io.bus=usb, et de booter et installer directement Windows sans besoin de repaquetage avec distrobuilder.

Disques tmpfs et tmpfs-overlay pour les conteneurs

Deux nouvelles sources « spéciales » pour les disques sont à présent supportées par les conteneurs :

  • source=tmpfs:
  • source=tmpfs-overlay:

Les disques utilisant ces sources supportent les propriétés suivantes :

  • size (taille du tmpfs)
  • initial.uid (utilisateur initial du point de montage)
  • initial.gid (groupe initial du point de montage)
  • initial.mode (permissions initiales du point de montage)
  • path (chemin de montage du disque)

De tels disques sont particulièrement utiles pour les conteneurs OCI qui n’ont pas de /etc/fstab éditable avec un système d’init qui applique les montages au démarrage.

La variante tmpfs-overlay permet de préserver l’accès au contenu déjà présent dans le chemin de montage, ne stockant que les additions et modifications dans le tmpfs.

Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_disk/

Configuration du comportement de la console dans la CLI

Pour faire suite à l’ajout récent d’un ensemble de configurations par défaut de la CLI, les options suivantes contrôlant le comportement de la console ont été ajoutées :

  • console_type (vga ou console)
  • console_spice_command (commande SPICE à lancer, dans laquelle les occurrences de SOCKET sont remplacées par le chemin du socket SPICE)

Ces options peuvent être utilisées pour changer le type de console par défaut utilisée par la CLI, ou encore complètement remplacer la commande à lancer lors de la connexion à une console VGA via SPICE.

Liste complète des changements

Voici une liste complète de tous les changements apportés par cette version :

Liste complète des commits
  • incus/cmd/incus/config_template.go: Adding ls alias to list command
  • incus/cmd/incus/snapshot.go: Adding ls alias to snapshot command
  • incus/cmd/incus/storage_volume.go: Adding ls alias to list command
  • incusd/instance/lxc: Fix handling of multiple USB device removal
  • Translated using Weblate (German)
  • incusd/device: Fix logic for checking if parent is a bridge in IsPhysicalWithBridge
  • incusd/device/disk: Enable posix ACL support for virtiofsd
  • incusd/os: Forward within cluster
  • incusd/ip/neigh: Fix MAC filtering
  • incusd: Move IncusOS detection to OS struct
  • incusd/networks: Filter network list on Incus OS
  • incusd/storage: Fix EnsureMountPath to avoid resetting permissions
  • shared/tls: Ignore expiration date of trusted certificates
  • incus: Replace IsNetworkName with IsInterfaceName
  • shared/validate: Remove unused IsNetworkName
  • shared/validate: Implement IsAPIName
  • doc/installing: Update Ubuntu versions in Zabbly repository
  • incusd: Consistently validate object names
  • tests: Fix invalid image alias name
  • tests: We no longer allow slashes in zones
  • incusd/instance: Move migration.stateful check to CanLiveMigrate
  • incusd/instance/qemu: Fix zero-value check regression
  • internal/instance: Add volatile..io.bus
  • incusd/device/disk: Refactor bus=XXX setting logic
  • incusd/network/bridge: Always set DHCPv6 dns-server field
  • incusd/device/disk: Revamp virtiofs+9p handling
  • doc: Update metadata
  • incusd/instance/qemu: Allocate ports for 9p and virtiofs
  • incusd/instance/qemu: Fix typing regression
  • incusd/instance/qemu: Make virtiofs shares fully hotpluggable and refactor 9p logic
  • Make the agent aware of the actual FSType
  • incus-agent: Remove dual mount type handling
  • shared/scriptlet: Move scriptlet utils to shared
  • internal/server/scriptlet: Update usages
  • incusd/sys/os: Tweak IncusOS detection
  • Translated using Weblate (Japanese)
  • generate-database: Fix sqlite3 error detection
  • incusd/database: Re-generate code
  • incusd/instances: Improve instance creation errors
  • incusd/storage_volumes: Fix error message
  • incusd/instance/qemu: Fix vTPM on arm64 systems
  • incus/console: Add default console command in configuration file
  • incusd/storage/zfs: Use compression and large-blocks on backups
  • incusd/apparmor: Add support for abi4.0
  • incusd/networks: Only include Incus OS interfaces if not already listed
  • incusd/networks: Tweak access control
  • incusd/network/sriov: Fix spacing
  • incusd/network: Pass request type to validator
  • tests/openfga: Tweak check (user is able to see local interfaces)
  • incusd/network/ovn: Don’t validate uplink network on server-specific notification
  • incusd/network/bridge: Don’t require dnsmasq on link-local IPv6
  • build(deps): bump actions/checkout from 4 to 5
  • docs: Clarify type and scope of user.* config keys
  • incusd/server/network: Fix update config regression
  • tests/basic_usage: Improve auto-restart test loop
  • api: storage_driver_truenas
  • incusd/storage/truenas: Introduce TrueNAS driver
  • docs: Update word list
  • docs: Add TrueNAS storage driver
  • tests: Add TrueNAS tests (and tweak testsuite)
  • incusd/resources: Clean golangci-lint
  • internal/usbid: Clean golangci-lint
  • incusd/resources: Move usbid as sub-package
  • incusd: Move resources package to shared package
  • shared/resources: Restrict to Linux
  • dhcp: stop 60s renew spam; request 51/58/59, derive sane T1, add jitter
  • incus/file: Add some examples with stdin/stdout
  • i18n: Update translation templates
  • incusd/apparmor: Don’t use abi4.0
  • incusd/config: Fix import shadowing
  • Translated using Weblate (Portuguese)
  • Fix typo and add clarity for project param
  • incusd/instance/lxc: Avoid issues with nested containers and ping group range
  • 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
  • incus/dhcp: run DHCP on all container interfaces and aggregate DNS from all leases
  • incusd/storage: Restrict setting description to global record
  • incusd/main_forknet: Fix gofumpt
  • 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
  • incus/dhcp: default routes and multiple DHCP clients for OCI containers
  • incusd/instance_exec: Relax connection timeout
  • incusd/network: Fix logic for UsedByInstanceDevices
  • incusd/network/ovn: Support for directional port groups
  • incusd/network/acl: Support for directional port groups
  • Makefile: Bump Go to 1.24.0
  • gomod: Update dependencies
  • github: Disable go-swagger on Go 1.25+
  • github: Disable Linstor tests for now
  • incusd/instance/utils: Don’t fail instance startup due to incomplete CPU baseline
  • incusd/patches: Migrate port groups to directional
  • incusd/device/disk: Add tmpfs support for disk devices
  • gomod: Update dependencies
  • 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
  • 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
  • api: container_disk_tmpfs
  • doc/device: Add documentation for tmpfs disk
  • tests: Add test for tmpfs disk
  • doc/installing: Update Debian install instructions
  • 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

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.16.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

Anciennes nouvelles