Set-OPS-Public/docs
Daniel Allaire 6a5a49f924
Some checks are pending
verifier / verifier (push) Waiting to run
site : le runner travaille, et le genome remonte chez lui
`serveur_ops` et `serveur_ops_site` sont deployes sur `site-ops-01` : le moteur,
les plans des trois tenants, les collections hors ligne, et la voute de
l'underlay deposee CHIFFREE. Le site a son runner.

DEUX FORMES DE RUNNER, ET UNE SEULE ETAIT PREVUE.

`serveur_ops` exigeait un depot `role: instance` et un `serveur_ops_instance` —
la forme d'un runner de TENANT, qui pilote un ecosysteme, monte son plan par le
lien `instance`, detient sa voute.

Un runner de SITE ne pilote rien : il MATERIALISE le terrain que d'autres
occuperont, et son inventaire est dynamique. Son plan declarait donc ses depots
de tenants en `role: tenant`, a dessein et avec ses raisons ecrites — et le role
le refusait au nom d'une exigence qui ne le concernait pas. Il exige desormais
que le runner pilote QUELQUE CHOSE, sans prescrire quoi.

Et il posait le lien quand meme : `serveur_ops_instance: ""` donnait
`instance -> /opt/setops/`, un repertoire qui n'est l'ecosysteme de personne. Un
lien qui existe et ne designe rien est pire qu'un lien absent : tout ce qui le
suit croit avoir trouve une instance.

LE CERTIFICAT COUVRE LES NOMS DU SERVICE.

`client_pki` ne mettait dans ses SAN que le FQDN, le nom court et l'IP. Le
clonage du genome a bute dessus : « certificate subject name
(site-forge-01.genese.internal) does not match target hostname
'forge.genese.internal' ». Le nom declare `expose:` etait publie partout —
plancher, zone DNS — et couvert nulle part.

Les expositions que cet hote SERT REELLEMENT entrent maintenant dans le
certificat. Un certificat qui revendiquerait le nom d'un service rendu ailleurs
serait une usurpation, pas une commodite.

`make genome-pousser` — LE RUNNER POUSSE, LE POSTE NE ROUTE PAS.

La forge du genome vit DANS le site, sur un reseau que le poste de l'exploitant
ne route pas. On ne perce pas un chemin pour lui : on lui retire le role. Le
poste emballe les commits dans un `git bundle` — un fichier, verifiable, qui ne
demande aucun reseau — et le runner verifie, avance EN AVANCE RAPIDE SEULEMENT,
puis pousse avec SA cle, autorisee en ecriture sur ces depots-la seulement.

Ce qui est pousse se DERIVE de `serveur_ops_depots`. `DEPOT=<nom>` en cible un
seul.

Trois pieges rencontres, tous inscrits dans le code : l'outil ne peut pas etre
supposé present sur le runner (il ne recevrait cette version qu'APRES la poussee
qu'elle sert a faire — le controleur le porte) ; la branche n'est pas toujours
`main` (deux depots vivent sur `master`, et le plan le declarait deja) ; le
dossier des depots freres contient un espace, d'ou `argv` et non `cmd`.

Le juge n'est pas le journal du playbook mais LA FORGE : on demande a son API ce
qu'elle porte, et on refuse si ca differe de ce que porte le runner. Six depots
verifies.

Pourquoi ca comptait : la forge du site etait restee quatre commits derriere le
poste, sans que rien ne le signale — dont le correctif qui desarme le pare-feu
Proxmox. Un ecosysteme qui se reproduit depuis une forge en retard reproduit ses
defauts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 08:52:37 -04:00
..
audit site : le runner travaille, et le genome remonte chez lui 2026-08-26 08:52:37 -04:00
img docs : figures annotées des 7 autres vues du GUI (série complète) 2026-07-28 13:48:36 -04:00
modeles_vm mtu : le 1450 de la zone n'atteignait pas les invites 2026-08-10 17:54:03 -04:00
architecture-set-ops.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
authentification.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
autorisation.md sauvegarde : le catalogue derive du groupe, et P36 le prouve 2026-08-11 20:50:46 -04:00
bindings-conception.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
carte-set-ops.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
catalogue-services.md frontiere : appliquee, et la contrainte de nommage d'OPNsense consignee 2026-08-24 17:51:29 -04:00
config-proxmox.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
couches-deploiement.yml site : le chemin qui materialise les machines de l'hebergeur 2026-08-24 23:11:32 -04:00
courriel-conception.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
decisions-architecture.md GUI : le « pont reseau » n'est pas un reglage de la flotte — l'intitule le dit 2026-08-13 11:31:41 -04:00
dependances-groupes.yml resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
devis-services.md devis : make versions-mesurer — l'ecart avec l'amont devient lisible 2026-08-10 23:02:16 -04:00
dimensionnement-ressources.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
dns-interne.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
ecosysteme-chezlepro.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
filiation-emancipation.md filiation : nommer les trois ages d'un ecosysteme 2026-08-24 14:10:10 -04:00
flux-conception.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
frontiere-opnsense.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
frontiere-physique-virtuel.md underlay : la frontiere entre les deux mondes, et l'instrument qui la mesure 2026-08-22 16:31:35 -04:00
hebergeur-exploitation.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
identite-sso.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
implanter-un-tenant-sur-un-site.md portee : les trois devis d'un site partagent enfin la meme regle 2026-08-18 16:38:30 -04:00
integrations-vm.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
intrants-base-gui-conception.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
intrants-communs.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
meta-classe.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
migration-tenant.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
MISE-A-JOUR-CODEX-CLAUDE.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
multi-instances.md adressage : le decalage de +10 est retire, l'index se lit dans l'adresse 2026-08-12 16:16:08 -04:00
nomenclature-vm.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
plan-et-generation.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
positionnement.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
pouvoirs-set-ops.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
preparer-un-site-hebergeur.md D-78 : destination ou chemin — et le VLAN 50 pour eviter une collision 2026-08-12 17:50:05 -04:00
procedure-template-debian13-proxmox.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
registre-flux.md resolveur : un par tenant, et non plus un par machine 2026-08-24 16:59:34 -04:00
runbooks-exploitation.md D-78 : destination ou chemin — et le VLAN 50 pour eviter une collision 2026-08-12 17:50:05 -04:00
sdn-evpn.md adressage : le decalage de +10 est retire, l'index se lit dans l'adresse 2026-08-12 16:16:08 -04:00
theme-forgejo-hors-flotte.md preuve : P34 — chaque document declare son lecteur (D-74) 2026-08-10 07:53:04 -04:00
vm-lifecycle.md doc : la machine d'epreuve jetable — une doctrine qui n'avait pas son instrument 2026-08-13 11:47:12 -04:00