patient 0 : il n existe plus, et le depot le disait encore au present

Ses machines sont detruites. Le depot en parlait comme d un ecosysteme vivant,
et l une de ces phrases datait de la veille : positionnement.md comptait ses
5 VM dans la flotte, chiffre que j avais moi-meme ecrit en revisant.

CE QUI EST CORRIGE

positionnement.md         51 VM sur quatre plans vivants, et non 56 sur cinq
sortir-les-cles-du-poste  le genome est replique DEUX fois, non trois
wiki/Glossaire.md         SQLite : ce qu il PORTAIT
filiation-emancipation    la famille de pairs a perdu un pair
decisions-architecture    D-83 consigne le retrait, avec son cout
carte-set-ops.md          80 decisions en vigueur

LE COUT, PARCE QU IL N ETAIT NOMME NULLE PART

D-82 lui avait laisse deux raisons d etre : la mise en oeuvre de reference du
modele origine, et un TEMOIN de plus du genome. Le retrait solde la premiere et
abaisse la seconde de trois copies vivantes a deux.

Or c est le raisonnement de son propre README qui portait tout : on n echappe
pas a la boucle par la ruse, mais par le NOMBRE. Le nombre a baisse. Et le point
unique de defaillance que patient 0 existait pour eliminer — eregion, hors
flotte, que Set-OPS ne deploie ni ne sauvegarde ni ne prouve — est toujours a la
racine. Il n a jamais ete elimine, seulement promu ; il n y a maintenant plus de
miroir independant pour l absorber.

CE QUI RESTE SUR LE TERRAIN, ET QUI N EST PAS DE LA PROSE

Son plan est encore sur disque en federe: true. La federation lui reserve donc
toujours l index 29, la zone SDN t29, ses VNets, les VLAN 1291-1296 et les
sous-reseaux 10.29.16-21.0/24. Quatre machines du site — backup, cache, dns,
forge — acceptent encore SSH, apt, DNS et HTTPS depuis 10.29.0.0/16 : un
perimetre vide. Le runner du site clone encore ops-patient0.

C est un geste, pas une intention, et il touche le reseau : il n est pas fait
ici. La sequence est listee dans D-83.

make prouver --verifier : CONFORME, 56 OK, 0 echec, 1 saute.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
This commit is contained in:
Daniel Allaire 2026-09-07 00:13:21 -04:00
parent 5bc3bceac1
commit 36b6926e21
6 changed files with 25 additions and 11 deletions

View file

@ -28,7 +28,7 @@ README de rôles). Cette page comble ces deux trous.
| documents | 39 | `docs/*.md` |
| pièces d'audit | 36 | `docs/audit/*` |
| unités de wiki | 27 | `wiki/*.md` |
| décisions en vigueur | 79 | lignes `\| **D-nn** \|` de `decisions-architecture.md` |
| décisions en vigueur | 80 | lignes `\| **D-nn** \|` de `decisions-architecture.md` |
| décisions renversées | 3 | lignes `\| **D-nn** —` du même document |
## 1. À lire d'abord (dans l'ordre)

View file

@ -56,6 +56,7 @@ sont les seules vérifiables.
| # | Décision | Pourquoi | Détail | Garde |
|---|---|---|---|---|
| **D-82** | **Patient 0 n'est le parent de personne.** Il est la **mise en œuvre de référence** du modèle `origine` — le plus petit écosystème complet — et un pair de la famille du génome, pas sa racine | trois faits l'ont retiré un par un : D-81 a donné l'autorité du génome à la forge du SITE (son dernier lecteur corrigé le 2026-08-26, Technolibre le 08-31) ; le dénominateur commun vit dans les modèles depuis le 08-24 ; et **l'ancêtre était locataire de son enfant** — index 29 sur la fabric de `SITE-Chezlepro`, qui descend de lui. Ce qu'il devait éliminer — le SPOF `eregion`, hors flotte — n'a PAS été éliminé mais **promu** : le poste y pousse, la forge du site en tire. Cette dette appartient désormais au SITE, et la nommer est le minimum : *un objectif qu'on abandonne sans le dire devient un objectif qu'on croit atteint* | `OPS-Patient0/README.md`, `docs/filiation-emancipation.md` | — |
| **D-83** | **Patient 0 a été retiré** — ses machines n'existent plus (constaté le 2026-09-06) | D-82 lui avait laissé une raison d'être : la mise en œuvre de référence du modèle `origine`, et un **témoin** de plus du génome. Le retrait solde la première et **abaisse la seconde de trois copies vivantes à deux** (`eregion`, la forge du site). Ce qu'il devait éliminer — le SPOF `eregion` — reste entier, et sans lui il n'y a plus de miroir indépendant pour l'absorber. **Son plan reste sur disque et la fédération lui réserve toujours l'index 29** : tant que ce n'est pas tranché, le site ouvre SSH, apt, DNS et HTTPS à `10.29.0.0/16` — un périmètre vide | `OPS-Patient0/`, `SITE-Chezlepro/flux-genere/` | **P21** (index), **P23** |
| **D-81** | **La forge du SITE fait autorité pour le génome.** Toute autre copie — y compris celle d'où le moteur a été poussé jusqu'ici — est un **miroir**. Le poste de l'exploitant ne route pas jusqu'à elle : c'est le **runner du site** qui publie, par `make genome-pousser` | un écosystème se reproduit depuis la forge de son site : c'est de là qu'il clone son moteur, ses plans, ses modèles. Si l'autorité est ailleurs, cette forge devient un cache qu'on croit à jour — et le 2026-08-26 elle était **quatre commits en arrière** sans que rien ne le signale, dont le correctif qui désarme le pare-feu Proxmox. **Un écosystème qui se reproduit depuis une forge en retard reproduit ses défauts.** Le poste n'a de patte que sur l'administration, et on ne perce pas de chemin pour lui : le runner existe pour ce travail | `playbooks/maintenance/genome_pousser.yml`, `scripts/genome_colis.py`, `Makefile` §genome-pousser | — |
| **D-13** | Un **hébergeur** sert plusieurs **tenants** et a son tenant par défaut | Chezlepro est les deux à la fois, ce qui masquait la distinction | `frontiere-opnsense.md` §2 | — |
| **D-14** | `underlay.yml` appartient à l'**hébergeur**, monté par symlink | ce sont ses commutateurs, ses câbles ; le moteur est générique, un tenant n'en possède pas | `sdn-evpn.md`, `underlay.yml.example` | — |

