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