4.3 KiB
4.3 KiB
GCP leoclean migration goal
Objective
Deploy and prove Leo's least-privilege Hermes/leoclean runtime in GCP staging against canonical Cloud SQL, establish behavioral and database parity, connect the protected Observatory to canonical/proposal/vector/runtime receipts, then cut over safely and retire the VPS after soak.
Architecture baseline
- Hermes with the
leocleanprofile remains Leo's intended runtime. - Cloud SQL is canonical PostgreSQL authority.
- The protected Observatory is a separate frontend surface.
- The VPS remains untouched until an explicitly approved, parity-proven cutover and retirement sequence.
Current state
- Complete: PR #179 least-privilege PostgreSQL authority is merged on main.
- Complete: the revision-bound, structurally no-send runtime from PR #183 is
merged into
mainat2d88c9765bd9b43641d1efb04a1118c5ce0bce39. - Complete: PR #182 head
3e59845454f5315e955734db7fe598ec4ba4cf70was merged with merge commit94a8160ceeb6821fd113f4c843f024d5de99939aafter all five checks passed. - Complete: PR #202 remained the exact reviewed three-file QEMU/PID-1
correction at
ffe170007d0e20d77a5208263e5b33fc999139fcafter retargeting tomain, then merged with merge commit383996a43beebef57cf84a2ced53213e28a41dcaafter all five checks passed. - PR #193 is source material only. It must not be merged wholesale; only the required identity-binding and OCI-lifecycle corrections belong in the narrow #182/#183 stack.
- Complete through PR #182 head
3e59845: the narrow package correction binds every packaged and synthetic-identity source byte to its reviewed Git blob; container health binds the packaged/live config plus the exact sealed no-send tool and plugin surface; and the disposable image smoke also binds the implicit root bootstrap user, entrypoint, command, healthcheck, and stop signal. The focused package/runtime/identity/OCI suite passed 204 tests, the repository suite passed 2,338 with 3 skips, and one exact-revision syntheticlinux/amd64OCI lifecycle proved UID/GID65532, zero runtime capabilities, no-send health, and complete candidate cleanup on the arm64 Mac Docker daemon. No GCP or live service was contacted. - In progress from exact current-main base
383996a43beebef57cf84a2ced53213e28a41dca: make release finalization pull and inspect the exact immutable staging digest and refuse release/unit output unless the repository binding,linux/amd64platform, config digest, complete labels, runtime configuration, input hash, and source revision all match. Trust-bound JSON is strict, release publication is atomic and no-clobber, and failure rollback re-fsyncs its output parent. This slice does not build, push, install, or deploy an image and has not accessed Artifact Registry or GCP. - Current gate: finish exact-revision offline tests, then stop for separate branch-publication and human-review approval. Remote registry inspection is a later, separately authorized live-read gate.
- Not yet live-proven: staging VM/container engine, IAM/Secret Manager, Cloud SQL effective identity, restart behavior, or model/database parity.
Remaining order
- Finish, publish, and obtain exact-revision human review for immutable image inspection and release finalization.
- Add the structured build/push receipt producer that supplies the independently reviewed manifest and config digests consumed by finalization.
- Add the separate fail-closed installer/restart/verification/rollback slice that consumes the exact inspection-bound release bundle.
- Run the read-only Artifact Registry and
teleo-staging-1host/engine/service-account preflight. - Provision the scoped Cloud SQL role/secret and deploy the separate staging service.
- Prove effective identity, reads, function-only proposal staging, denied writes/escalation, receipts, restart stability, and rollback.
- Run behavioral and database parity backtesting.
- Connect the protected Observatory to canonical claims, proposals, pgvector projection, and runtime receipts.
- Cut over, soak, restore-test, revoke VPS credentials, and retire the VPS.
Current live-action boundary
No merge, Artifact Registry push, GCP/Cloud SQL/Secret Manager mutation, service deployment/restart, Telegram change, production promotion, canonical proposal apply, or VPS access is part of the current offline corrective slice.