Files
keycloak-pattern/docs/evidence/d2-version-upgrade
DongHyeonkaandClaude Opus 5 98a74e90a5 docs: fill the untested items and record why the B layer has no graphs
The forward upgrade to 26.7.3 was zero downtime across 87 samples, and since databasechangelog stayed at 210 the rollback to 26.7.0 also succeeded, which narrows D-2's conclusion: rolling back fails when the schema moved, not because of the version number. The row count is the check.

Role changes never reach the upstream through request repetition; the session is a snapshot taken at login and only a new session picks up the new claim. Auditing the docs also surfaced that Prometheus scrapes only keycloak, kubelet, node-exporter and itself, so the B-layer experiments have no metrics to screenshot rather than missing screenshots.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 16:18:33 +09:00
..

D-2 — 버전 업그레이드 증거

2026-09-04 17:0517:15 KST 해설: docs/experiment-d2-version-upgrade.md

파일 무엇을 보여주는가
01-pre-upgrade.txt 백업 396KB · 이미지 26.7.0 · 마이그레이션 210건 · 세션 4
02-rollback-attempt.txt 26.0 으로 내리자 Running(0/1) → Error → CrashLoopBackOff. liquibase.exception.ValidationFailedException
03-roll-forward.txt 서비스는 HTTP 200 유지(ready 주소 1개) · 오류 원인 1 changesets check sum · 26.7.0 복귀 후 마이그레이션 210·세션 4 그대로

핵심 세 줄

  1. 롤백은 안 된다. 체크섬이 안 맞아 Liquibase 가 기동 자체를 거부한다 — "모르는 변경"이 아니라 "아는 변경인데 정의가 다르다".
  2. StatefulSet 이 사고를 절반에서 멈춰줬다. 한 파드가 남아 외부 200 을 유지했다. replica 1 이었다면 전면 장애다.
  3. 실패한 기동은 스키마를 안 건드렸다. 그래서 이미지만 되돌려도 복구됐다 — 이미 적용된 뒤였다면 DB 복구(D-1)가 필요하다.