Set-OPS-Public/roles/serveur_cache_site/README.md

57 lines
2.3 KiB
Markdown
Raw Normal View History

# serveur_cache_site
**Le cache d'artefacts du SITE** : celui que les écosystèmes voisins prennent comme amont,
pour que Debian ne soit téléchargé qu'une fois pour toute la fabric.
## Le chaînage
```
VM du tenant → cache du tenant → cache du SITE → Debian
```
Chaque écosystème **garde le sien** — il reste maître de ses paquets et s'en émancipe d'un
drapeau — mais il ne va plus chercher chez Debian.
**Un cache unique où toutes les VM taperaient** aurait demandé un flux de chaque machine
de chaque tenant vers un hôte d'un autre tenant : N×M chemins à travers le default-deny.
Avec le chaînage il n'y en a **qu'un par écosystème**, entre deux caches.
Et l'étanchéité y gagne : le cache du site ne voit que des requêtes **agrégées**, jamais
quelle machine installe quoi.
## Pourquoi deux rôles plutôt qu'un drapeau
Les flux se déclarent dans `meta/flux.yml`, qui est **statique**. Un rôle unique aurait dû
déclarer l'ingress inter-tenant pour **tous** les caches — et le devis l'a montré :
```
+ TENANT_PATI29 -> CHEZ17_SERVEUR_ARTEFACTS un maillage complet,
+ TENANT_TECH23 -> CHEZ17_SERVEUR_ARTEFACTS chaque cache acceptant chaque autre
```
Avec la séparation, l'ingress n'existe qu'ici, et un seul cache est joignable.
## Qui peut le déclarer
**L'écosystème de l'hébergeur**, celui qui exploite la fabric. Un tenant ordinaire qui le
déclarerait s'offrirait à servir ses voisins sans y être invité.
C'est le même patron que `serveur_ops_site` : le **runner de site** prépare le terrain —
VNets, routes, flux — pour que les plans des tenants tiennent. Aucun écosystème n'ouvre de
porte chez un autre ; c'est le site qui autorise.
## Ce qu'il vérifie
**Qu'il ne se chaîne pas lui-même.** Il est le bout de la chaîne : le laisser pointer sur
un amont ferait tourner les paquets en rond entre deux caches, ou les ferait sortir du site
sans que personne ne l'ait décidé.
**Que le cache écoute vraiment.** Le rôle n'installe rien : sa seule prise sur le réel est
de vérifier que le service qu'il désigne existe. Sans ça, il attribuerait une
responsabilité à un port que personne n'écoute.
## Ce que ce rôle ne fait pas
Il n'installe ni ne configure apt-cacher-ng — c'est `serveur_artefacts`. Il **attribue une
responsabilité** et la rend lisible dans le plan.