2026-08-24 14:10:10 -04:00
|
|
|
# Filiation, mutualisation, émancipation
|
|
|
|
|
|
|
|
|
|
> **Pour qui :** l'**architecte** de la lignée et l'**hébergeur** qui abrite des
|
|
|
|
|
> écosystèmes tiers. Décrit les trois âges d'un écosystème et ce qu'ils impliquent au plan.
|
|
|
|
|
|
|
|
|
|
## Le constat
|
|
|
|
|
|
|
|
|
|
Un écosystème ne naît pas autoportant. Il lui faut une forge pour lire son génome, une
|
|
|
|
|
source d'artefacts pour ses paquets, un dépôt pour ses sauvegardes — et rien de tout cela
|
|
|
|
|
n'existe la première seconde. Il emprunte donc à son hôte.
|
|
|
|
|
|
|
|
|
|
Jusqu'ici, le moteur a rencontré ce besoin **trois fois sans le nommer** :
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
client_artefacts_actif dérivé : « une source existe-t-elle chez moi ? »
|
|
|
|
|
serveur_ops_forge_externe « je lis mon génome ailleurs »
|
|
|
|
|
client_backup_cible patient 0 sauvegarde chez eregion — mutualisé, en production
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Trois astuces, une seule notion. Ce document la déclare.
|
|
|
|
|
|
|
|
|
|
## Les trois âges
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
FILIATION l'enfant emprunte à son parent ce qu'il ne porte pas encore
|
|
|
|
|
MUTUALISATION un état DURABLE et CHOISI — on emprunte parce qu'on le veut
|
|
|
|
|
ÉMANCIPATION l'écosystème porte tout lui-même
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**L'émancipation n'est pas une obligation.** Un petit organisme peut rester mutualisé
|
|
|
|
|
toute sa vie ; ce qui compte est qu'il *puisse* s'émanciper, et que la sortie ne soit ni
|
|
|
|
|
un piège ni une reconstruction. C'est la différence entre un locataire et un captif.
|
|
|
|
|
|
|
|
|
|
## Ce que ça veut dire pour les modèles
|
|
|
|
|
|
|
|
|
|
Un modèle sans forge n'est pas un modèle amputé : c'est un écosystème **au premier âge**,
|
|
|
|
|
dont le runner lit le génome chez son hôte. L'ajout d'une forge n'est pas une correction,
|
|
|
|
|
c'est une **émancipation**.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
premier âge serveur_ops_forge_externe: true + l'adresse de la forge de l'hôte
|
|
|
|
|
émancipé serveur_ops_forge_externe: false + sa propre serveur_forgejo au plan
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Ce que ça veut dire pour l'hébergeur
|
|
|
|
|
|
|
|
|
|
L'hébergeur ne vend plus seulement des machines : il vend **l'abri pendant la jeunesse**.
|
|
|
|
|
Chaque service mutualisé est une ligne de facture, et chaque émancipation est une décision
|
|
|
|
|
du client — jamais une rupture technique.
|
|
|
|
|
|
|
|
|
|
Pour une clientèle d'OBNL et de coopératives, c'est le bon geste : on entre à bas coût, on
|
|
|
|
|
grandit vers l'autonomie, et **on n'est jamais captif**, puisque le génome est déjà chez
|
|
|
|
|
soi dès le premier jour.
|
|
|
|
|
|
|
|
|
|
## Ce qui est mutualisable, et ce qui ne l'est pas
|
|
|
|
|
|
|
|
|
|
| service | mutualisable | remarque |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| forge (génome) | oui | `serveur_ops_forge_externe` |
|
|
|
|
|
| source d'artefacts | oui | `client_artefacts` se désactive seul si aucune n'existe |
|
|
|
|
|
| sauvegarde | oui | `client_backup_cible` pointe déjà hors de l'écosystème |
|
|
|
|
|
| observabilité | oui | l'hébergeur surveille ses locataires |
|
|
|
|
|
| relais courriel | oui | |
|
|
|
|
|
| DNS | partiellement | un sous-domaine délégué, pas la zone entière |
|
|
|
|
|
| **PKI** | à trancher | une AC intermédiaire signée par l'hôte est possible, mais l'AC **définit l'identité** de l'écosystème |
|
|
|
|
|
| **identité** (LDAP/SSO) | le plus intime | mutualiser l'annuaire, c'est confier ses gens |
|
|
|
|
|
| **la voûte** | **jamais** | les secrets ne se mutualisent pas, à aucun âge |
|
|
|
|
|
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
## L'insémination — le premier lien, et le seul que le SITE ait le droit d'avoir
|
2026-08-24 14:10:10 -04:00
|
|
|
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
Entre tenants, le zéro-confiance est le défaut : la frontière refuse tout ce qui n'est pas
|
|
|
|
|
déclaré, et c'est cette règle qui rend l'hébergement mutualisé défendable. **La parenté est
|
|
|
|
|
la seule exception, et elle est asymétrique** : un écosystème neuf ne peut pas s'amorcer
|
|
|
|
|
lui-même. Quelqu'un doit poser sa première machine et lui donner de quoi continuer.
|
2026-08-24 14:10:10 -04:00
|
|
|
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
Ce geste s'appelle l'**insémination** :
|
2026-08-24 14:10:10 -04:00
|
|
|
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
```
|
|
|
|
|
le SITE matérialise VNets, VM, routes, flux — le terrain
|
|
|
|
|
le SITE amorce ops-01 la première machine, et elle seule
|
|
|
|
|
le TENANT achève ses autres machines, ses rôles, ses intégrations
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Le partage d'intelligence qui le rend possible.** Les deux runners portent le même
|
|
|
|
|
moteur ; ils n'en consomment pas la même face :
|
|
|
|
|
|
|
|
|
|
| | ce qu'il lit du moteur | ce qu'il en fait |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| runner du **SITE** | `roles/*/meta/flux.yml` — la face **réseau** des rôles | SDN, pare-feu Proxmox, frontière OPNsense |
|
|
|
|
|
| runner du **TENANT** | `tasks/`, `templates/`, `meta/integration.yml` — la face **machine** | configure ses services |
|
|
|
|
|
|
|
|
|
|
C'est ce partage qui permet au SITE de poser les bonnes règles pour un tenant **sans jamais
|
|
|
|
|
lire sa configuration ni détenir sa voûte**. Il sait de quoi les rôles ont besoin sur le
|
|
|
|
|
fil ; il ignore ce qu'ils font sur la machine.
|
|
|
|
|
|
|
|
|
|
**Ce que le lien doit être, pour ne pas devenir un pouvoir permanent :**
|
|
|
|
|
|
|
|
|
|
- **étroit** — vers le seul `ops-01` du tenant, jamais vers ses autres machines ;
|
|
|
|
|
- **déclaré** — dans `meta/flux.yml`, comme tout le reste, pour que la frontière et
|
|
|
|
|
`nftables` le connaissent au lieu de le subir ;
|
|
|
|
|
- **borné par un acte**, et cet acte appartient à un humain (voir ci-dessous).
|
|
|
|
|
|
|
|
|
|
> **Ce qui existe déjà sans être déclaré, au 2026-08-28.** `make creer-vm` exige
|
|
|
|
|
> `_instance-requise` : pour matérialiser les VM d'un tenant, le runner du SITE doit
|
|
|
|
|
> basculer son symlink `instance` sur le dépôt de ce tenant — alors que son plan pose
|
|
|
|
|
> `serveur_ops_instance: ""` et que la doctrine dit qu'un SITE n'a pas de plan monté par ce
|
|
|
|
|
> lien. Le couplage est donc **déjà là**, et rien ne borne sur quels tenants il porte ni
|
|
|
|
|
> jusqu'à quand. Le déclarer, c'est le rendre limitable ; le taire ne l'a jamais empêché.
|
|
|
|
|
|
|
|
|
|
## Ce que l'émancipation exige — et de qui
|
|
|
|
|
|
|
|
|
|
Basculer une déclaration ne suffit pas. Mais l'erreur symétrique est plus tentante encore :
|
|
|
|
|
faire de l'émancipation un **automatisme**, que la machine déclencherait dès qu'elle
|
|
|
|
|
constate que le tenant se reproduit sans son parent.
|
|
|
|
|
|
|
|
|
|
**L'émancipation exige toujours la gouverne d'un humain.** Le fruit de l'émancipation est
|
|
|
|
|
livré à quelqu'un — un client qui reprend ses clés, sa forge, son écosystème. Sans
|
|
|
|
|
quelqu'un pour le recevoir, il n'y a pas de livraison : seulement un lien qui tombe. *Une
|
|
|
|
|
émancipation qui se déclencherait toute seule ne serait pas une émancipation, ce serait une
|
|
|
|
|
expulsion.*
|
|
|
|
|
|
|
|
|
|
C'est déjà la forme des gestes lourds de ce dépôt : `raser` exige `CONFIRMER=true` et le
|
|
|
|
|
nom de l'instance ; le mot de passe de la voûte se tape à l'exécution — « le seul objet que
|
|
|
|
|
la reproduction exige d'un humain ». **L'émancipation est le deuxième objet de cette
|
|
|
|
|
liste.**
|
|
|
|
|
|
|
|
|
|
D'où la répartition, qui ne se confond pas :
|
|
|
|
|
|
|
|
|
|
| | qui l'exécute |
|
|
|
|
|
|---|---|
|
|
|
|
|
| **le lien de filiation** — déclaré, étroit, visible au plan | le moteur |
|
|
|
|
|
| **le constat d'aptitude** — « ce tenant se reproduit sans son parent » | la machine — elle **instruit**, elle n'agit pas |
|
|
|
|
|
| **l'acte d'émancipation** — retirer le lien, remettre les clés | **l'humain**, garde `CONFIRMER=true` |
|
|
|
|
|
| **la preuve que le lien est coupé** | la machine, **après** l'acte |
|
|
|
|
|
|
|
|
|
|
La quatrième ligne est celle qu'on oublie, et c'est elle qui décide si les trois autres ont
|
|
|
|
|
servi. Sans elle, on croirait s'être émancipé en restant dépendant sans le savoir —
|
|
|
|
|
exactement le défaut que ce dépôt traque partout ailleurs : un vert sur un périmètre vide.
|
|
|
|
|
**Une émancipation non prouvée est une émancipation non faite.**
|
|
|
|
|
|
emancipation : l instrument de la quatrieme ligne — couper, pas sonder
docs/filiation-emancipation.md decrit quatre temps et n en outillait que trois. Le
quatrieme est celui qu on oublie : « une emancipation non prouvee est une
emancipation non faite ».
SONDER NE PROUVE RIEN. Verifier que le service local repond ne dit pas si l amont
sert encore — le depot le disait deja du cache : « tant qu internet repond, un apt
update qui reussit ne dit pas d ou vient l octet ». L instrument COUPE donc l amont
et refait marcher la chose.
LE MEME ESSAI REND LES DEUX VERDICTS, et c est ce qui le rend honnete :
coupe, la fonction marche -> EMANCIPE, et c est prouve
coupe, la fonction casse -> PAS EMANCIPE, dependance prouvee REELLE
Le second n est pas un echec de l outil, c est son CONTROLE NEGATIF rendu par la
meme commande. Une preuve d emancipation incapable de montrer la dependance qu elle
mesure ne prouverait rien le jour ou elle passerait au vert.
UN TEMOIN PRECEDE LA COUPURE : la fonction marchait-elle seulement avant ? Sans lui,
une panne preexistante se lirait comme une dependance.
LA COUPURE EST GARANTIE REVERSIBLE : une TABLE nftables dediee, jamais une regle
glissee dans une table existante — elle se retire d un geste et ne peut pas laisser
d etat partiel. Le bloc `always` la retire meme si la mesure echoue ou si le play
est interrompu, et une tache verifie ensuite qu elle a bien disparu.
MESURE LE JOUR DE SA NAISSANCE, les deux verdicts sur du vrai materiel :
obs-01 / resolveur PAS EMANCIPE — plus aucune resolution des la coupure
forge-01 / artefacts EMANCIPE — apt installe, cache du site coupe
Ce second verdict a ete DOUTE puis verifie : apt aurait pu reussir en rejouant des
listes fraiches. Refait avec un dossier de listes NEUF, amont coupe : reussit
quand meme. Le cache sert vraiment son contenu.
make verifier : vert. make prouver : CONFORME, 55 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-09-01 08:36:28 -04:00
|
|
|
### L'instrument de la quatrième ligne — `make emancipation-prouver`
|
|
|
|
|
|
|
|
|
|
Il existe depuis le 2026-09-01, et il **coupe** au lieu de sonder.
|
|
|
|
|
|
|
|
|
|
Vérifier que le service local répond ne prouve rien : *tant que l'amont répond, une
|
|
|
|
|
fonction qui marche ne dit pas d'où vient l'octet.* L'instrument bloque donc l'amont —
|
|
|
|
|
table `nftables` dédiée, retirée par un bloc `always` quoi qu'il arrive — puis refait
|
|
|
|
|
marcher la chose.
|
|
|
|
|
|
|
|
|
|
**Le même essai rend les deux verdicts, et c'est ce qui le rend honnête :**
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
coupé, la fonction marche -> ÉMANCIPÉ, et c'est prouvé
|
|
|
|
|
coupé, la fonction casse -> PAS ÉMANCIPÉ, et la dépendance est prouvée RÉELLE
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Le second n'est pas un échec de l'outil : c'est son **contrôle négatif**, rendu par la
|
|
|
|
|
même commande. Une preuve d'émancipation incapable de montrer la dépendance qu'elle mesure
|
|
|
|
|
ne prouverait rien le jour où elle passerait au vert.
|
|
|
|
|
|
|
|
|
|
Un témoin précède la coupure — *la fonction marchait-elle seulement avant ?* Sans lui, une
|
|
|
|
|
panne préexistante se lirait comme une dépendance.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
make emancipation-prouver SERVICE=artefacts HOTE=forge-01 CONFIRMER=true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*Mesuré le jour de sa naissance : `obs-01` ne résout plus rien dès que le résolveur du
|
|
|
|
|
site est coupé — dépendance réelle ; `forge-01` installe des paquets le cache du site
|
|
|
|
|
coupé, listes vidées — émancipation prouvée sur ce service.*
|
2026-08-24 14:10:10 -04:00
|
|
|
|
|
|
|
|
## Forme attendue d'une déclaration
|
|
|
|
|
|
|
|
|
|
Tout service mutualisable doit se déclarer de la même façon, pour qu'un exploitant lise
|
|
|
|
|
l'état de son écosystème d'un coup d'œil plutôt qu'en fouillant chaque rôle :
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
<service>_externe: true # je l'emprunte
|
|
|
|
|
<service>_amont: "https://…" # à qui
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`false` — ou l'absence du couple — signifie *chez moi*. Le rôle **refuse** de démarrer si
|
|
|
|
|
le drapeau est levé sans que l'amont soit nommé : emprunter sans dire à qui, c'est ne rien
|
|
|
|
|
déclarer du tout.
|
|
|
|
|
|
D-82 : patient 0 n est le parent de personne — le dilemme est tranche
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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-31 20:57:25 -04:00
|
|
|
## Qui est le parent ? — tranché le 2026-08-31 (D-82)
|
|
|
|
|
|
|
|
|
|
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é.**
|
|
|
|
|
|
|
|
|
|
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 :
|
|
|
|
|
|
|
|
|
|
- **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.
|
|
|
|
|
|
|
|
|
|
**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.
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
|
|
|
|
|
## État au 2026-08-28
|
2026-08-24 14:10:10 -04:00
|
|
|
|
|
|
|
|
Seule la forge porte cette déclaration complète (`serveur_ops`). Les autres services
|
|
|
|
|
mutualisés le sont par des mécanismes antérieurs, cohérents mais non uniformes. Les
|
filiation : nommer l'insemination, et rendre a l'humain l'acte d'emancipation
La parente est la seule exception au zero-confiance, et elle est asymetrique :
un ecosysteme neuf ne peut pas s'amorcer lui-meme. Le SITE materialise le
terrain et amorce `ops-01` ; le tenant acheve le reste. Ce geste n'avait pas de
nom, et un geste sans nom ne se borne pas.
LE PARTAGE D'INTELLIGENCE QUI LE REND POSSIBLE, plus net que « le SITE ignore les
roles » : les deux runners portent le meme moteur et n'en consomment pas la meme
face. Le SITE lit `meta/flux.yml` — ce que les roles exigent du RESEAU — et en
tire SDN, pare-feu Proxmox, frontiere. Le tenant lit tasks/templates/integration
— ce qu'ils exigent de la MACHINE. C'est ce partage qui permet au SITE de poser
les bonnes regles sans jamais lire la configuration d'un tenant.
LE COUPLAGE EXISTAIT DEJA, NON DECLARE. `creer-vm` exige `_instance-requise` :
le runner du SITE a du basculer son symlink `instance` sur OPS-Chezlepro pour
materialiser ses VM, alors que son plan pose `serveur_ops_instance: ""`. Rien ne
borne sur quels tenants il porte ni jusqu'a quand.
L'EMANCIPATION EXIGE LA GOUVERNE D'UN HUMAIN. J'avais propose une condition
d'extinction MESUREE — le lien se ferme quand la machine constate l'autonomie.
Erreur symetrique de celle qu'on corrigeait, et le document disait deja pourquoi.
Le fruit de l'emancipation est livre a quelqu'un ; sans quelqu'un pour le
recevoir, il n'y a pas de livraison, seulement un lien qui tombe. Une
emancipation automatique serait une expulsion. Quatre lignes distinctes : le
moteur porte le lien, la machine INSTRUIT, l'humain ACTE, la machine PROUVE.
DEUX LIMITES NOMMEES PLUTOT QUE TUES.
Qui est le parent ? D-81 vide patient 0 de sa raison d'etre — plus un seul
lecteur depuis le 26 — et la machine hors flotte qu'il existe pour remplacer
alimente la forge qui fait autorite : le SPOF n'a pas ete elimine, il a ete
promu. Trois issues posees, aucune tranchee, aucune bloquante.
La separation des voutes est ORGANISATIONNELLE, pas cryptographique : les
fichiers sont separes (site-ops-01 ne detient que underlay.vault.yml) mais un
seul mot de passe ouvre les trois.
make prouver : CONFORME, 52 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-28 12:31:57 -04:00
|
|
|
aligner sur la forme ci-dessus reste à faire.
|
|
|
|
|
|
|
|
|
|
**Les deux pièces manquantes**, l'une et l'autre nommées plus haut :
|
|
|
|
|
|
|
|
|
|
- le **lien d'insémination** n'est pas déclaré — il existe pourtant, par le symlink
|
|
|
|
|
`instance` du runner du SITE, sans borne ni visibilité ;
|
|
|
|
|
- l'**instrument de preuve** de la dernière ligne — « le lien est coupé » — n'existe pas.
|
|
|
|
|
Tant qu'il manque, aucune émancipation ne peut être déclarée faite.
|
|
|
|
|
|
|
|
|
|
**Une limite mesurée le 2026-08-28, à connaître avant de s'appuyer sur cette frontière :**
|
|
|
|
|
la séparation des voûtes est **organisationnelle, pas cryptographique**. Les fichiers sont
|
|
|
|
|
bien séparés — le runner du SITE ne détient que `underlay.vault.yml`, vérifié sur la
|
|
|
|
|
machine — mais **un seul mot de passe ouvre la voûte du site et celles des tenants**. « Deux
|
|
|
|
|
pouvoirs, aucun omnipotent » décrit donc la répartition des fichiers, pas celle des clés.
|