From 89ca92b132ed3e350a28674f936626064fa5b9a6 Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Mon, 31 Aug 2026 20:57:25 -0400 Subject: [PATCH] =?UTF-8?q?D-82=20:=20patient=200=20n=20est=20le=20parent?= =?UTF-8?q?=20de=20personne=20=E2=80=94=20le=20dilemme=20est=20tranche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ouvert le 2026-08-28, referme par les faits plus que par le raisonnement. Trois d entre eux lui ont retire ce role un par un, et il fallait les regarder ensemble : D-81 a donne l autorite du genome a la forge du SITE. Son dernier lecteur, Chezlepro, a ete corrige le 08-26 ; Technolibre le 08-31. Il ne sert donc le genome a personne. Le denominateur commun qu il portait vit dans les modeles depuis le 08-24, sous le nom `origine`. Ce n est plus lui qu on copie. L ANCETRE ETAIT LOCATAIRE DE SON ENFANT : index 29 sur la fabric de SITE-Chezlepro, qui descend de lui. Il ne peut pas etre le chemin de reprise de son propre hote. Des trois issues posees, la deuxieme l emporte — non parce qu elle etait la plus elegante, mais parce que les deux autres avaient cesse d etre disponibles. Et le depot l avait deja suivie sans le declarer : serveur_forge_site, puis serveur_cache_site, puis serveur_resolveur_site. Trois services pretes, un patron. CE QUE CA NE REGLE PAS, ET QUI EST ECRIT. Patient 0 existait pour eliminer un point unique de defaillance — eregion, hors flotte, que Set-OPS ne deploie ni ne prouve. Il ne l a pas elimine : IL A ETE PROMU. Le poste y pousse, la forge du site en tire. La dette a change de proprietaire, pas de nature ; elle appartient au SITE. Un objectif qu on abandonne sans le dire devient un objectif qu on croit atteint. Ce qu il garde : sa place de pair dans la famille du genome, et sa forge de travail. Ce qu il perd : le rang. make verifier : vert. make prouver : CONFORME, 55 OK, 0 echec. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on --- CHANGELOG.md | 37 ++++++++++++++++++++++++ docs/carte-set-ops.md | 2 +- docs/decisions-architecture.md | 1 + docs/filiation-emancipation.md | 53 ++++++++++------------------------ 4 files changed, 55 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f33c79e..5f1b6cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # CHANGELOG — Set-OPS +## 2026-08-31 — D-82 : patient 0 n'est le parent de personne + +**55 preuves.** Le dilemme ouvert le 2026-08-28 est referme, et ce sont les faits qui l'ont +tranche plus que le raisonnement. Trois lui ont retire ce role un par un — il fallait les +regarder **ensemble** pour le voir : + +- **D-81** a donne l'autorite du genome a la forge du SITE. Son dernier lecteur, Chezlepro, + a ete corrige le 08-26 ; Technolibre le 08-31. *Il ne sert donc le genome a personne.* +- Le **denominateur commun** qu'il portait vit dans les modeles depuis le 08-24, sous le + nom `origine`. Ce n'est plus lui qu'on copie. +- **L'ancetre etait locataire de son enfant** : index 29 sur la fabric de `SITE-Chezlepro`, + qui descend de lui. *Il ne peut pas etre le chemin de reprise de son propre hote.* + +Des trois issues posees mercredi, la deuxieme l'emporte — non parce qu'elle etait la plus +elegante, mais parce que les deux autres avaient cesse d'etre disponibles. **Et le depot +l'avait deja suivie sans le declarer** : `serveur_forge_site`, puis `serveur_cache_site`, +puis `serveur_resolveur_site`. Trois services pretes, un seul patron. + +### Ce que ca ne regle pas, et qui est ecrit + +Patient 0 existait pour **eliminer un point unique de defaillance** — `eregion`, hors +flotte, que Set-OPS ne deploie ni ne prouve. Il ne l'a pas elimine : **il a ete promu**. Le +poste y pousse, la forge du site en tire. + +La dette a change de proprietaire, pas de nature ; elle appartient au SITE. *Un objectif +qu'on abandonne sans le dire devient un objectif qu'on croit atteint.* + +**Ce qu'il garde** : sa place de pair dans la famille du genome, et sa forge de travail — +un ecosysteme garde la sienne meme quand il ne detient plus le genome de personne. +**Ce qu'il perd** : le rang. + +### Une panne dormante, trouvee en reglant le cas + +Technolibre chainait encore son cache sur patient 0. Le meme defaut a coute quinze machines +sans `apt` chez Chezlepro le jour ou ses VM ont ete eteintes ; chez Technolibre, qui n'a pas +encore de VM, il etait **dormant** et se serait reveille au premier montage. + ## 2026-08-31 — La recette dependait de l'heure : un depot occupe n'est pas une sauvegarde cassee **55 preuves. `make valider` : rc=0.** La reconstruction de Chezlepro est validee de bout diff --git a/docs/carte-set-ops.md b/docs/carte-set-ops.md index 2deb7c3..18361a7 100644 --- a/docs/carte-set-ops.md +++ b/docs/carte-set-ops.md @@ -28,7 +28,7 @@ README de rôles). Cette page comble ces deux trous. | documents | 38 | `docs/*.md` | | pièces d'audit | 31 | `docs/audit/*` | | unités de wiki | 27 | `wiki/*.md` | -| décisions en vigueur | 78 | lignes `\| **D-nn** \|` de `decisions-architecture.md` | +| décisions en vigueur | 79 | 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) diff --git a/docs/decisions-architecture.md b/docs/decisions-architecture.md index 7fcc1a6..3e2454e 100644 --- a/docs/decisions-architecture.md +++ b/docs/decisions-architecture.md @@ -55,6 +55,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-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` | — | diff --git a/docs/filiation-emancipation.md b/docs/filiation-emancipation.md index 065381d..df32550 100644 --- a/docs/filiation-emancipation.md +++ b/docs/filiation-emancipation.md @@ -155,47 +155,26 @@ l'état de son écosystème d'un coup d'œil plutôt qu'en fouillant chaque rôl le drapeau est levé sans que l'amont soit nommé : emprunter sans dire à qui, c'est ne rien déclarer du tout. -## Qui est le parent ? — dilemme ouvert au 2026-08-28 +## Qui est le parent ? — tranché le 2026-08-31 (D-82) -Ce document décrit la filiation sans dire **de qui** un écosystème descend. La question -n'est plus théorique depuis que les runners savent reconstruire : chaque écosystème rebâti -grave sa réponse dans son plan (`serveur_ops_forge_amont`), et N réponses différentes font -N lignées qu'on ne saura plus rapprocher. +Le dilemme est resté ouvert trois jours. Les faits l'ont tranché plus que le raisonnement : +**personne n'est le parent, et la forge du SITE est l'autorité.** -La chaîne réelle, mesurée : +Trois issues avaient été posées. C'est la deuxième qui l'emporte, non parce qu'elle était +la plus élégante, mais parce que les deux autres avaient cessé d'être disponibles : -``` -poste de l'exploitant ──push──▶ eregion.chezlepro.ca:2222 - = forge.alliance-boreale.ca ◀── HORS FLOTTE - │ git bundle │ miroir 8 h - ▼ ▼ - forge du SITE ★ autorité (D-81) forge de patient 0 ★ « la forge mère » - │ │ - ▼ ▼ - les tenants du site (plus aucun lecteur) -``` +- **patient 0 redevient la source** — impossible sans le rendre atteignable depuis *tout* + site, alors qu'il vit dans la fabric d'un seul, en locataire de son propre descendant ; +- **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. -Trois faits qui ne tiennent pas ensemble : - -1. **Patient 0 ne sert plus personne.** Chezlepro était son dernier lecteur, corrigé le - 2026-08-26 vers la forge du site. Son dépôt affirme toujours sa raison d'être — *« porter - les dépôts qui fabriquent les écosystèmes, et les servir à ses enfants »*. -2. **Le point unique de défaillance n'a pas été éliminé, il a été promu.** Patient 0 existe - explicitement pour remplacer une machine hors flotte que Set-OPS ne déploie ni ne prouve - — or c'est de cette machine que la forge faisant autorité tire son contenu. -3. **Le parent est locataire de son enfant.** Patient 0 est un tenant de la fabric d'un - site qui descend de lui. L'ancêtre ne peut pas être le chemin de reprise de son hôte. - -Trois issues, à trancher par l'exploitant — et par lui seul, comme toute émancipation : - -| issue | ce qu'elle impose | -|---|---| -| **patient 0 redevient la source** ; chaque forge de SITE en miroite | le rendre atteignable depuis **tout** site — il vit aujourd'hui dans la fabric d'un seul | -| **le SITE est la source** ; patient 0 devient une **référence**, non un ancêtre | assumer que la racine est le poste + la machine hors flotte, donc l'intégrer à la flotte ou la remplacer | -| **pas de racine — une famille de pairs** ; D-81 se restreint à « autorité pour les tenants d'un site » | bâtir non pas une hiérarchie mais une **preuve de convergence** entre toutes les copies vivantes | - -*Aucune n'est bloquante pour la reconstruction en cours : les tenants pointent déjà sur la -forge de leur site, ce qui reste vrai dans les trois.* +**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 +changé de propriétaire, pas de nature. Elle appartient au SITE. ## État au 2026-08-28