From 02bbba61b37cab3cf8a2cbcd2e06e270a4281aca Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Sun, 5 Jul 2026 20:38:44 -0400 Subject: [PATCH] =?UTF-8?q?Nomenclature=20:=20VLAN=20d=C3=A9riv=C3=A9=20(i?= =?UTF-8?q?ndex=20=C3=97=2010=20+=20zone)=20pour=20r=C3=A9seau=20converg?= =?UTF-8?q?=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sur un trunk convergé (tenants partagent l'infra), les VLAN doivent être uniques GLOBALEMENT. deriver_nomenclature (ip-miroir) dérive VLAN = index×10 + zone : chaque tenant son bloc de 10, 1-9 réservés à l'infra partagée. Le VLAN contenant le tenant, le VMID mène avec le VLAN (VLAN·octet·seq, ≤ 9 chiffres Proxmox). compact (lab) inchangé. GUI (miroir) + validation 1-4094 : compatibles. Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 8 ++++++++ scripts/inventory_rules.py | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00d2efc..243224d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## 2026-07-05 +### Modifié +- **VLAN dérivé du tenant (réseau convergé).** `deriver_nomenclature` (schéma `ip-miroir`) dérive + désormais le VLAN = `index × 10 + zone` — **unique globalement** sur un trunk convergé (chaque + tenant son bloc de 10 ; 1-9 réservés à l'infra partagée). Le VLAN contenant déjà le tenant (1er + chiffre = index), le VMID **mène avec le VLAN** (`VLAN·octet·seq`, ≤ 9 chiffres Proxmox). Ex. + Technolibre (index 2) → VLANs 21-26, VMID 2101101. Le schéma `compact` (lab, sandbox) reste + inchangé. Champs `vlan:` codés en dur retirés des catégories ip-miroir (désormais dérivés). + ### Ajouté - **Zéro-confiance est-ouest — flux Métriques, Logs et Courriel chiffrés.** Suite du chantier (après PostgreSQL) : **métriques** (node_exporter sert en HTTPS via cert step-ca + diff --git a/scripts/inventory_rules.py b/scripts/inventory_rules.py index cb276f8..dc8c906 100644 --- a/scripts/inventory_rules.py +++ b/scripts/inventory_rules.py @@ -335,12 +335,18 @@ def deriver_nomenclature(fonction: str, seq: int, nomenclature: dict) -> dict | # index.categorie.service.sequence (largeur variable, VMID des instances existantes). schema = nomenclature.get("vmid_schema", "compact") if schema == "ip-miroir": - vmid = f"{index}{int(c.get('vlan', 0)):03d}{hote:03d}{int(seq):02d}" + # VLAN DERIVE : index x 10 + zone. Unique GLOBALEMENT sur un trunk convergE + # (chaque tenant a son bloc de 10 ; 1-9 reserves a l'infra partagee). Le VLAN + # contient deja le tenant (1er chiffre = index), donc le VMID MENE avec le VLAN + # (pas de chiffre d'index separe) et tient dans les 9 chiffres max de Proxmox. + vlan = index * 10 + int(cat) + vmid = f"{vlan}{hote:03d}{int(seq):02d}" else: + vlan = c.get("vlan") vmid = f"{index}{cat}{svc}{int(seq):02d}" return { "vmid": vmid, - "vlan": c.get("vlan"), + "vlan": vlan, "adresse_ip": f"{base3}.{hote}", "passerelle": c.get("passerelle"), "cidr": nomenclature.get("cidr_hote", 24),