View file

@ -196,9 +196,14 @@ la plus élégante, mais parce que les deux autres avaient cessé d'être dispon
- **le SITE est la source** ✔ — c'est ce que D-81 avait déjà fait, et que le reste du dépôt
a suivi sans qu'on le déclare : `serveur_forge_site`, puis `serveur_cache_site`, puis
`serveur_resolveur_site`. Trois services prêtés, un seul patron ;
- **une famille de pairs** — reste vraie *pour la redondance*, et c'est ce que patient 0
garde : il porte un miroir du génome comme chaque écosystème. Ce qu'il perd, c'est le
rang, pas la place.
- **une famille de pairs** — reste vraie *pour la redondance*. C'est ce que patient 0
gardait : un miroir du génome, comme chaque écosystème. Il perdait le rang, pas la place.
> **Il a perdu la place aussi : ses machines n'existent plus (2026-09-06).** La famille du
> génome compte donc **deux** copies vivantes au lieu de trois — `eregion` et la forge du
> site. Or c'est précisément le raisonnement ci-dessus qui portait tout : *on n'échappe pas
> à la boucle par la ruse, mais par le nombre.* Le nombre a baissé, et le SPOF que patient 0
> devait absorber (`eregion`, hors flotte) est toujours là.
**Ce que ça ne règle pas.** Le point unique de défaillance que patient 0 devait éliminer —
`eregion`, hors flotte — n'a pas disparu : il alimente maintenant l'autorité. La dette a

View file

@ -45,10 +45,10 @@ Raisons assumées :
applications lourdes à héberger et maintenir (Django + PostgreSQL, etc.). Set-OPS
reste possédé en entier, sans dépendance.
2. **Bon dimensionnement** — mais l'argument a bougé, et il faut le dire honnêtement.
Ce document a longtemps écrit « ~13 VM ». Le moteur pilote aujourd'hui **cinq plans**
(mesuré le 2026-09-06) : Chezlepro 14 VM, Technolibre 15, le lab 15, Patient 0 5, plus
les 7 machines du site — **56 VM déclarées**, réparties sur des écosystèmes qui ne se
parlent pas. Ça reste très loin de l'échelle entreprise pour laquelle NetBox est fait,
Ce document a longtemps écrit « ~13 VM ». Le moteur pilote aujourd'hui **quatre plans
vivants** (mesuré le 2026-09-06) : Chezlepro 14 VM, Technolibre 15, le lab 15, plus les
7 machines du site — **51 VM déclarées**, réparties sur des écosystèmes qui ne se parlent
pas. *(Patient 0 en portait 5 ; ses machines n'existent plus.)* Ça reste très loin de l'échelle entreprise pour laquelle NetBox est fait,
et le seuil du §4 n'est pas franchi. Mais la courbe monte : c'est **le** chiffre à
regarder quand on se demande si la décision tient encore.
3. **Modèle sur-mesure** — NetBox exprimerait nos DSN / expositions à coups de

View file

@ -5,8 +5,15 @@
## Ce qui est en jeu
Le **code** de Set-OPS est répliqué trois fois : `eregion`, la forge du site, patient 0.
Les **voûtes chiffrées** y sont aussi. Le coffre est solide.
Le **code** de Set-OPS est répliqué **deux fois** : `eregion` et la forge du site. Les
**voûtes chiffrées** y sont aussi.
> **Ce chiffre était trois, et il a baissé sans que rien ne le signale.** Le troisième
> témoin était patient 0 ; ses machines n'existent plus. Un coffre répliqué deux fois reste
> solide — mais c'est la **redondance du génome** qui a diminué, pas le chiffrement, et
> c'est exactement ce que la page *Filiation, signatures & témoins* appelle la vraie mesure
> de résistance d'une lignée : combien de copies **vivantes**, sur combien de machines
> distinctes.
Les **clés** qui l'ouvrent vivent dans neuf fichiers de ce poste — 1 644 octets — sans
aucune copie ailleurs. S'y ajoutent les clés SSH par lesquelles on entre sur les

View file

@ -289,7 +289,8 @@ règles. Un par écosystème.
## L'état, et sa preuve
**SQLite** — Une base de données qui tient dans **un fichier**, sans serveur ni compte.
Suffisante pour une petite forge ; c'est ce que porte patient 0. À l'inverse de
Suffisante pour une petite forge — c'est ce que portait patient 0, dont les machines
n'existent plus. À l'inverse de
*PostgreSQL*, qui est un service à part entière — un serveur, une zone, un secret.
**restic** — L'outil de sauvegarde chiffrée et dédupliquée. Cf. [Sauvegardes](Sauvegardes).