Argo Rollouts face à Argo CD (rester dans la voie « analyse »)
Argo CD réconcilie les manifests désirés depuis Git : état de synchro, diff, santé au niveau application. Argo Rollouts possède les étapes canari, les poids de trafic et les crochets d’expérimentation. Lorsqu’un Rollout entre en phase d’analyse, le contrôleur crée un AnalysisRun qui appelle votre fournisseur de mesure — souvent un webhook HTTP vers une infrastructure que vous maîtrisez. Ce webhook n’est pas un hook de synchro CD : il sert à noter si la tranche canari peut être promue. Traitez Rollouts comme le « cerveau » de la livraison progressive et les passerelles OpenClaw sur Mac dédiés comme la couche sensorielle qui renvoie des métriques structurées.
Si vous avez déjà découpé les passerelles par région, réutilisez la même discipline que dans le playbook passerelles multi-AZ et rotation de jetons webhook et le guide canari multi-AZ avec ratios LB et sondes fusionnées ; cet article ne fait qu’échanger l’appelant amont — d’un exercice manuel vers la boucle d’analyse Rollouts.
Passerelles multi-nœuds clustervps et livraison progressive coordonnée
Imaginez deux Mac « passerelle » derrière un équilibreur, plus un troisième nœud qui suit des journaux structurés et pousse des digests — le même modèle de collaboration que dans fragments locataires, fusion Doctor et digest webhook. Côté Kubernetes, Rollouts avance les pourcentages canari ; côté OpenClaw, les passerelles déplacent le trafic ou des drapeaux de fonctionnalité perçus par vos clients. Le webhook AnalysisRun doit viser un nom d’hôte étiqueté canari ou un VIP interne qui reçoit déjà uniquement la tranche à mesurer, afin que le chemin de mesure reflète la même arithmétique que le trafic utilisateur — sans heurter par erreur les pods stables.
Alignez les épingles de version avec le roulant 2026.4.x, peer deps npm et rollback canari pour que chaque passerelle renvoie un JSON comparable pendant une fenêtre d’analyse. Lorsque les fragments bougent, suivez d’abord le HowTo fusion de gabarits et workflows isolés avant d’élargir le trafic.
Liste d’étapes minimale reproductible
- Installer Rollouts sans confondre avec CD. Vérifiez la santé des CRD et du contrôleur Rollouts ; laissez Argo CD (s’il est présent) gérer uniquement la synchro, pas la logique de mesure canari.
- Exposer une route HTTPS sur un Mac passerelle dédiée à l’analyse, par exemple
/rollouts/analysis, documentée à côté de votre matrice DNS scindé / registre d’artefacts interne. - Enregistrer l’URL du webhook dans votre
AnalysisTemplateRollouts (ou analyse inline) pour que chaqueAnalysisRunposte un corps JSON prévisible selon le type de fournisseur documenté. - Authentifier l’appelant. Exiger un jeton porteur ou un certificat client mTLS lié au chemin du compte de service Rollouts ; stockez les secrets avec chevauchement comme dans la rotation progressive des jetons passerelle.
- Fusionner les sondes dans le gestionnaire. Regrouper santé processus passerelle, compteurs d’erreurs canari, pings de dépendances et champs issus de Doctor dans un seul verdict JSON, avec un drapeau
degradedlorsque le risque est partiel. - Répondre vite et de façon idempotente. Parsing à temps constant, timeouts amont courts, codes HTTP déterministes : les relances de mesure Rollouts ne doivent pas « forker » l’état applicatif.
- Plafonner les relances et ajouter du jitter. Cadencez les intervalles de mesure côté Rollouts et appliquez des limites de débit côté passerelle pour qu’un glitch DNS transitoire guérisse sans tempête de POST sur chaque nœud clustervps.
- Diffuser les échecs. Pour les verdicts non réussis, émettre une ligne structurée vers le notificateur décrit dans journaux de grappe et broadcast digest webhook afin que l’astreinte voie une synthèse, pas le brut des relances.
- Répéter le rollback. Marquez les poids d’équilibreur et les étapes d’arrêt Rollouts avant la première analyse prod, sur le même ton que doctor --deep, launchd et tranches canari.
- Observer bout à bout. Suivez les journaux du contrôleur pour les erreurs webhook pendant qu’un bastion exécute
curlsur la sonde fusionnée — parité exigée entre appel humain et appel Rollouts.
Fusion des sondes : un corps, plusieurs signaux
Rollouts n’évalue que ce que votre point de terminaison renvoie à chaque intervalle. Avec cinq micro-URL, l’opérateur curlera la verte pendant que l’analyse frappe la rouge par mégarde. Fusionnez plutôt : pression disque, profondeur de file, joignabilité des workers OpenClaw et compteurs réservés au canari apparaissent comme champs nommés dans un seul document. Harmonisez les noms avec les conventions déjà utilisées pour fusionner Doctor et digest notificateur dans le guide locataires, Doctor et webhook.
{
"status": "healthy",
"rollout": "payments-api",
"canary": { "5xx_rate": 0.002, "p99_ms": 180 },
"gateway": { "disk_ok": true, "queue_depth": 3 },
"degraded": false
}
Quand la situation est limite, préférez un degraded explicite avec HTTP 200 pour que contrôleurs de trafic et humains partagent la même nuance, comme dans le guide skills canari multi-AZ.
Jetons, chevauchement et relances bornées
Émettez des identifiants webhook que le contrôleur Rollouts peut monter ou référencer (secrets scellés, coffre, etc.). Maintenez un double jeton pendant au moins une fenêtre d’analyse : la rotation du secret passerelle ne doit jamais courir après un AnalysisRun déjà en vol. Journalisez les échecs de vérification avec nom de Rollout, espace de noms et index de mesure pour raccourcir le triage.
Il faut gérer les relances des deux côtés : Rollouts relance les mesures en échec ; les passerelles doivent appliquer un backoff exponentiel avec plafond dur lorsqu’elles interrogent la télémétrie amont. Consignez ce plafond dans le runbook à côté des accès shell décrits dans le centre d’aide pour que l’astreinte sache quand suspendre une analyse coincée plutôt que d’amplifier la charge.
Synthèses d’échec compatibles avec une grappe multi-nœuds
Lorsqu’une analyse échoue, il faut un digest lisible qui cite l’AZ passerelle, la tentative de mesure et les deltas métriques condensés. Acheminez ces événements vers le Mac notificateur avec la même philosophie de batching que les digests webhook généraux : Slack ou e-mail restent lisibles pendant que Kubernetes poursuit ses mesures. Couplez cela aux quotas JSONL append-only du guide fusion journaux & broadcast digest pour que la pression disque ne devienne pas un incident secondaire.
Si vous promouvez des artefacts de build entre nœuds, gardez les dépendances de mesure indépendantes des fenêtres rsync décrites dans la matrice artefacts inter-régions — peu de choses désorientent une analyse canari plus vite qu’un binaire passerelle remplacé au milieu d’une série de mesures.
FAQ
Les hooks pre-sync d’Argo CD remplacent-ils ce webhook ? Non. Les hooks pre-sync entourent la synchro d’application, pas la notation canari par révision. Gardez la mesure dans les gabarits d’analyse Rollouts.
Chaque Mac passerelle doit-il accepter le trafic AnalysisRun ? Préférez un pool dédié « face canari » pour que les passerelles stables restent calmes pendant que Rollouts enchaîne des mesures serrées.
Et si le JSON fusionné masque un pic sur une métrique ? Encodez des avertissements sous-seuil et laissez Rollouts agréger plusieurs mesures dans le temps, ou scindez les templates par sujet tout en conservant le même point TLS avec des chemins distincts.