feat(incus) : le gestionnaire de conteneurs sur les quatre nœuds #20

Merged
thystips merged 1 commit from feat/incus into main 2026-08-08 17:38:23 +02:00
Owner

Le démon, un magasin dir et un profil. Rien ne tourne dedans — c'est le socle, pas encore un service déplacé.

Paquet Debian (6.0.4 LTS), jamais le dépôt amont : c'est ce qui rend acceptable un gestionnaire de conteneurs sur une bordure. Coût assumé : les images OCI demandent 6.3, hors de portée — sans importance, nos services viennent en grappes (Caddy + son agent + Bird) et pas en processus uniques.

Trois choix qui laissent le nœud tel qu'il était :

  • aucun réseau managé → vérifié après installation, nft list tables ne montre toujours que inet dn42 ;
  • aucune API réseau → socket unix seulement, donc rien à ajouter à la matrice des flux ;
  • magasin dir → le rollback vient du remplacement, les conteneurs étant jetables.

Pas de incus admin init --preseed : il initialise et refuse d'être rejoué, donc il ne pouvait pas être le régime permanent d'un rôle qui doit converger à changed=0.

Mesuré de bout en bout, avec un conteneur jetable détruit depuis :

  • la question ouverte est tranchéecommunity.general.lxd_storage_pool_info parle au socket d'Incus via url: unix:/var/lib/incus/unix.socket. Les modules lxd_* suffisent ;
  • un conteneur sur br-svc joint tout DN42 par simple routage : loopback distante à 13,3 ms, pair DN42 externe à 5,0 ms, joignable depuis l'autre site à 13,7 ms ;
  • le pare-feu n'a rien demandé (iifname @dn42_ifaces oifname @dn42_ifaces accept couvre déjà le cas) ;
  • empreinte : 86 Mo le démon, 22 Mo un conteneur Debian au repos (moitié de l'estimation), 100 Mo d'image en cache.

changed=0 au second passage sur les quatre.

Le démon, un magasin `dir` et un profil. **Rien ne tourne dedans** — c'est le socle, pas encore un service déplacé. Paquet **Debian** (6.0.4 LTS), jamais le dépôt amont : c'est ce qui rend acceptable un gestionnaire de conteneurs sur une bordure. Coût assumé : les images OCI demandent 6.3, hors de portée — sans importance, nos services viennent en **grappes** (Caddy + son agent + Bird) et pas en processus uniques. Trois choix qui laissent le nœud tel qu'il était : - **aucun réseau managé** → vérifié après installation, `nft list tables` ne montre toujours que `inet dn42` ; - **aucune API réseau** → socket unix seulement, donc rien à ajouter à la matrice des flux ; - **magasin `dir`** → le rollback vient du remplacement, les conteneurs étant jetables. Pas de `incus admin init --preseed` : il initialise et refuse d'être rejoué, donc il ne pouvait pas être le régime permanent d'un rôle qui doit converger à `changed=0`. **Mesuré de bout en bout**, avec un conteneur jetable détruit depuis : - **la question ouverte est tranchée** — `community.general.lxd_storage_pool_info` parle au socket d'Incus via `url: unix:/var/lib/incus/unix.socket`. Les modules `lxd_*` suffisent ; - un conteneur sur `br-svc` **joint tout DN42 par simple routage** : loopback distante à 13,3 ms, **pair DN42 externe à 5,0 ms**, joignable depuis l'autre site à 13,7 ms ; - le pare-feu n'a rien demandé (`iifname @dn42_ifaces oifname @dn42_ifaces accept` couvre déjà le cas) ; - empreinte : **86 Mo** le démon, **22 Mo** un conteneur Debian au repos (moitié de l'estimation), 100 Mo d'image en cache. `changed=0` au second passage sur les quatre.
Le démon, un magasin et un profil. Rien ne tourne dedans — c'est le socle, pas encore
un service déplacé.

Le paquet Debian, jamais le dépôt amont : trixie fournit 6.0.4, la branche LTS, et
c'est cette contrainte qui rend acceptable de poser un gestionnaire de conteneurs sur
un routeur de bordure. Ce que ça coûte est assumé et documenté — les images OCI
demandent 6.3, donc elles sont hors de portée, ce qui n'est pas une perte puisque nos
services viennent en grappes et non en processus uniques.

Trois choix qui gardent le nœud tel qu'il était :

- AUCUN réseau managé. Les conteneurs se branchent sur `br-svc`, déjà asservi à la VRF
  et déjà annoncé par Bird. Vérifié après installation : `nft list tables` ne montre
  toujours que `inet dn42`, Incus n'a rien écrit — sa table n'existe que pour ses
  propres ponts NAT.
- AUCUNE API réseau. Pas de `core.https_address` : la socket unix et rien d'autre.
  Une API d'administration sur une bordure, ce serait une ligne de matrice, un
  certificat client et un port à défendre, pour une ergonomie qu'Ansible fournit déjà.
- Magasin `dir`. Le retour arrière s'obtient par remplacement, les conteneurs étant
  jetables, donc aucune couche de stockage nouvelle.

Pas de `incus admin init --preseed` : il initialise, et rejoué contre un serveur qui a
déjà son magasin il refuse — il ne pouvait donc pas être le régime permanent d'un rôle
qui doit converger à changed=0. Le rôle lit, compare et n'écrit que si ça diffère,
comme `openbao_config` avec `uri`.

MESURÉ de bout en bout, avec un conteneur jetable détruit depuis :

- la question ouverte est tranchée — `community.general.lxd_storage_pool_info` parle
  au socket d'Incus via `url: unix:/var/lib/incus/unix.socket`, donc les modules `lxd_*`
  suffisent et il n'y aura pas à piloter la CLI à la main ;
- un conteneur sur `br-svc` joint TOUT DN42 par simple routage : sa loopback distante
  à 13,3 ms, et un pair DN42 externe à 5,0 ms. Il est joignable depuis l'autre site à
  13,7 ms. C'est la propriété qui fera disparaître les contournements de VRF ;
- le pare-feu n'a rien demandé : `iifname @dn42_ifaces oifname @dn42_ifaces accept`
  couvre déjà le cas, `br-svc` étant dans l'ensemble ;
- l'empreinte : 86 Mo pour le démon, 22 Mo pour un conteneur Debian au repos — la
  moitié des 40 Mo estimés — et 100 Mo d'image en cache.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FGwvXLVXJ2PrRFwJTB3Xp9
thystips deleted branch feat/incus 2026-08-08 17:38:23 +02:00
thystips referenced this pull request from a commit 2026-08-08 19:28:03 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ThysTips_dn42/infra-dn42!20
No description provided.