You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| mTLS mismatch after redeploy | PKI rotated but workload not restarted, or rollout failed | Check that all three TLS secrets exist and that the openshell pod restarted after cert rotation (Step 6) |
| NFD/GFD DaemonSets present (`node-feature-discovery`, `gpu-feature-discovery`) | Cluster was deployed before NFD/GFD were disabled (pre-simplify-device-plugin change) | These are harmless but add overhead. Clean up: `openshell doctor exec -- kubectl delete daemonset -n nvidia-device-plugin -l app.kubernetes.io/name=node-feature-discovery` and similarly for GFD. The `nvidia.com/gpu.present` node label is no longer applied; device plugin scheduling no longer requires it. |
306
307
| Architecture mismatch (remote) | Built on arm64, deploying to amd64 | Cross-build the image for the target architecture |
307
308
| Port conflict | Another service on the configured gateway host port (default 8080) | Stop conflicting service or use `--port` on `openshell gateway start` to pick a different host port |
308
309
| gRPC connect refused to `127.0.0.1:443` in CI | Docker daemon is remote (`DOCKER_HOST=tcp://...`) but metadata still points to loopback | Verify metadata endpoint host matches `DOCKER_HOST` and includes non-loopback host |
Both methods install the latest stable release by default. To install a specific version, set `OPENSHELL_VERSION` (binary) or pin the version with `uv tool install openshell==<version>`. A [`dev` release](https://github.com/NVIDIA/OpenShell/releases/tag/dev) is also available that tracks the latest commit on `main`.
36
+
36
37
### Create a sandbox
37
38
38
39
```bash
39
-
openshell sandbox create -- claude # or opencode, codex, ollama
40
+
openshell sandbox create -- claude # or opencode, codex, copilot
40
41
```
41
42
42
43
A gateway is created automatically on first use. To deploy on a remote host instead, pass `--remote user@host` to the create command.
@@ -45,7 +46,7 @@ The sandbox container includes the following tools by default:
@@ -115,9 +116,11 @@ Policies are declarative YAML files. Static sections (filesystem, process) are l
115
116
116
117
## Providers
117
118
118
-
Agents need credentials — API keys, tokens, service accounts. OpenShell manages these as **providers**: named credential bundles that are injected into sandboxes at creation. The CLI auto-discovers credentials for recognized agents (Claude, Codex, OpenCode) from your shell environment, or you can create providers explicitly with `openshell provider create`. Credentials never leak into the sandbox filesystem; they are injected as environment variables at runtime.
119
+
Agents need credentials — API keys, tokens, service accounts. OpenShell manages these as **providers**: named credential bundles that are injected into sandboxes at creation. The CLI auto-discovers credentials for recognized agents (Claude, Codex, OpenCode, Copilot) from your shell environment, or you can create providers explicitly with `openshell provider create`. Credentials never leak into the sandbox filesystem; they are injected as environment variables at runtime.
120
+
121
+
## GPU Support (Experimental)
119
122
120
-
## GPU Support
123
+
> **Experimental** — GPU passthrough works on supported hosts but is under active development. Expect rough edges and breaking changes.
121
124
122
125
OpenShell can pass host GPUs into sandboxes for local inference, fine-tuning, or any GPU workload. Add `--gpu` when creating a sandbox:
123
126
@@ -136,8 +139,9 @@ The CLI auto-bootstraps a GPU-enabled gateway on first use. GPU intent is also i
136
139
|[Claude Code](https://docs.anthropic.com/en/docs/claude-code)|[`base`](https://github.com/NVIDIA/OpenShell-Community/tree/main/sandboxes/base)| Works out of the box. Provider uses `ANTHROPIC_API_KEY`. |
137
140
|[OpenCode](https://opencode.ai/)|[`base`](https://github.com/NVIDIA/OpenShell-Community/tree/main/sandboxes/base)| Works out of the box. Provider uses `OPENAI_API_KEY` or `OPENROUTER_API_KEY`. |
138
141
|[Codex](https://developers.openai.com/codex)|[`base`](https://github.com/NVIDIA/OpenShell-Community/tree/main/sandboxes/base)| Works out of the box. Provider uses `OPENAI_API_KEY`. |
142
+
|[GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli)|[`base`](https://github.com/NVIDIA/OpenShell-Community/tree/main/sandboxes/base)| Works out of the box. Provider uses `GITHUB_TOKEN` or `COPILOT_GITHUB_TOKEN`. |
139
143
|[OpenClaw](https://openclaw.ai/)|[Community](https://github.com/NVIDIA/OpenShell-Community)| Launch with `openshell sandbox create --from openclaw`. |
140
-
|[Ollama](https://ollama.com/)|[Community](https://github.com/NVIDIA/OpenShell-Community)| Launch with `openshell sandbox create --from ollama`. |
144
+
|[Ollama](https://ollama.com/)|[Community](https://github.com/NVIDIA/OpenShell-Community)| Launch with `openshell sandbox create --from ollama`.|
Copy file name to clipboardExpand all lines: architecture/README.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -224,17 +224,19 @@ Sandbox behavior is governed by policies written in YAML and evaluated by an emb
224
224
225
225
Inference routing to `inference.local` is configured separately at the cluster level and does not require network policy entries. The OPA engine evaluates only explicit network policies; `inference.local` connections bypass OPA entirely and are handled by the proxy's dedicated inference interception path.
226
226
227
-
Policies are not intended to be hand-edited by end users in normal operation. They are associated with sandboxes at creation time and fetched by the sandbox supervisor at startup via gRPC. For development and testing, policies can also be loaded from local files.
227
+
Policies are not intended to be hand-edited by end users in normal operation. They are associated with sandboxes at creation time and fetched by the sandbox supervisor at startup via gRPC. For development and testing, policies can also be loaded from local files. A gateway-global policy can override all sandbox policies via `openshell policy set --global`.
228
228
229
-
For more detail, see [Policy Language](security-policy.md).
229
+
In addition to policy, the gateway delivers runtime **settings** -- typed key-value pairs (e.g., `log_level`) that can be configured per-sandbox or globally. Settings and policy are delivered together through the `GetSandboxSettings` RPC and tracked by a single `config_revision` fingerprint. See [Gateway Settings Channel](gateway-settings.md) for details.
230
+
231
+
For more detail on the policy language, see [Policy Language](security-policy.md).
230
232
231
233
### Command-Line Interface
232
234
233
235
The CLI is the primary way users interact with the platform. It provides commands organized into four groups:
234
236
235
237
-**Gateway management** (`openshell gateway`): Deploy, stop, destroy, and inspect clusters. Supports both local and remote (SSH) targets.
236
238
-**Sandbox management** (`openshell sandbox`): Create sandboxes (with optional file upload and provider auto-discovery), connect to sandboxes via SSH, and delete sandboxes.
-**Provider management** (`openshell provider`): Create, update, list, and delete external service credentials.
239
241
-**Inference management** (`openshell cluster inference`): Configure cluster-level inference by specifying a provider and model. The gateway resolves endpoint and credential details from the named provider record.
240
242
@@ -297,4 +299,5 @@ This opens an interactive SSH session into the sandbox, with all provider creden
297
299
|[Policy Language](security-policy.md)| The YAML/Rego policy system that governs sandbox behavior. |
298
300
|[Inference Routing](inference-routing.md)| Transparent interception and sandbox-local routing of AI inference API calls to configured backends. |
299
301
|[System Architecture](system-architecture.md)| Top-level system architecture diagram with all deployable components and communication flows. |
0 commit comments