|
9 | 9 | docker/ |
10 | 10 | .dockerignore |
11 | 11 | Dockerfile.sandbox # Sandbox container (runs agent code in isolation) |
12 | | - Dockerfile.server # Gateway container (orchestration / control plane) |
| 12 | + Dockerfile.gateway # Gateway container (orchestration / control plane) |
13 | 13 | Dockerfile.cluster # Airgapped k3s cluster with Helm charts and manifests |
14 | 14 | Dockerfile.ci # CI runner image with pre-installed toolchain |
15 | 15 | Dockerfile.python-wheels # Multi-arch Linux wheel builder for the Python CLI package |
@@ -74,11 +74,11 @@ The sandbox container runs inside each sandbox pod. It contains the sandbox supe |
74 | 74 | - Policy files are mounted at `/var/navigator/policy.rego` (rules) and `/var/navigator/data.yaml` (data) when running in file-based policy mode. |
75 | 75 | - The Python SDK is copied directly into the venv's site-packages at `/app/.venv/lib/python3.12/site-packages/openshell/`. |
76 | 76 |
|
77 | | -### Gateway Image (`openshell/server`) |
| 77 | +### Gateway Image (`openshell/gateway`) |
78 | 78 |
|
79 | 79 | The gateway container runs the control plane / orchestration service. |
80 | 80 |
|
81 | | -**Build stages** (2 stages in `deploy/docker/Dockerfile.server`): |
| 81 | +**Build stages** (2 stages in `deploy/docker/Dockerfile.gateway`): |
82 | 82 |
|
83 | 83 | 1. **builder** -- Two-pass Rust compilation with dependency caching: |
84 | 84 | - First pass copies only `Cargo.toml`/`Cargo.lock` files and creates dummy source files (`fn main() {}` / empty `lib.rs`) to build dependencies in isolation. This layer is cached unless dependency manifests change. |
@@ -195,7 +195,7 @@ Modifies the HelmChart manifest at `/var/lib/rancher/k3s/server/manifests/naviga |
195 | 195 | | Variable | Effect | |
196 | 196 | |---|---| |
197 | 197 | | `IMAGE_REPO_BASE` | Rewrites `repository:` and `sandboxImage:` to use the specified base path | |
198 | | -| `PUSH_IMAGE_REFS` | Parses comma-separated image refs and rewrites exact server and sandbox references (matching on path component `/server:`, `/sandbox:`) | |
| 198 | +| `PUSH_IMAGE_REFS` | Parses comma-separated image refs and rewrites exact gateway and sandbox references (matching on path component `/gateway:`, `/sandbox:`) | |
199 | 199 | | `IMAGE_TAG` | Replaces `:latest` tags with the specified tag (handles both quoted and unquoted `tag: latest` formats) | |
200 | 200 | | `IMAGE_PULL_POLICY` | Replaces `pullPolicy: Always` with the specified policy (e.g., `IfNotPresent`) | |
201 | 201 | | `SSH_GATEWAY_HOST` / `SSH_GATEWAY_PORT` | Replaces `__SSH_GATEWAY_HOST__` and `__SSH_GATEWAY_PORT__` placeholders; clears to defaults if unset | |
@@ -228,7 +228,7 @@ The Helm chart at `deploy/helm/navigator/` deploys the gateway to Kubernetes as |
228 | 228 | replicaCount: 1 |
229 | 229 |
|
230 | 230 | image: |
231 | | - repository: ghcr.io/nvidia/openshell/server |
| 231 | + repository: ghcr.io/nvidia/openshell/gateway |
232 | 232 | pullPolicy: Always |
233 | 233 | tag: "latest" |
234 | 234 |
|
@@ -306,7 +306,7 @@ All builds use mise tasks defined in `tasks/*.toml` (included from `mise.toml`). |
306 | 306 | |---|---| |
307 | 307 | | `mise run docker:build` | Build all runtime images (sandbox, gateway, cluster) | |
308 | 308 | | `mise run docker:build:sandbox` | Build sandbox image | |
309 | | -| `mise run docker:build:server` | Build gateway image | |
| 309 | +| `mise run docker:build:gateway` | Build gateway image | |
310 | 310 | | `mise run docker:build:cluster` | Build k3s cluster image (packages Helm charts first) | |
311 | 311 | | `mise run docker:build:ci` | Build CI runner image | |
312 | 312 | | `mise run docker:build:cluster:multiarch` | Build multi-arch cluster image and push to a registry | |
@@ -336,11 +336,11 @@ All builds use mise tasks defined in `tasks/*.toml` (included from `mise.toml`). |
336 | 336 | | `Cargo.toml`, `Cargo.lock`, `proto/*`, `deploy/docker/cross-build.sh` | Gateway + sandbox rebuild | |
337 | 337 | | `crates/navigator-core/*`, `crates/navigator-providers/*` | Gateway + sandbox rebuild | |
338 | 338 | | `crates/navigator-router/*` | Gateway rebuild | |
339 | | -| `crates/navigator-server/*`, `deploy/docker/Dockerfile.server` | Gateway rebuild | |
| 339 | +| `crates/navigator-server/*`, `deploy/docker/Dockerfile.gateway` | Gateway rebuild | |
340 | 340 | | `crates/navigator-sandbox/*`, `deploy/docker/sandbox/*`, `python/*`, `pyproject.toml`, `uv.lock`, `crates/navigator-sandbox/data/sandbox-policy.rego` | Sandbox rebuild | |
341 | 341 | | `deploy/helm/navigator/*` | Helm upgrade | |
342 | 342 |
|
343 | | -**Explicit target mode** (arguments: `server`, `sandbox`, `chart`, `all`): Rebuilds only the specified components. |
| 343 | +**Explicit target mode** (arguments: `gateway`, `sandbox`, `chart`, `all`): Rebuilds only the specified components. |
344 | 344 |
|
345 | 345 | Auto mode persists the last deployed fingerprints in `.cache/cluster-deploy-fast.state` (or `$DEPLOY_FAST_STATE_FILE`). Re-running `mise run cluster` without new local changes prints `No new local changes since last deploy.` and skips rebuild/upgrade work. |
346 | 346 |
|
@@ -461,7 +461,7 @@ When the cluster container starts, k3s automatically deploys these HelmChart CRs |
461 | 461 | ## Implementation References |
462 | 462 |
|
463 | 463 | - `deploy/docker/Dockerfile.sandbox` -- Sandbox image (5-stage multi-arch build) |
464 | | -- `deploy/docker/Dockerfile.server` -- Gateway image (2-stage with dependency caching) |
| 464 | +- `deploy/docker/Dockerfile.gateway` -- Gateway image (2-stage with dependency caching) |
465 | 465 | - `deploy/docker/Dockerfile.cluster` -- Cluster image (k3s base + charts + manifests) |
466 | 466 | - `deploy/docker/Dockerfile.ci` -- CI runner image (Ubuntu + full toolchain) |
467 | 467 | - `deploy/docker/Dockerfile.python-wheels` -- Linux wheel builder |
|
0 commit comments