Sommaire
Croisez avec le guide cluster, les plugins fail-closed et la rotation des jetons pour éviter ports de debug partagés.
La gouvernance de la dérive repose sur une habitude simple : aucune promotion de politique sans artefact JSON archivé et sans comparaison normalisée entre hôtes. Lorsque plusieurs fuseaux horaires co-éditent la passerelle, cette discipline évite que « ça marchait sur ma machine » ne devienne « ça filtrait sur un seul nœud du pool ».
Tensions typiques lorsque plusieurs ingénieurs touchent la passerelle
- Vérité éclatée. Correctif sur un Mac sans promotion du même
gateway.proxy.yamlvers les autresmesh_node_id→ refus asymétriques. - Surcharges hors dépôt. Env shell ou LaunchAgents ajoutent des cibles proxy jamais revues en liste blanche.
- Incidents feutrés. Trafic malgré validate rouge : 403 ou 502 ressemblent à une panne amont, pas à une politique scindée.
Matrice : comment trancher sur le runtime proxy
La grille ci-dessous cadrera la décision devant l’équipe plateforme. Elle distingue l’expérimentation locale du cadre contractuel imposé aux Mac mutualisés où chaque élargissement d’egress se répercute sur des locataires qui n’ont pas voté le changement.
| Approche | Quand elle convient | Risque MeshMac partagé |
|---|---|---|
| Rechargement tolérant | Lab mono-utilisateur sans egress réglementé | Une faute de frappe élargit les sorties pour tous les locataires du pool |
| Fail-closed + listes blanches de correctifs | Production, CI convergente, webhooks | Exige promotion disciplinée et contrôles JSON, mais borne le rayon d’explosion |
| Fichiers statiques sans lien runtime | Documentation interne | Les opérateurs croient être protégés pendant que la mémoire conserve d’anciennes tables proxy |
Étapes reproductibles : Node, installation, clichés, doctor, validate
Unifier Node. node -v identique sur chaque passerelle (LTS 20.x ou 22.x) pour stabiliser OpenSSL et le diagnostic TLS.
Même build OpenClaw. Joignez openclaw version au ticket ; des builds mélangés font souvent disparaître des champs JSON au validate.
Point de reprise A (avant toute édition).
mkdir -p .meshmac-checkpoints/2026-04-25-gateway
cp gateway.proxy.yaml .meshmac-checkpoints/2026-04-25-gateway/
cp com.openclaw.gateway.plist .meshmac-checkpoints/2026-04-25-gateway/ 2>/dev/null || true
Bloc 2026.4.x. proxy.runtime.fail_closed: true, listes allowed_patch_channels et allowed_upstream_hosts, pas de reload générique ; YAML ou clé inconnue ⇒ refus de démarrage.
Doctor puis validate strict avec traces JSON.
openclaw gateway doctor --json | tee /tmp/gw-doctor.json
openclaw gateway validate --config ./gateway.proxy.yaml --strict --json | tee /tmp/gw-validate.json
Ports et jetons. Admin sur 127.0.0.1 dédié, webhooks derrière ACL, secrets hors YAML versionné. Voir répartition et bascule avant de rouvrir l’ingress.
Attendu JSON et alignement multi-nœuds
ok: true seulement si toutes les barrières passent. Exemple de corps utile pour la corrélation logs :
{
"ok": true,
"mesh_node_id": "meshmac-pool-7",
"policy_revision": "gateway-proxy@2026-04-25.3",
"fail_closed": true,
"allowed_upstream_hosts": ["api.meshmac.internal", "hooks.slack.com"],
"deny_reason": null
}
Gouvernance anti-dérive : agréger puis trier pour que l’ordre des clés ne cache rien :
for h in gw-a gw-b gw-c; do
ssh "$h" 'openclaw gateway validate --config /etc/openclaw/gateway.proxy.yaml --strict --json'
done | jq -s 'sort_by(.mesh_node_id)' > /tmp/tous-passerelles.json
jq -c '.[] | {mesh_node_id, policy_revision, fail_closed}' /tmp/tous-passerelles.json
Points de reprise B et ordre de retour arrière
Après validate canari, cliché YAML suffixe .ok = point B. Incident : restaurer A, reload unité, boucler validate --strict --json jusqu’à même policy_revision et fail_closed sur chaque mesh_node_id. Journaliser ticket et acteur à chaque promotion. Si seul le point B est sain, vous pouvez tenter une restauration ciblée depuis B vers A fichier par fichier en observant le validate à chaque étape.
Trois faits « copier-coller » pour vos runbooks
- Validate : alertes si
mesh_node_id,policy_revisionoufail_closedmanquent dans la collecte. - Node : versions LTS différentes = suites TLS différentes, bruit sur les incidents proxy.
- Patches : semver ou digest ; pas de
latestsur artefacts runtime partagés.
Synthèse
Contrat versionné : Node et build alignés, proxy fail-closed, traces JSON doctor/validate, diff avant trafic. Liens utiles : accueil, aide, blog.
Poursuivre après le durcissement passerelle
Ouvrez le centre d’aide pour l’accès SSH et VNC, revenez à l’accueil pour comparer les classes de matériel, puis enchaînez avec le guide cluster multi-nœuds et le hub articles OpenClaw afin d’aligner rôles workers, files et quotas avec la nouvelle politique proxy. Les forfaits restent consultables sur les pages commerciales sans créer de session administrateur préalable.