Skip to content

refactor(compute): decouple gateway driver composition - #2823

Draft
drew wants to merge 4 commits into
mainfrom
refactor/2417-server-driver-decoupling/drew
Draft

refactor(compute): decouple gateway driver composition#2823
drew wants to merge 4 commits into
mainfrom
refactor/2417-server-driver-decoupling/drew

Conversation

@drew

@drew drew commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Move first-party compute-driver composition and VM process ownership into openshell-gateway, leaving openshell-server independent of compute backend implementations. The gateway can build without compute drivers, compile first-party drivers through generic registration, or connect to drivers through the public compute-driver RPC.

Related Issue

Part of #2417.

Changes

  • add openshell-gateway as the binary and first-party driver composition crate
  • gate compiled first-party registrations behind in-tree-compute-drivers
  • keep openshell-server free of compute-driver implementation dependencies and construction logic
  • move VM subprocess launch and first-party registration to the gateway composition boundary
  • support driver-free gateway builds and external Docker, Podman, Kubernetes, and VM driver binaries
  • bound compute-driver telemetry categories without backend-specific server logic
  • configure sandbox token bootstrap under the gateway-owned [openshell.gateway.sandbox_token_bootstrap] table
  • retain existing compiled Kubernetes configuration through a generic registration compatibility default while unrelated external drivers require no Kubernetes table
  • carry user_namespaces as a typed compute-driver field and perform Kubernetes hostUsers translation in the Kubernetes driver
  • accept the legacy Kubernetes platform_config.host_users encoding for rolling upgrades
  • update architecture, gateway configuration, Helm rendering/tests, packaging, deployment, and troubleshooting guidance
  • remove stale backend-specific comments and obsolete build references

Testing

  • mise run pre-commit
  • OPENSHELL_SYSTEM_GATEWAY_DIR=/tmp/openshell-empty-system-config-codex-pr2823 mise run test
  • mise run helm:test (106 tests)
  • cargo check -p openshell-gateway --no-default-features
  • cargo check -p openshell-gateway --features in-tree-compute-drivers
  • focused server, gateway registration, and Kubernetes user-namespace tests
  • mise run e2e:gateway:no-compute-drivers
  • external-driver E2E matrix runs in branch CI

Checklist

@copy-pr-bot

copy-pr-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 6d719f2 to 96f603d Compare August 20, 2026 05:10
@drew

drew commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 96f603d to bb88ad5 Compare August 20, 2026 14:28
@drew

drew commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from bb88ad5 to d3ae889 Compare August 20, 2026 14:32
@drew

drew commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from d3ae889 to 69ddee1 Compare August 20, 2026 14:59
@drew

drew commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

@elezar
elezar force-pushed the refactor/2417-server-driver-decoupling/drew branch from 69ddee1 to 00eff3d Compare August 20, 2026 15:35
@elezar

elezar commented Aug 20, 2026

Copy link
Copy Markdown
Member

@drew This branch update is rebase-only: PR #2823 was rebased onto the restored PR #2822 head. No intentional feature or scope changes were added to this PR; the conflict resolution preserves the parent stack behavior while retaining the existing gateway-composition and telemetry commits.

@elezar
elezar force-pushed the refactor/2417-server-driver-decoupling/drew branch from 00eff3d to a8047fd Compare August 20, 2026 15:44
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from a8047fd to 4348c48 Compare August 20, 2026 16:10
@copy-pr-bot

copy-pr-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 4348c48 to d910ae3 Compare August 20, 2026 19:18
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from d910ae3 to 31a9534 Compare August 20, 2026 20:50
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 31a9534 to 507d4c3 Compare August 20, 2026 21:56
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 507d4c3 to dc8a917 Compare August 20, 2026 22:51
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch 2 times, most recently from ef9bc47 to 57d5c3c Compare August 21, 2026 00:46
@drew

drew commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 57d5c3c to 6b4f157 Compare August 21, 2026 00:56
@drew

drew commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

Base automatically changed from refactor/2417-external-driver-binaries/drew to main August 21, 2026 03:03
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 6b4f157 to 7485b0d Compare August 21, 2026 03:03
drew added 4 commits August 20, 2026 21:46
Move first-party composition and VM process ownership into openshell-gateway, leaving openshell-server backend-independent. Update packaging and build references with the new crate, simplify the compiled-driver boundary, and keep the driver-free gateway path buildable with bundled Z3 tooling.

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>
@drew
drew force-pushed the refactor/2417-server-driver-decoupling/drew branch from 7485b0d to a1b2f4e Compare August 21, 2026 04:47
@drew

drew commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants