Parent
Map #16 · implements the layer-2 decision locked in #21 (running-pod refresh policy). Doc-only.
What to build
Capture the layer-2 policy in CODEQ_DEPLOYMENT.md so operators know what to expect and what levers exist. Layer 2 = passive convergence for routine updates; documented manual break-glass for security-critical; no in-Lab banner, no automated drain.
Document:
- The expected convergence window for routine updates — approximately the idle-cull timeout, plus the absolute max-server-lifetime cap if one is configured — as the convergence SLA.
- The security-critical break-glass drain runbook: who pulls the lever and the one-line step (force-stop stale singleuser pods via JupyterHub admin "stop server" or
kubectl delete pod → each user re-logs into a fresh pod on the patched image).
Full spec: #21.
Acceptance criteria
Blocked by
Parent
Map #16 · implements the layer-2 decision locked in #21 (running-pod refresh policy). Doc-only.
What to build
Capture the layer-2 policy in
CODEQ_DEPLOYMENT.mdso operators know what to expect and what levers exist. Layer 2 = passive convergence for routine updates; documented manual break-glass for security-critical; no in-Lab banner, no automated drain.Document:
kubectl delete pod→ each user re-logs into a fresh pod on the patched image).Full spec: #21.
Acceptance criteria
CODEQ_DEPLOYMENT.mdstates the routine-update convergence window (idle-cull timeout + max-server-lifetime cap) as the convergence SLA.Blocked by