Платформенные команды, которые связывают Flagger Canary с AnalysisRun webhook и шлюзом OpenClaw на нескольких Mac mini M4 в clustervps, часто получают «зелёное» окно при растущих 5xx на канареечном срезе. Ниже — минимально воспроизводимый контур: срезы версий шлюза, merge проб, пороги метрик, ротация bearer, broadcast digest сбоев и rsync под build lock; альтернатива с Argo Rollouts — в соседнем runbook, GitOps через Flux — в материале про Flux webhook.
Flagger
Canary и AnalysisRun вызывают HTTPS webhook шлюза за каждое окно измерения
1 JSON
один merge-ответ за интервал — иначе «здоровый» process health маскирует деградацию шлюза
2× bearer
перекрытие секретов при ротации, чтобы AnalysisRun не ловил 401 на стыке смены

Три операционных ловушки до первого честного promote

1. Два контроллера на один URL. Если Argo Rollouts и Flagger бьют в один endpoint измерения шлюза, вы получите гонку вердиктов и непредсказуемый откат. Разведите namespace или выберите один upstream на зону.

2. Расщеплённые пробы. Flagger читает одно тело за окно AnalysisRun. Отдельный «зелёный» health процесса и отдельный счётчик 5xx на канареечном ingress дают ложноположительные promote.

3. Webhook без digest и rsync без очереди. Повторы без потолка нагружают шлюз за балансировщиком; параллельный promote артефактов без flock ломает срез skill pack, пока канарейка ещё наращивает трафик. Согласуйте с логами и webhook кластера и главной clustervps.

Многоузловой шлюз: срезы версии и lock skill pack

Перед сдвигом веса Flagger зафиксируйте на каждой зоне: образ шлюза OpenClaw, хеш skill pack и политику sticky или leader для измерений. Канареечный срез должен получать тот же набор навыков, что и stable, иначе метрики сравнивают разные контракты.

  • Срез по AZ: метка region и gateway_generation в JSON ответа webhook.
  • Lock skill pack: promote конфигурации только после ACK merge-пробы; см. canary skills multi-AZ.
  • Drain узла: при обслуживании Mac снимайте его с LB до завершения активного AnalysisRun.

Матрица: Flagger, Rollouts, Flux и роль webhook OpenClaw

Контроллер Триггер канарейки HTTP webhook Когда выбирать
Flagger Canary + AnalysisRun metricTemplate Один URL merge-метрик на шлюзе Уже стандартизированы на Flagger в кластере K8s
Argo Rollouts Шаги Rollout, pause, promote AnalysisTemplate → тот же контракт JSON Нужны шаги Rollout; см. runbook Rollouts
Flux ImageUpdateAutomation, Receiver Webhook на ingress шлюза, bearer overlap GitOps без Rollouts; см. Flux webhook
clustervps multi-AZ LB + несколько Mac mini M4 Стабильный DNS шлюза, rate limit Паттерн из multi-AZ gateway

AnalysisRun: пороги метрик и merge проб шлюза

В обработчике webhook соберите: долю ошибок канареечного среза, p95 latency upstream, флаг degraded, занятость диска APFS и единый verdict. Пороги в metricTemplate должны ссылаться на те же поля.

Контракт ответа (ориентир):
{
  "verdict": "pass",
  "canary_error_rate": 0.008,
  "gateway_p95_ms": 142,
  "degraded": false,
  "gateway_generation": "2026.05.18-7"
}

При degraded: true или error_rate выше потолка возвращайте HTTP 200 с verdict: failfail closed для Flagger, а не маскировку через 5xx без тела.

Webhook: broadcast digest сбоев и ротация bearer

На каждый неуспех измерения публикуйте нормализованный digest: rollout, окно, узел Mac, код upstream, усечённый reason. Держите два действительных bearer минимум одно окно AnalysisRun; снимайте старый секрет только после ACK на шлюзе.

Заголовок для Flagger metric check: Authorization: Bearer <secret>, таймаут запроса строго короче интервала канарейки; max retry не выше пяти с jitter на стороне Flagger.

Артефакты: rsync, build lock и окно канарейки

Не снимайте flock promote, пока канарейка не promote или abort. Параметры полосы — в матрице rsync артефактов; при жёлтом водяном знаке диска на шлюзе — abort канарейки раньше повторов webhook.

flock /var/tmp/openclaw-promote.lock ionice -c2 -n4 \
  rsync -a --delete-delay --bwlimit=32000 ./out/ /artifacts/canary/

Семь шагов минимального воспроизведения

  1. Выбор контроллера: один из Flagger / Rollouts / Flux на endpoint; остальные только читают статус.
  2. Canary CR и metricTemplate: URL HTTPS шлюза OpenClaw на пуле clustervps, интервал и пороги error-rate / latency.
  3. Merge handler: один JSON, поля verdict и reason, без скрытых вторичных путей.
  4. Staging drill: два параллельных AnalysisRun с искусственной задержкой и проверкой overlap bearer.
  5. Digest channel: зеркало неуспехов в канал дежурств по контракту cluster logs webhook.
  6. rsync gate: flock и bwlimit до promote артефактов; abort при disk yellow на Mac шлюза.
  7. Документированный rollback: сброс веса Flagger, stable generation, снятие lock — см. FAQ ниже.

Цифры для runbook и постмортемов

  • Не выше полутора процентов error-rate на канареечном срезе — типичный потолок для promote; ужесточайте для auth маршрутов.
  • p95 gateway ниже 220 ms между регионами clustervps — ориентир до расширения веса выше тридцати процентов.
  • Два действительных bearer в окне ротации; снятие старого — не раньше max интервала AnalysisRun.
  • Не выше пяти retry webhook на окно с экспоненциальным backoff — потолок против шторма на шлюз.

FAQ: откат канарейки Flagger

Когда abort вместо retry? Два окна подряд с verdict: fail, жёлтый водяной знак диска на Mac шлюза или flock promote не освобождается дольше документированного потолка.

Как не смешать Flagger и Rollouts? Разные URL или namespace; для Rollouts — отдельный runbook; для Flux — ImageUpdateAutomation.

Что после abort? Сбросить canary weight, вернуть stable gateway_generation, разблокировать rsync только после зелёного merge-пробы. SSH и доступ — справочный центр.

Итог: когда Flagger AnalysisRun бьёт в шлюз OpenClaw на многоузловом clustervps, выигрывает тот, кто объединил пробы, перекрыл токены, ограничил retry и связал promote артефактов с окном канарейки. Тогда Mac mini M4 в нескольких зонах остаются согласованными, а дежурные получают короткий digest вместо разрозненных логов.
Многоузловой кластер clustervps

Mac mini M4 под OpenClaw, Flagger и merge webhook

Расширьте пул физических Mac для канареечного шлюза и параллельного CI: сначала изучите Argo Rollouts или Flux webhook, затем оформите многоузловой тариф на странице покупки.

Заказать многоузловой кластер Тарифы Mac mini M4