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),