Set-OPS-Public/roles/serveur_ops_site/meta/flux.yml
Daniel Allaire ee0e33d452 flux : plus aucune sortie vers Internet sans un role qui le dise
La sortie 80/443 que le socle donnait a toute machine ne servait plus a apt
(tout passe par le cache du site) mais a de la telemetrie et a des sorties
non declarees. Elle devient conditionnelle (seulement_si artefacts_amorcage
vide) ; la telemetrie de Grafana, Loki, Alloy et la verification de version
de Collabora sont coupees a la source ; rspamd et la sonde du genome
declarent leur sortie. Le devis du site evalue enfin seulement_si, ce qui
retire aussi le 465/587 vers un Postfix du site qui n'ecoute que sur 25.
Garde : test_conditions_site.py. Journal (125).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 23:11:13 -04:00

85 lines
3.9 KiB
YAML

---
# Flux réseau du runner de SITE. Voir docs/flux-conception.md.
#
# Les flux du POUVOIR DE MATERIALISER : API de l'hyperviseur, shell des noeuds, API de
# la frontiere. Chacun est un pouvoir distinct, donc declare a part.
#
# CE ROLE N'ENTRE PAS CHEZ UN TENANT — SAUF SUR SON RUNNER, POUR L'AMORCER (2026-08-28).
#
# Cette ligne disait « JAMAIS », et c'etait une frontiere qu'on ne pouvait pas tenir. Un
# ecosysteme neuf ne s'amorce pas lui-meme : sa premiere machine doit recevoir le socle,
# le moteur, son plan et son plancher de resolution avant de pouvoir configurer quoi que
# ce soit. Sans ce flux, ce travail retombe sur un humain qui le fait a la main — donc
# hors du depot, donc sans preuve.
#
# LE COUPLAGE EXISTAIT DEJA, NON DECLARE : `creer-vm` exige `_instance-requise`, et le
# runner du site doit donc basculer son symlink `instance` sur le depot du tenant qu'il
# materialise. Le declarer ne cree pas un pouvoir, il rend limitable un pouvoir qui
# s'exercait sans borne.
#
# CE QU'IL RESTE INTERDIT, ET QUI N'EST PAS UNE REGLE MAIS UN FAIT : armer. Le runner du
# SITE ne detient pas la voute d'un tenant — elle vit hors depot — et n'en connait pas le
# mot de passe. Il peut poser tout ce qui est public ; c'est un HUMAIN qui remet le
# secret, et c'est la que le pouvoir du site s'arrete. Voir docs/filiation-emancipation.md.
flux:
- sens: egress
port: 8006
protocole: tcp
pair: fabric
chiffrement: tls-requis
raison: >-
API de l'hyperviseur : créer, cloner et détruire les VM de la fabric. Le seul flux
par lequel un écosystème peut en matérialiser un autre.
# SSH VERS LES HYPERVISEURS. L'API Proxmox ne fait pas tout : deplacer un disque,
# lire une configuration reseau, poser un pont — cela passe par le shell du nœud.
# Le declarer separement de l'API rend visible que ce sont DEUX pouvoirs distincts.
- sens: egress
port: 22
protocole: tcp
pair: fabric
chiffrement: ssh
raison: >-
Shell des hyperviseurs : ce que l'API ne couvre pas — configuration reseau, ponts,
deplacement de disques. Un pouvoir distinct de l'API, donc declare a part.
# L'API DE LA FRONTIERE. Le runner du site pose les regles et les alias qui laissent
# passer les flux d'un tenant : sans ce flux, il prepare un terrain injoignable.
- sens: egress
port: 443
protocole: tcp
pair: fabric
chiffrement: tls-requis
raison: >-
API de la frontiere OPNsense : poser les alias et les regles qui ouvrent les flux
du tenant qu'on materialise. Preparer le terrain sans cela laisserait un terrain
injoignable.
# L'INSEMINATION — le seul flux de ce role qui entre chez un tenant.
#
# Etroit par construction : il vise le groupe `serveur_ops_tenant`, qu'un ecosysteme ne
# pose que sur une machine. Declare au socle, il aurait ouvert le SSH du site vers TOUTE
# la flotte du tenant ; declare ici, sa portee est celle du groupe, et le groupe est
# ecrit au plan du tenant.
- sens: egress
port: 22
protocole: tcp
pair: serveur_ops_tenant
chiffrement: ssh
raison: >-
Insemination : amorcer le runner d'un tenant — socle, moteur, plan, plancher de
resolution — pour qu'il prenne ensuite le relais sur ses propres machines. Ne
transporte aucun secret : la voute est remise par un humain.
# LE REPERE DU GENOME (2026-10-10). La sonde `sonde-genome-a-jour` compare la forge du
# site a eregion par un `git ls-remote` anonyme, toutes les 15 minutes. Elle sortait par
# la sortie 443 generale du socle, qui n'existe plus : la declarer ici la rend lisible.
# Sans Internet, la sonde passe en INCONNU (code 3) — rien ne casse.
- sens: egress
port: 443
protocole: tcp
pair: externe
chiffrement: tls-requis
raison: >-
Repere du genome : `git ls-remote` anonyme sur eregion (forge.alliance-boreale.ca)
pour dire si la forge du site a pris du retard. Lecture seule, sans identifiant.