Retour à l’aperçu de l’actualité
Incus 6.13 est maintenant disponible¶
30 mai 2025
Introduction¶
L’équipe d’Incus est heureuse d’annoncer la sortie d’Incus 6.13 !
Cette version apporte BEAUCOUP de nouvelles fonctionnalités de toutes tailles et pour tous les cas d’utilisation, donc tout le monde devrait être servi !
Comme d’habitude, vous pouvez l’essayer vous-même en ligne : https://linuxcontainers.org/incus/try-it/
Nouvelles fonctionnalités¶
Agent pour les VM Windows¶
La logique de l’agent Incus pour les VM a été refactorisée pour que celui-ci soit construit pour des systèmes d’exploitation autres que Linux, et une première implémentation pour Windows a été réalisée.
Il s’agit encore d’un travail préliminaire, puisque Windows ne possède pas de driver VirtIO signé pour vsock, qu’Incus utilise normalement pour communiquer avec son agent.
Cependant, le protocole que nous utilisons par-dessus vsock est HTTPS, donc nous nous en sommes contentés pour nous connecter (via le réseau donc) à l’agent Windows. Cela ne peut fonctionner que si Incus connaît l’adresse IP de la VM, et que celle-ci est directement joignable depuis l’hôte. Nous avons pour espoir de remplacer cette solution par une connexion vsock native dans le futur.
Cet agent permet de lancer des commandes avec incus exec
, d’obtenir les détails de l’OS avec incus info
et de transférer des fichiers avec incus file
.
Pour que l’agent fonctionne, il faut attacher un disque avec source=agent:config
à la VM Windows, qui se présente à l’OS comme un CD-ROM content l’agent Windows (s’il a été packagé dans la distribution de l’hôte) ainsi que les fichiers de configuration nécessaires.
À partir de là, vous pouvez démarrer l’agent manuellement ou le configurer comme un service système.
Nous aimerions des retours de personnes ayant de l’expérience dans les systèmes Windows pour améliorer l’utilisabilité de l’agent, par exemple en fournissant un script d’installation dans le CD-ROM, ou encore en y incluant les fonctionnalités qui manquent par rapport à l’agent Linux.
Cet effort de plusieurs mois a été rendu possible grâce au soutien financier du Sovereign Tech Fund.
Améliorations dans incus-migrate
¶
Un certain nombre d’améliorations ont été apportées à notre outil incus-migrate
.
Pour rappel, cet outil peut être lancé sur un serveur distant afin de le convertir en conteneur ou VM Incus, ou de convertir des conteneurs ou VM qu’il virtualise en instances importables dans Incus.
Avec cette nouvelle version, incus-migrate
supporte à présent :
- Le téléversement d’arbres de fichiers ou d’images disques comme volumes personnalisés
- L’import de disques additionnels ou de systèmes de fichiers lors de la création d’une nouvelle instance
- L’import d’une image OVA comme nouvelle instance
- La sélection d’un serveur ou d’un groupe de serveurs spécifique lorsqu’Incus est clusterisé
Des binaires statiques de incus-migrate
sont disponibles sur GitHub, utiles pour procéder à la conversion d’un système qui n’utilise pas déjà Incus.
Accès aux volumes personnalisés en SFTP¶
Nous cherchons progressivement à ce que les volumes personnalisés (de type système de fichiers) supportent une API similaire à celle que nous avons déjà pour les fichiers des instances.
Nous avons fait un premier pas dans ce sens : Incus supporte désormais les opérations en SFTP sur ces volumes, avec la commande incus storage volume file mount
. Les autres APIs et commandes devraient débarquer dans Incus 6.14.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Configuration des adresses IP externes des instances sur les réseaux OVN¶
Deux nouvelles clefs de configuration pour les cartes réseau des instances ont été ajoutées :
ipv4.address.external
ipv6.address.external
Ces clefs peuvent être utilisées pour configurer quelle adresse IP une instance doit utiliser pour le trafic sortant initié par celle-ci. Il s’agit typiquement de l’adresse externe du réseau (par défaut) ou d’une adresse de forward qui pointe sur l’instance.
Documentation : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-ovn
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Possibilité de fixer l’adresse MAC de la gateway sur les réseaux OVN¶
OVN gère une table d’association entre les adresses IP et les adresses MAC (équivalente aux tables ARP et NDP). Cette table est peuplée la première fois qu’OVN a besoin d’interagir avec une adresse donnée.
Ce n’est pas toujours idéal, dans la mesure où les réseaux utilisant VRRP ou d’autres mécanismes de MAC virtuelles peuvent avoir besoin de préconfigurer une adresse MAC donnée pour la gateway, et enregistrer l’information dans OVN.
Deux nouvelles clefs de configuration rendent cela possible sur les uplinks OVN de type physical
:
ipv4.gateway.hwaddr
ipv6.gateway.hwaddr
Documentation: https://linuxcontainers.org/incus/docs/main/reference/network_physical/
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Gestion de l’horloge dans les machines virtuelles¶
Incus définit désormais automatiquement l’option invtsc
de QEMU sur les machines virtuelles qui n’ont pas pour vocation à être migrées.
De plus, Incus écoute à présent les événements RTC provenant de QEMU afin de rendre persistantes les horloges RTC des VM. Cela permet de mieux gérer les VM Windows ainsi que les autres VM qui n’utilisent pas d’horloge matérielle UTC.
Nouvelles commandes get-client-certificate
et get-client-token
¶
L’outil en ligne de commande possède deux nouvelles commandes, incus remote get-client-certificate
et incus remote get-client-token
, permettant de simplifier l’extraction des certificats clients et l’émission de JWT à partir d’un certificat client depuis des scripts externes.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Support de DHCPv6 pour les conteneurs OCI¶
Le client DHCP intégré utilisé pour les conteneurs OCI est maintenant capable de faire du DHCPv6 stateful et stateless.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Configuration des tables réseau de l’hôte pour les cartes réseau routées¶
Incus permettait de contrôler dans quelle table de routage injecter les routes pour les cartes réseau de type routed
, mais cela manquait de flexibilité.
Désormais, nous avons de nouvelles clefs de configuration :
ipv4.host_tables
ipv6.host_tables
Celles-ci prennent une liste de tables, séparées par des virgules, dans lesquelles injecter les routes.
Documentation: https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-routed
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Support de la publication d’images scindées¶
Jusqu’à présent, lancer incus publish
générait des images unifiées, à savoir un seul fichier, souvent un tarball compressé, qui contenait à la fois le disque racine et la configuration Incus.
Désormais, nous supportons la génération d’images scindées, composées de deux fichiers, l’un pour les métadonnées Incus et l’autres pour les données du disque racine.
Dans l’outil en ligne de commande, il suffit de passer l’option --format=split
à incus publish
.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Preseed de certificats¶
Les preseeds des serveurs Incus peuvent désormais inclure des certificats.
Par exemple :
certificates: - type: client name: my-client certificate: |- PEM ENCODED CERTIFICATE
Cette fonctionnalité est particulièrement utile lors du provisionnement automatique de systèmes comme Incus OS.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Configuration du formattage des listes¶
Le fichier de configuration de l’outil en ligne de commande d’Incus (habituellement ~/.config/incus/config.yml
) peut maintenant être utilisé pour définir un format d’affichage pour les listes.
Par exemple :
defaults: list_format: compact
Cet exemple est équivalent à passer --format=compact
à toutes les commandes list
.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Ajout d’alias pour les commandes de création et de suppression¶
L’invite de commande Incus a été conçue de telle sorte que :
- Un objet portant un état a besoin d’être créé (
create
) et supprimé (delete
) - Un objet ou une relation sans état a besoin d’être ajouté (
add
) et enlevé (remove
)
Cette distinction a été faite pour signaler le risque associé à chaque action, mais peut également donner une impression de manque de cohérence, rendant ainsi plus complexe la création de scripts autour d’Incus.
Pour résoudre ce problème, nous avons ajouté un certain nombre d’alias dans l’outil en ligne de commande afin de trouver plus rapidement la commande voulue.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Conversion des appels SQL codés en dur vers notre générateur de code¶
La base de code d’Incus inclut un générateur de code pour les appels à la base de données.
Ce générateur est utile pour garantir la cohérence du comportement et éviter un certain nombre d’erreurs qui peuvent être commises en écrivant des requêtes à la main.
Bien qu’il soit de fait requis que toutes les nouvelles tables de la base utilisent le générateur, nous avons toujours un certain nombre d’objets qui ne l’utilisent pas.
Avec cette nouvelle version, nous avons terminé la migration des objets suivants :
- ACL réseau
- Load-balancers réseau
- Zones réseau
Bien que tous nos tests soient au vert, ce genre de refonte présente un certain risque d’introduction de régressions. Si vous notez le moindre changement de comportement avec ces objets dans Incus 6.13, merci d’ouvrir une issue pour que nous puissions investiguer.
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Filtrage côté serveur¶
Cette nouvelle version étend davantage les fonctionnalités de filtrage côté serveur.
Le filtrage est maintenant supporté pour :
incus network list
incus storage bucket list
incus project list
incus config trust list
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Documentation générée à partir du code¶
Nous avons également continué notre projet de génération automatique de documentation pour les clefs de configuration. Dans cette version, nous avons à présent de la documentation générée pour :
- Les périphériques PCI
- Les réseaux OVN
- Les réseaux physiques
- Les réseaux SR-IOV
- Les réseaux macvlan
Ce travail a été mené par des étudiants de l’Université du Texas à Austin.
Intégration des métriques d’Incus OS dans l’API d’export des métriques Incus¶
Lorsqu’Incus est lancé depuis Incus OS, les métriques de l’hôte (extraites avec node-exporter) sont désormais automatiquement incluses dans l’API d’export de métriques d’Incus.
Ce choix a été fait car Incus OS essaie de limiter au maximum le nombre de ports ouverts, et d’imposer au trafic d’être authentifié et autorisé au travers d’une pile logicielle unique (Incus lui-même).
Avis pour les packagers¶
Nous n’utilisons plus la commande externe umoci
et lui avons préféré le paquet Go équivalent.
Pour bénéficier du support du nouvel agent Windows, celui-ci doit également être compilé pour Windows, et rendu disponible à Incus en complément de l’agent Linux.
Liste complète des changements¶
Voici une liste complète de tous les changements apportés par cette version :
Liste complète des commits
- client: Add server-side filtering for networks
- incus/network: Use server-side filtering
- i18n: Update translation templates for network list cmd
- incus/network: Add config-based server-side filtering
- doc: Fix default value of ipv4.dhcp.gateway to IPv4 address
- doc: Update configs
- doc: Fix default value of ipv6.routes network_bridge
- doc: Update configs
- doc: Fix Debian 12 nickname
- incusd/firewall: Clear correct table for address sets
- incusd/firewall: Remove unused part of nftables structs
- incusd/dns: fix typo in error log
- incusd/device/pci: Port to gendoc
- doc: Update PCI documentation to use Gendoc
- doc: Update configs
- incusd/device/infiniband: Fix gendoc entity
- incusd/device/tpm: Fix gendoc entity
- doc: Update config
- doc: Update TPM device gendoc
- doc: Update Infiniband device gendoc
- incusd: Rename reverters from revert to reverter
- incus-user: Rename reverters from revert to reverter
- incus-agent: Rename reverters from revert to reverter
- internal/linux: Rename reverters from revert to reverter
- incusd: Rename reverters from revert to reverter
- incusd: Use errors.Is instead of direct error comparison Replace direct error comparison with errors.Is checks to avoid potential bugs with wrapped errors.
- incusd: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- incus-user: Use errors.Is instead of direct error comparison
- incus: Use errors.Is instead of direct error comparison
- internal/server: Use errors.Is instead of direct error comparison
- internal/linux: Use errors.Is instead of direct error comparison
- internal/eagain: Use errors.Is instead of direct error comparison
- internal/server: replace manual unwrap call with errors.As
- internal/rsync: replace manual unwrap call with errors.As
- internal/server: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- internal/linux: Use errors.As instead of type switching Replace type switching on an error with errors.As to avoid potential bugs.
- internal/server: make all methods on the zfs struct take a pointer
- internal/server: change method isAllowed on the dnsHandler struct into a static function
- shared/api: unify methods declared on the Instance struct to all take a pointer
- generate-database: unify methods declared on the Field struct to all take a pointer
- internal/server: refactor getting heartbeat mode name into a function
- internal/server: rename close to closeFunc
- internal/version: Rename variables to better represent what they are used for
- client: Rename variables because error is a builtin interface name
- incusd: Rename variables because recover and min are builtin functions
- incusd: Rename variables because they collide with builtin function names
- generate-database/db: Un-export joinConfig
- incusd: Introduce patchRun type
- incusd: Remove unused parameter names in cobra commands
- incusd: Remove unused parameters or rename unused parameters to _
- incusd: Un-export command functions
- incusd: Don't export internal websocket struct functions
- incusd: Don't export internal migration struct functions
- incusd: Fix import shadowing
- incusd/instance/drivers: Rewrite config entries as maps
- incusd/scriptlet/qemu: Remove legacy wrapper
- incusd/instance/drivers: Fix tests
- incusd/instance/drivers: Use fmt.Fprintf
- client: Add server-side filtering for storage buckets
- incus/storage_bucket: use server-side filtering
- incusd/firewall/nftables: Fix handling of address set deletion
- incusd/instance/qemu: Handle agents with limited information
- incus/file: Handle Windows
- incus-agent: Split OS specific logic
- incus-agent: Set base directory
- incus-agent: Reduce code duplication
- incus-agent/exec: Move away from os.File
- incus-agent: Add initial Windows support
- incusd/instance/qemu: Add support for agent over HTTPS
- incusd/instance/qemu: Add agent drive support for Windows
- github: Build incus agent for Linux and Windows
- incusd: remove conditional check that is always true
- incusd: remove outdated comment about no longer existing force option
- incusd: remove code that was unreachable in api_internal.go
- incusd: remove code that was unreachable in api_internal.go
- shared/archive: remove unnecessary err check
- incusd: refactor condition checks that are always true or false respectively
- cmd/incus: refactor unnecessary err condition checks
- internal/linux: refactor unnecessary err condition check
- client: remove unnecessary err check and unused variable ioErr
- incusd: refactor process kill error being ignored
- incusd/instance: fix device finding logic
- incusd/instance/drivers: Make test ignore host-nodes order
- incus: refactor admin_init.go config initialization
- incusd/network/ovn: Wait up to 10s for OVN northd to allocate an IP
- incusd/dnsmasq: refactor DHCPValidIP condition checks
- incusd: Prevent panic when VolumeSize is missing
- incusd/migrate: Set write time limit for sendControl method
- client: Add CreateStoragePoolVolumeFromMigration
- incus-migrate: Prepare migration code for adding custom volume support
- incus-migrate: Support for uploading filesystems and disks as custom volumes
- incusd/network/bridge: Add missing line breaks
- client: Add GetProjectsWithFilter
- incus: Add filtering support for project list
- incusd/network/ovn: Port to gendoc
- doc/reference/network_ovn: Port to gendoc
- doc: Update configs
- incusd/network/bridge: Add BGP keys to gendoc
- doc/reference/network_bridge: Add BGP configuration
- incusd/network/physical: Port to gendoc
- doc/reference/network_physical: Convert to gendoc
- doc: Update configs
- Remove gopkg.in/tomb.v2 dependency
- incusd/instance/qemu: Don't allow hotplug when at maxmem
- incusd/device/nic_routed: Fix spacing
- incusd/network: Clear gofumpt
- api: instance_nic_routed_host_tables
- incusd/server/device/nic_routed.go: Added host_tables
- incusd/device/nic_routed: Deprecate ipv4.host_table and ipv6.host_table
- doc: Update configs
- incusd: rename variable
mux
torouter
so it does not collide with the package of the same name - cmd/incus-agent: rename variable
mux
torouter
so it does not collide with the package of the same name - incusd: rename all instances of sha256.New() to hash256 so they dont collide with the package name
- client: rename all instances of sha256.New() to hash256 so they dont collide with the package name
- cmd/incus-migrate: add missing switch case with explicit comment
- incusd: internalize the default case into the switch so it covers all iota constants
- internal/filter: internalize the default case into the switch so it covers all iota constants
- incusd: add missing err handling for transactions
- incusd/storage: Fix migration error due to rounding
- incusd/storage/zfs: Optimize snapshot deletion
- incusd: add more ErrorList tests for error formatting
- incusd: refactor Error implementation of ErrorList
- incusd: make all functions on ErrorList take a pointer receiver
- incusd: rename Error struct and make it private
- internal/iprange: add tests for the iprange.Range struct
- internal/dnsutil: remove unused package dnsutil
- incusd: rename instanceActionToOptype to instanceActionToOpType
- incusd/instance/drivers: Rewrite QEMU config override logic
- incusd/instance/drivers: Adapt the tests to the new override logic
- incusd/instance/drivers: Drop old RegEx parser and return proper errors
- incusd/instance/drivers: Update tests
- tools: Add govulncheck
- incusd: remove redundant size 0 initialization for maps
- cmd/generate-config: remove redundant size 0 initialization for maps
- cmd/lxc-to-incus: remove redundant size 0 initialization for maps
- incusd/certificates: Properly handle PEM encoding on POST
- incusd/network/macvlan: Add gendoc comments
- doc: Update configs
- doc: Use gendoc for macvlan
- incusd/instance/qemu: Don't allow QEMU RSS to exceed memory limit
- lint: Exclude generated docs from codespell
- lint: Exclude generated manpages from codespell
- incusd/network/macvlan: Run gofumpt
- client: Add server-side filtering for certificates
- incus/config_trust: Use server-side filtering
- incus-migrate: introduce Migrator interface with separate structs
- incus-migrate: Add support for additional disks
- cmd/generate-database/lex: Support pluralizing entities ending in y
- cmd/generate-database/db: Support multi-word association tables
- cmd/generate-database/db: Don't duplicate join statements
- incusd/dns: Restart DNS server on failure
- incusd/instance/qemu: Limit memory hotplug slots to 8
- incusd/network/sriov: Port to gendoc
- doc: Use gendoc for network sriov
- doc: Update configs
- api: instance_publish_split
- shared/api: Add field for image type to ImagePost struct
- incusd/instance: Change instance interface to add support for exporting to split images
- incusd/instance/lxc: Add support for publishing split images for containers
- incusd/instance/qemu: Add support for publishing split images for VMs
- incusd/images: Add support for publishing split images
- incus/publish: Add new flag to publish command for split images
- shared/cliconfig: Added DefaultSettings to Config Struct
- incus: Added defaultListFormat helper function
- incus: Added Default List Format calls in List Commands
- tests: Add test for publishing split images
- i18n: Update translation templates
- doc/rest-api: Refresh swagger YAML
- incusd/device/sriov: Handle cards without configurable spoof checking
- incusd/firewall/nftables: disable UDP checksum validation for packets on bridged network
- cmd/generate-database/db: Use snake case entity names for ID column names
- incusd/db/network_acls: Move to generated functions
- incusd: Switch to new GetNetworkACLs
- api: init_preseed_certificates
- client: Add certificate handling to ApplyServerPreseed
- shared/api: Add Certificates to InitLocalPreseed
- doc/rest-api: Refresh swagger YAML
- incusd: Switch to new GetNetworkACLsAllProjects
- shared/api: Add URL function on NetworkACL
- incusd: Switch to new GetNetworkACLURIs
- incusd: Switch to new DeleteNetworkACL
- incusd: Switch to new RenameNetworkACL
- incusd: Switch to new CreateNetworkACL
- incusd: Switch to new GetNetworkACLNameAndProjectWithID
- incusd: Switch to new GetNetworkACLIDsByNames
- incusd: Move remaining network ACLs DB functions
- client: Fix required extension for GetNetworkAddressSetsAllProjects
- incusd: Move cluster resource caching logic
- incusd/main_forknet: Implement stateful DHCPv6
- incusd/main_forknet: Add delay to wait for IPv6 link-local
- incusd/main_forknet: Add stateless DHCPv6 support
- gomod: Update dependencies
- lint/govulncheck: Don't test stdlib
- incus: Move sshfs helpers to utils
- CONTRIBUTING: Clearly ban LLMs
- doc/wordlist: Extend acronyms
- incusd/response: Move SFTPResponse
- api: custom_volume_sftp
- incusd/storage_volumes: Add SFTP endpoint
- client: Add GetStoragePoolVolumeFileSFTPConn
- incus: Add incus storage volume file mount
- i18n: Update translation templates
- doc/rest-api: Refresh swagger YAML
- incus/remote: Add "get-client-certificate" and "get-client-token"
- i18n: Update translation templates
- incus-migrate: Add support for .OVA import
- incus: Add add aliases to incus commands
- incus: Add create aliases to add commands
- incus: Add delete and rm aliases to remove commands
- incus: Add remove aliases to delete commands
- incus-agent: Skip /dev/incus on Windows
- incusd/instance/qemu: Don't block on Windows agent
- internal/util: Add Incus OS detection
- incusd: Use IsIncusOS
- incusd/metrics: Include OS metrics on Incus OS
- incusd/instance/lxc: Refactor inheritInitPidFd
- Removed useless else in Makefile
- incusd/storage/ceph: Fix parent tracking for VMs
- incusd/main_forknet: Don't touch resolv.conf when no leases
- incusd/storage/ceph: Fix typo in parseParent
- tests: Switch clustering test subnet
- incusd/storage/linstor: Prevent mounting unreachable pools
- incusd: Simplify code by using modern constructs
- internal/util: Simplify code by using modern constructs
- internal/linux: Simplify code by using modern constructs
- internal/filter: Simplify code by using modern constructs
- generate-config: Simplify code by using modern constructs
- generate-database: Simplify code by using modern constructs
- incus-agent: Simplify code by using modern constructs
- incus-benchmark: Simplify code by using modern constructs
- incusd: Simplify code by using modern constructs
- lxc-to-incus: Simplify code by using modern constructs
- incus: Simplify code by using modern constructs
- shared/api: Simplify code by using modern constructs
- shared/cliconfig: Simplify code by using modern constructs
- shared/idmap: Simplify code by using modern constructs
- shared/ioprogress: Simplify code by using modern constructs
- shared/osarch: Simplify code by using modern constructs
- shared/subprocess: Simplify code by using modern constructs
- test: Simplify code by using modern constructs
- Translated using Weblate (Spanish)
- incusd/instances: Tweak storage migration errors
- incusd/instances_post: Prevent pointless device overrides
- incusd/instance: Fix incorrect cluster.Connect call
- incusd/instance/qemu: Enable invtsc CPU extension when not migratable
- Makefile: Pin tablewriter (API breakage)
- client: Use the umoci Go package instead of the command
- doc: Remove mentions of the umoci command
- gomod: Update dependencies
- tests: Update godeps
- tests: Skip rootless-containers/proto/go-proto (Apache 2.0)
- internal/server/device: remove no-op rewriteHostAddr
- incusd/forkproxy: join the correct mntns for listen
- tests: add tests for bind=container with proxy device
- client: Don't needlessly use format string functions
- tests: Don't needlessly use format string functions
- lxd-to-incus: Don't needlessly use format string functions
- lxc-to-incus: Don't needlessly use format string functions
- incus-simplestreams: Don't needlessly use format string functions
- generate-config: Don't needlessly use format string functions
- generate-database: Don't needlessly use format string functions
- incus-agent: Don't needlessly use format string functions
- fuidshift: Don't needlessly use format string functions
- incus-user: Don't needlessly use format string functions
- incus-migrate: Don't needlessly use format string functions
- incus: Don't needlessly use format string functions
- shared/validate: Don't needlessly use format string functions
- shared/util: Don't needlessly use format string functions
- shared/tls: Don't needlessly use format string functions
- shared/tcp: Don't needlessly use format string functions
- shared/subprocess: Don't needlessly use format string functions
- shared/simplestreams: Don't needlessly use format string functions
- shared/logger: Don't needlessly use format string functions
- shared/ioprogress: Don't needlessly use format string functions
- shared/idmap: Don't needlessly use format string functions
- shared/cliconfig: Don't needlessly use format string functions
- shared/cancel: Don't needlessly use format string functions
- shared/ask: Don't needlessly use format string functions
- shared/archive: Don't needlessly use format string functions
- shared/api: Don't needlessly use format string functions
- internal/util: Don't needlessly use format string functions
- internal/usbid: Don't needlessly use format string functions
- internal/rsync: Don't needlessly use format string functions
- internal/netutils: Don't needlessly use format string functions
- internal/migration: Don't needlessly use format string functions
- internal/linux: Don't needlessly use format string functions
- internal/instance: Don't needlessly use format string functions
- internal/filter: Don't needlessly use format string functions
- internal/cmd: Don't needlessly use format string functions
- incusd: Don't needlessly use format string functions
- incus-migrate: Prompt for cluster target
- incus/instance/qmp: Implement our own QMP client
- incusd/instance/qmp: Add tests for in-house QMP
- incusd/instance/qmp: Switch to our own QMP client
- gomod: Update dependencies
- incusd/instance/qmp: Don't export internal QMP implementation
- Make sure limits.memory <= root.size.state
- incusd/instance/qmp: if else if to switch case
- incusd/instance/qmp: Remove weird qemu qmp bug handling
- incusd/instance/qmp: Refactor qmpWriteMsg
- incusd/db/node: Add GetPendingNodeByName
- api: network_ovn_external_nic_address
- incusd/device/nic_ovn: Added the two new nic options
- incusd/network/ovn: Add support for applying external address
- doc: Update config
- incusd/db/cluster: Update generated files
- api: network_physical_gateway_hwaddr
- incusd/network/ovn: Bump base schema to 23.03.0
- incusd/network/physical: Add gateway hwaddr config
- incusd/network/ovn: Add StaticBinding functions
- incusd/network/ovn: Add support for static MAC binding
- doc: Update config
- typo: mountabble -> mountable
- typo: DIsk -> Disk
- typo: mount -> unmount
- incusd/storage: fix squashfs unpacking to NFS destinations
- incusd/cluster: Add support for pending nodes in Leave and Purge functions
- client: Add DeletePendingClusterMember
- incusd: Remove cluster member on join failure
- incusd/instance/qmp: Associate request/reply with a command ID
- incusd/instance/qmp: Add command ID to runWithFile
- incusd/instance/qmp: Add command ID to RunJSON
- incusd/instance/qemu: Use switch statement
- internal/instance: Add RTC volatile keys
- incusd/instance/qemu: Handle RTC base adjustments
- doc: Update config
- incusd: Return empty slice instead of nil when no storage pool is present
- tests: Fix LINSTOR preconfiguration
- incusd/instance/drivers: Clear the volatile.cpu.nodes if needed
- incusd/storage/drivers: Add support for specifying username in CephFS commands
- incusd/device: Pass username in CephFS commands
- incusd/db/cluster: Rename network ACL files
- incusd/db/cluster: Port load balancers to database generator
- vscode: Add VSCode launch.json for incusd "Run and Debug" functionality
- incusd: Update for generated load-balancer functions
- incus/network_zone: Fix typo in help description
- po: Update translation template
- incusd/db: Port network zone to database generator
- incusd: Port to new database functions
- incusd/instance/drivers: Allow updating root disk size and root io.bus simultaneously
- incusd/db: Fix network ACL generation
- incusd/db: Properly remove node/location from load balancers
- incusd/network/load_balancer: Fix update logic
- incusd/network: Fix ACL regression
- gomod: Update dependencies
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.13.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