Files
document-haness/docs/keycloak-session-store/source/docs/evidence/d4a-deploy-hook/README.md
T
DongHyeonkaandClaude Opus 5 b2963105a8 docs(keycloak-session-store): import the session-storage lab as a new project
The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.

Follows the import procedure in README.md.

  source/     the originating repository verbatim — 78 documents, 28 SVGs,
              8 manifests, plus .source-revision recording the commit
  final/      the SSOT
    document.md   729 lines written from the 29 experiment documents, not
                  concatenated: what was predicted, what was measured, and
                  where the measurement itself was wrong
    evidence/raw    125 outputs, flattened to <experiment>__<file> because
                    the originals collided (01-baseline.txt appeared three
                    times) and the audit only globs the top level
    evidence/meta   one per raw file; command and exitCode are null and the
                    README says why rather than inventing them
    evidence/browser  22 captures
    assets/       three diagrams through techviz
    .techviz/     their VizSpecs

A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.

Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.

verify-pipeline.py passes. audit-records.py reports no issues.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 22:51:59 +09:00

1.6 KiB

D-4a — deploy 훅 검증 증거

2026-09-04 12:27 UTC (실제 시각) 해설: docs/experiment-d4a-deploy-hook.md

파일 무엇을 보여주는가
01-hook-verified.txt 판정 전문. 훅 실행 로그 · 워커 PID 교체 · 시계 보정과 SCT 교차검증 · D-4 와의 대조
02-certbot-with-hook.txt certbot renew --force-renewal 원문. Hook 'deploy-hook' ranall renewals succeeded
03-after-state.txt 실행 후 nginx 프로세스와 서빙 인증서

핵심 네 줄

  1. D-4 의 처방은 듣는다. 훅 파일 하나로 발급 → 서빙이 38분 25초에서 1~2초가 됐다. 약 1150배.
  2. Hook 'deploy-hook' ran with error output 을 실패로 읽으면 안 된다. nginx 의 types_hash 경고가 stderr 로 나갔을 뿐이고 내용은 전부 성공이다 — test is successful, signal process started. 로그에서 error 를 grep 하면 성공한 훅을 실패로 오독한다.
  3. 진단 방법이 재확인됐다. 마스터 585 는 그대로, 워커만 28829 → 37252 로 교체. D-4 에서 세운 「마스터 유지 + 워커 교체 = reload」가 그대로 작동한다.
  4. ★ 시계를 섞어 빼면 안 된다. test-server 는 NTP 가 꺼져 106초 빠르다(외부 기준 3회 측정). 이 사실을 적지 않고 계산한 D-4 의 공백은 106초 짧았고, 1~2초를 재는 D-4a 에서는 보정 없이는 훅이 발급보다 104초 먼저 실행된 것이 되어 물리적으로 불가능해진다. 보정은 새 인증서 SCT(12:27:49.054 GMT, CT 로그의 독립 시계)로 교차검증된다.