Webhook 계약
엔드포인트를 /hooks/flux/image-automation으로 고정하고 release, image, digest, namespace, traceId를 필수 필드로 선언합니다. 계약 외 필드는 무시해도 카나리 의사결정이 흔들리지 않게 설계합니다. Bearer 토큰은 공통 키와 팀별 키를 분리해 발급하고 월 1회 회전합니다.
| 항목 | Flux 기준 | 운영 판정 |
|---|---|---|
| 경로 | /hooks/flux/image-automation | Argo와 분리 |
| 토큰 | 공통+팀별 이중 키 | 월간 회전 |
| 분기 키 | digest + namespace | 노드 일관성 |
다중 노드 구성 슬라이스
gateway.d를 10-global, 30-flux-webhook, 70-canary-routing, 90-broadcast로 분할하면 리뷰 범위가 명확해집니다. 사전순 병합 규칙을 강제해 토큰 변경과 라우팅 변경을 독립 검토하세요. 또한 노드별 값은 values-slice로 분리해 서울, 도쿄, 프랑크푸르트 트래픽 분포를 별도 승인하면 배포 사고를 더 빨리 차단할 수 있습니다.
탐침
탐침은 ingress, service, app 세 층으로 운용합니다. ingress는 서명·토큰, service는 canary 분류, app은 openclaw doctor 병합 결과를 확인합니다. 세 층이 연속 통과할 때만 10%→25%→50%→100%로 승격합니다.
실패 방송
5분 윈도우 요약으로 namespace, digest, 실패 코드, 재시도 횟수를 묶어 방송합니다. 카나리 25% 단계 실패가 연속 발생하면 자동으로 10%로 감속하고 요약에 rollback 플래그를 넣어 온콜 판단 시간을 줄입니다.
FAQ
Q. 토큰 누수 의심 시? 공통 키를 먼저 폐기하고 팀 키만 허용한 뒤 서명 실패 로그를 재검증합니다.
Q. doctor 병합 시점은? 웹훅 직후가 아니라 카나리 25% 진입 직전에 병합해 승격 판단 신호만 남깁니다.