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
{{ message }}
Repository navigation
Commit 424296b
Browse filesBrowse the repository at this point in the historyBrowse files
feat(gateway): support runtime image env overrides
Closes#3502
Resolve trusted OCI runtime images with driver TOML, process environment, and compiled-default precedence across Docker, Podman, and Kubernetes.
Signed-off-by: Evan Lezar <elezar@nvidia.com>
An explicit `sandbox_runtime_image` or `supervisor_image` in the selected
63
+
driver's TOML table takes precedence over the environment; the environment
64
+
takes precedence over the compiled release default. Preflight and startup use
65
+
the same resolution. These values are trusted operator inputs, not sandbox
66
+
request fields. Keep registry credentials in Podman's credential store rather
67
+
than embedding them in image references.
68
+
54
69
To override the path to the TOML config file entirely:
55
70
56
71
```shell
@@ -216,8 +231,8 @@ overrides that persist across package upgrades.
216
231
|`bind_address`|`127.0.0.1:17670` (gateway default) | Address for the primary gRPC/HTTP API listener. |
217
232
|`compute_driver`|`"podman"` (RPM default) | When unset, the gateway auto-detects Kubernetes, then Podman, then Docker. The RPM default pins to Podman; legacy `compute_drivers` lists are rejected. |
|`[openshell.drivers.podman].sandbox_runtime_image`|`ghcr.io/nvidia/openshell/sandbox:latest`|Static musl sandbox runtime image mounted into Podman workloads. |
220
-
|`[openshell.drivers.podman].supervisor_image`|`ghcr.io/nvidia/openshell/supervisor:latest`|Dynamic glibc supervisor image used outside the workload. |
234
+
|`[openshell.drivers.podman].sandbox_runtime_image`|`ghcr.io/nvidia/openshell/sandbox:latest`|Trusted sandbox runtime image. `OPENSHELL_SANDBOX_RUNTIME_IMAGE` supplies a process default when this field is omitted. |
235
+
|`[openshell.drivers.podman].supervisor_image`|`ghcr.io/nvidia/openshell/supervisor:latest`|Trusted supervisor image. `OPENSHELL_SUPERVISOR_IMAGE` supplies a process default when this field is omitted. |
221
236
|`[openshell.gateway].guest_tls_ca`| auto-generated path | Gateway CA injected into the selected local driver for supervisor-to-gateway TLS. Sandbox identity uses a bearer token. |
222
237
|`[openshell.gateway.tls]` paths | auto-generated paths | Server TLS certificate, key, and client CA. |
223
238
|`disable_tls`| unset | Set to `true` to disable TLS. |
Copy file name to clipboardExpand all lines: docs/how-it-works/gateways/configuration.mdx
+32Lines changed: 32 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,38 @@ Gateway CLI flag > gateway OPENSHELL_* env var > TOML file > built-in defa
20
20
21
21
On-disk SQLite databases run in WAL mode with `synchronous=FULL`: the gateway keeps `openshell.db-wal` and `openshell.db-shm` next to the database file, the file must live on a local filesystem, and a backup must use `sqlite3 openshell.db ".backup <copy>"` rather than copying `openshell.db` on its own. Every acknowledged write, including SSH session revocations, survives a power loss. The one exception is SSH session issuance, which skips the per-commit sync; a power loss can drop a just-issued session token, and the client must request a new one.
22
22
23
+
### Trusted runtime image overrides
24
+
25
+
Docker, Podman, and Kubernetes consume two gateway-owned trusted runtime
26
+
images. Set complete tagged or digest-pinned OCI references for the gateway
27
+
process when you need to qualify exact artifacts or use a registry mirror:
These two settings use driver-specific precedence because explicit operator
35
+
configuration must remain authoritative:
36
+
37
+
```text
38
+
[openshell.drivers.<selected>] TOML > process environment > compiled release default
39
+
```
40
+
41
+
`openshell-gateway config preflight` and gateway startup use the same effective
42
+
references. Environment values are handled exactly like the corresponding TOML
43
+
fields and passed to the selected container runtime; this feature does not add
44
+
separate OCI-reference validation. Configure registry credentials in Docker,
45
+
Podman, or Kubernetes image-pull secrets instead of embedding them in a
46
+
reference.
47
+
48
+
The variables affect only the built-in Docker, Podman, and Kubernetes drivers.
49
+
They do not affect VM, MXC, or extension drivers. They are trusted gateway
50
+
operator inputs and are never accepted from sandbox create requests. For
51
+
Debian and RPM user services, place them in
52
+
`~/.config/openshell/gateway.env`; the service supplies that file to both
53
+
preflight and gateway startup.
54
+
23
55
`name` assigns an operator-facing identity to the gateway installation. Set it with `[openshell.gateway].name`, `--name`, or `OPENSHELL_GATEWAY_NAME`. It defaults to `openshell`; the Helm chart defaults it to the chart fullname so all replicas in one installation share a name. Chart fullnames are only unique within their Kubernetes namespace, so set `server.name` explicitly when one collector receives telemetry from multiple namespaces or clusters. This identity is independent of client-side gateway aliases, TLS names, and `gateway_jwt.gateway_id`.
0 commit comments