pare-feu et pools Proxmox : les tenants du site, pas toute la federation

Les deux devis balayaient tous les dossiers freres. Le runner du site, qui
gardait un clone de patient 0, proposait de recreer ses groupes t29 ; le poste
comptait un dossier de CI comme tenant. La frontiere et le SDN filtraient deja
par underlay.tenants : ces deux-la suivent maintenant la meme liste.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-09-28 09:57:06 -04:00
parent e1a4dc62bb
commit fde604c2a5
3 changed files with 16 additions and 4 deletions

View file

@ -30,6 +30,13 @@ rend `{'_erreur': …}`, et `rep or []` parcourait ce dict comme une liste vide.
`ANCIEN_NOMMAGE` : sortie du devis sans cela, la zone aurait été lue comme étrangère et
laissée en place, avec ses VLAN 1291-1296.
`devis_proxmox_fw.py` et `devis_proxmox_pools.py` balayaient encore TOUS les dossiers
frères (`decouvrir()`), alors que la frontière et le SDN s'en tiennent à
`underlay.tenants` (`decouvrir_du_site()`, dont la docstring le demandait déjà pour
« les devis qui équipent un site »). Le runner du site, qui gardait un clone de patient 0,
proposait donc de recréer ses groupes ; le poste comptait un dossier de CI comme tenant.
Les deux devis suivent maintenant la même liste : 2 tenants, et non 3.
Wiki republié (P60) : deux de ses pages nommaient patient 0. `make verifier` : 82 OK, 1 échec — P02,
`test_ecriture_plan.py` sur `domaines.yml` (`'list' object has no attribute 'get'`),
présent avant ce changement.

View file

@ -42,7 +42,7 @@ from resoudre_flux import ( # noqa: E402
_pairs,
_resoudre_sources,
)
from devis_reseau import admin_de, decouvrir, inventaire_de, prefixe # noqa: E402
from devis_reseau import admin_de, decouvrir_du_site, inventaire_de, prefixe # noqa: E402
LONGUEUR_MAX_GROUPE = 18 # limite de Proxmox pour un nom de groupe de securite
@ -385,7 +385,11 @@ def main(argv: list[str]) -> int:
ap.add_argument("--verifier", action="store_true")
args = ap.parse_args(argv)
devis = construire(decouvrir())
# LES TENANTS DE CE SITE, PAS TOUTE LA FEDERATION (2026-09-28). Le balayage des
# dossiers freres ramenait un tenant retire dont le runner gardait le clone, et un
# dossier de CI sur le poste. La frontiere et le SDN filtraient deja par
# `underlay.tenants` ; ce devis equipe le meme cluster, il suit la meme liste.
devis = construire(decouvrir_du_site())
if args.verifier:
total_g = sum(len(b["groupes"]) for b in devis["blocs"])
total_r = sum(len(g["regles"]) for b in devis["blocs"] for g in b["groupes"])

View file

@ -49,7 +49,7 @@ from inventory_rules import (POOL_SITE,
fonction_seq,
pool_de,
)
from devis_reseau import DOSSIER_INSTANCES, decouvrir # noqa: E402
from devis_reseau import DOSSIER_INSTANCES, decouvrir_du_site # noqa: E402
def _plan_de(nom_instance: str) -> dict:
@ -187,7 +187,8 @@ def main(argv: list[str]) -> int:
print(POOL_SITE)
return 0
devis = construire(decouvrir())
# Les tenants de CE SITE (voir `devis_proxmox_fw.main`, 2026-09-28).
devis = construire(decouvrir_du_site())
# LE SITE EST UN POOL AUSSI (2026-09-12). Les machines du genome — cache, forge, AC,
# noms, depot, supervision — ne derivent d'aucun index : elles sont l'infrastructure
# SUR laquelle les index vivent. D'ou un nom invariable, `Site-OPS`, identique d'un