refactor(compute): unify gateway restart reconciliation - #2743
Conversation
|
🌿 Preview your docs: https://nvidia-preview-pr-2743.docs.buildwithfern.com/openshell |
2f74bca to
a036b59
Compare
b103f36 to
f8ce804
Compare
|
Label |
f8ce804 to
9cad488
Compare
|
/ok to test 9cad488 |
elezar
left a comment
There was a problem hiding this comment.
Requesting changes for two lifecycle correctness issues: shutdown currently stops sandboxes serially despite the stated bounded-concurrency design, and lifecycle sweeps can issue driver RPCs from stale persisted intent. The remaining review notes are non-blocking follow-ups.
2dcd123 to
c328af7
Compare
|
/ok to test |
Remove the Docker-specific gateway shutdown cleanup and reconcile persisted running intent through ComputeDriver::StartSandbox for Docker, Podman, and VM drivers. Explicitly stopped sandboxes remain stopped. Refs #2417 Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
c328af7 to
4fa5426
Compare
|
@drew A quick summary of the changes I made while reviewing and updating this PR branch:
Those follow-ups are intentionally documented as nonblocking for this PR. The current head is 4fa5426. |
Summary
Unify graceful gateway shutdown and startup for local compute through the public
ComputeDriverlifecycle RPCs. Shutdown callsStopSandboxfor running-intent Docker, Podman, and VM sandboxes without persisting an explicit user stop; startup calls the idempotentStartSandboxRPC for that retained intent. Kubernetes remains cluster-owned.Related Issue
Part of #2417
Changes
ComputeDriver::StopSandboxduring graceful gateway shutdownopenshell sandbox stopComputeDriver::StartSandboxbefore startup watch processingTesting
mise run pre-commitcargo test -p openshell-server shutdown_stop_sweep --libcargo test -p openshell-server start_persisted_sandboxes --libOPENSHELL_E2E_DOCKER_TEST=gateway_start mise run e2e:dockermise run test: all completed suites passed except the unrelatedgateway_completer_returns_empty_when_no_config, which reproduces in isolation because this host has registered system gateway configurationChecklist