Skip to content

OpenShell v0.1.7

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 19:24
· 21 commits to main since this release
5d25211

OpenShell v0.1.7

Quick install

curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.1.7 sh

Upgrade notes

  • Breaking: OpenShell now emits native OCSF 1.8.0 records only, so deployments that relied on 1.1 or 1.3 records now receive 1.8.0. The ocsf_schema_version setting, the gateway schema_version fields, Helm server.ocsfLog.schemaVersion, and OPENSHELL_OTLP_OCSF_SCHEMA_VERSION are deprecated and ignored, and setting them logs a warning. #5036
  • The Podman-only [openshell.drivers.podman].additional_ca_bundle setting from v0.1.5 still works, but it is deprecated in favor of the new [openshell.supervisor.network].additional_ca_bundle. The old key is only honored when Podman is the active compute driver. #5155
  • On the MicroVM driver, sandboxes from registry images and rootfs tars now run as the image's sandbox account, as documented, instead of always running as 1000:1000. New sandboxes from images whose sandbox account isn't UID 1000 now run under that UID, and requesting the image's own UID with run_as_user now works. #5131
  • config preflight and gateway startup now reject an [openshell.gateway.supervisor_pool] table when the selected driver doesn't use shared supervision, and they reject a pool recovery timeout shorter than member failure detection. #4988

Bug fixes

  • Shared-pool sandboxes whose supervisor stays gone past the 60-second recovery deadline now show as Stopped, and sandbox start runs them again. #5076
  • When the shared supervisor pool can't place a sandbox, sandbox create now says why: the pool isn't ready, no replica is attached, no replica has room, or placement failed. #4985
  • VM sandboxes now start when the gateway runs with a restrictive umask, such as the packaged UMask=0077. #5099
  • For direct connections, address selection from policy DNS now goes through the same destination checks as endpoint decisions. #5004
  • The gateway now accepts a supervisor's full 200-line reconnect log backlog instead of silently dropping half of it. #5049
  • OCSF events from the supervisor and gateway now pass validation against the official OCSF 1.8.0 schema. #4288, #5020
  • Vulnerable Rust dependencies are updated, including zip (GHSA-m665-v7pm-7grj), russh and pageant (open Dependabot alerts), and pulldown-cmark, and the unmaintained rustls-pemfile parser is replaced. #5026, #5030, #5122, #5123

Features

  • Kubernetes sandboxes can now update their image, command, environment, and metadata without being recreated or losing persistent storage. Updates require operator activation and a stopped sandbox, and stopping a completed, failed, or timed-out sandbox now moves it to Stopped while keeping its exit code or timeout diagnosis. #4873
  • Sandboxed agents can send OpenTelemetry traces to your collector without an egress rule: add [openshell.gateway.otlp.agent] with enabled = true to gateway.toml, and the supervisor tags each span with the sandbox id before forwarding it. #4276
  • OTLP export can now use OTLP/HTTP: set protocol = "http/protobuf" on [openshell.gateway.otlp] or any of its signal tables, with gRPC remaining the default. An OTLP endpoint that includes a query string is now a configuration error. #5082
  • OTLP collectors that require authentication or routing headers are now supported through headers or headers_file on [openshell.gateway.otlp] or a signal table. Supervisors and the agent trace relay send them too, so MLflow can ingest relayed agent traces directly with x-mlflow-experiment-id. #5083
  • OTLP collectors can use a private CA and mutual TLS: set ca_file, and optionally cert_file and key_file, on [openshell.gateway.otlp] or a signal table. The agent trace relay and OTLP/HTTP export now also support https:// collectors. #5084
  • Sandbox egress can now trust private PKI through [openshell.supervisor.network].additional_ca_bundle, which adds a PEM bundle on top of the default roots for every first-party compute driver. #3292
  • A new opt-in supervisor TLS listener lets declared HTTP and WebSocket sandbox services take application traffic directly, without going through the gateway. It is disabled by default. #4936
  • When several gateways share a Kubernetes cluster, ingress, and wildcard certificate, you can set service_hostname_format = "hashed" under [openshell.gateway] to give each exposed service a unique hostname. The default readable format is unchanged. #4842
  • The Rust, Go, Python, and TypeScript SDKs now send exec calls straight to the gateway replica that owns the sandbox when replica routing is enabled. Go also routes port-forward and SSH tunnel calls this way, and TypeScript routes port-forward. #4790, #4852, #4918, #4877
  • CLI browser login now works when the CLI runs inside a container: set OPENSHELL_CALLBACK_PORT to fix the callback port and OPENSHELL_CALLBACK_BIND_ADDRESS to change the bind address. The defaults are unchanged. #5065
  • The Python gRPC bindings now ship typed sync and async stubs, so editors and type checkers know the concrete request and response types. #5040
  • Embedders can opt into a system-OpenSSL crypto backend; AWS-LC remains the default. #4843

Other

  • The Podman container gateway docs now give a tested mTLS procedure and list every cause of the --tls-cert is required when TLS is enabled startup error. #4977, #5001
  • The service expose example in the docs now uses an image that includes Python. #4197
  • Stable release publication can now be retried safely without overwriting published artifacts, each release publisher can be dispatched on its own, and Release Dev keeps publishing when a snap upload or Go SDK tag fails. #4986, #4987, #5018
  • The temporary v0.1.6 protobuf compatibility exception was removed from release qualification. #4978
  • OCSF tests now validate events against the JSON Schemas exported by the OCSF schema server. #5019
  • The conformance suites moved onto testkit and now run through the new test runner, including on tmachine and in the host E2E lanes. #4773, #4774, #5078
  • Feature tests can now use services started by the test environment, beginning with Keycloak. #4891, #5089
  • E2E fixes: the shared supervisor harness now works with gateway TLS, and kind now gets its Calico images through the runner mirror. #4984, #5178
  • The Gator agent launcher can run on Kubernetes gateways with reusable tooling images, and it now applies manifest settings to the launched sandbox only. #4744, #4888
  • Build fixes: worktree builds no longer rebuild openshell-core every time, Windows lint passes again, and local image builds send a smaller build context. #4947, #5021
  • Dependency updates: OpenTelemetry 0.33 and rustls 0.23.46 in the test and example crates. #5081, #4994, #4996, #4997, #4998
  • Divesh Chowdary (@FrostGod) joined the OpenShell maintainers. #5175