Drew Newberry
17ce738bfb
fix(ci)!: remove gateway callback listener dependency ( #3365 )
...
* fix(ci): repair post-merge release canary
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(packaging): bootstrap canary runtime prerequisites
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(canary): collect macOS VM diagnostics
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(canary): pin libkrun-compatible macOS runner
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(canary): limit macOS smoke test to package startup
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(compute)!: remove gateway callback listeners
Run Docker supervisors on host networking so they use the operator-configured primary gateway endpoint. Remove the unused compute-driver callback listener negotiation and listener-scoped routing machinery.
BREAKING CHANGE: The ComputeDriver API no longer exposes GetGatewayListenerRequirements or GatewayListenerRequirement. External drivers must regenerate bindings and connect supervisors to the configured primary gateway endpoint.
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(docker): use sandbox runtime image in launcher
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(podman): exercise production endpoint selection
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(e2e): route supervisors to reachable gateways
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(e2e): align Podman endpoint fixtures
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): preserve host aliases for supervisors
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): align sandbox host gateway pin
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(e2e): address Docker fixtures by bridge IP
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(e2e): serialize sandbox lifecycle cases
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(e2e): host Docker TCP fixture with gateway
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(e2e): use loopback for host-network supervisor
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
2026-09-18 20:55:55 +00:00
Drew Newberry and Piotr Mlocek
8b77925eb7
feat(installer): support prerelease installations ( #3364 )
...
* feat(installer): support prerelease installations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(readme): clarify 0.1.0 production readiness
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(readme): refine production readiness message
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(release): publish rolling prerelease channels
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(release): keep prereleases out of GitHub releases
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(readme): refine 0.1.0 notice
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(readme): expand 0.1.0 notice
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(readme): simplify 0.1.0 notice
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(installer): simplify prerelease alias
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(installer): require successful prerelease runs
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(release): reuse exact prerelease artifacts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(installer): include prover in prerelease bundle
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci: remove prerelease post-publish validation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(fern): sync announcement configuration
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com >
* docs: remove stale prerelease canary claim
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(fern): defer announcement synchronization
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(fern): simplify release announcement
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com >
Co-authored-by: Piotr Mlocek <pmlocek@nvidia.com >
2026-09-18 00:53:36 +00:00
Johnny Greco
58b5f8f976
feat(prover): add standalone policy boundary checker ( #3289 )
...
* feat(prover): add standalone policy maximum checker
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* refactor(prover): simplify check scope schema
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): align containment and cancellation with runtime
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): stabilize containment checks in CI
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* test(prover): avoid solver in fast-path guard test
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): align string containment with runtime
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): reject ambiguous z3 string escapes
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): align containment with runtime boundaries
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover-cli): harden cancellation and invalid input
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* feat(packaging): install policy prover with OpenShell
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* docs(prover): clarify installation and check results
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* docs(build): describe prover distribution directly
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* refactor(prover): rename maximum policy to boundary
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* refactor(prover): localize fail-closed validation
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* test(prover): cover fail-closed CLI surfaces
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* test(prover): allow CI load for REST solver proof
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): use canonical policy schema for containment
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): preserve uncertainty for runtime binary globs
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): bound policy validation work
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* docs(prover): document validation resource limits
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(prover): make containment API extensible
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* docs(prover): define containment API contract
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(ci): integrate prover with consolidated builds
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
* fix(ci): declare release packaging dependency
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
---------
Signed-off-by: Johnny Greco <jogreco@nvidia.com >
2026-09-17 17:30:03 +00:00
Jesse Jaggars and Drew Newberry
02b664bb0d
refactor(config): normalize and enforce gateway schema v2 ( #2814 )
...
* refactor(config): normalize compute driver field names
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* refactor(config): introduce canonical gateway fields
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* refactor(config): enforce gateway schema version 2
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): preserve compute driver runtime guarantees
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): address schema v2 review regressions
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): complete schema v2 migration safeguards
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(config): expand schema v2 regression coverage
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(config): add schema v2 parity manifest
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): correct parity manifest inventory
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* docs(config): record schema v2 intentional changes
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* docs(config): disposition schema v2 parity gaps
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): add dual schema parity harness
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): establish compute lifecycle parity baseline
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): preserve gateway option compatibility
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): record gateway option parity
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* docs(config): close gateway-wide parity gaps
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(podman): apply configured pids limit
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): validate Podman option parity
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): add Kubernetes option parity harness
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): record Kubernetes option parity
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): disposition VM parity lanes
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): add external driver parity lane
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(e2e): preserve external driver pull policy
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): attest parity artifacts and launches
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): require clean parity build sources
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): bind parity runtime artifacts
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(e2e): use isolated supervisor tags
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(e2e): qualify parity image tags
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(e2e): serve parity supervisor locally
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): isolate parity podman services
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): harden parity evidence provenance
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): pin parity sandbox artifacts
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): attest parity runtime inputs
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): bind parity runtime evidence
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): record compute boundary parity
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(e2e): disposition cross-cutting parity lanes
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(packaging): preflight gateway config upgrades
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): preserve rebase integration guarantees
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(ci): isolate temporary git signing config
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): update remaining schema v2 consumers
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(ci): provide e2fs tools to VM tests
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): align preflight with gateway startup
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(vm): preserve rootfs tar configuration
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* chore(config): adopt duration unit constructors
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(packaging): preflight RPM gateway config
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(config): address driver review findings
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(e2e): require fresh semantic parity evidence
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* fix(docker): update tests for renamed sandbox label
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
* test(gateway): preserve selective driver coverage after rebase
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Jesse Jaggars <jjaggars@redhat.com >
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
Co-authored-by: Drew Newberry <anewberry@nvidia.com >
2026-09-11 05:00:24 +00:00
Simon Scatton
455883905a
fix(python): remove CLI from wheel ( #2321 )
...
The Maturin-based wheel packaging was a historical remnant from when the local gateway launch path and OpenShell CLI were coupled in one binary. The gateway and CLI now ship as standalone artifacts, so the Python distribution should contain only the SDK.
Build a single platform-independent setuptools wheel, verify that it cannot contain native code or an openshell entry point, and simplify the release jobs and documentation for SDK-only PyPI installs.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-08-25 13:20:42 +00:00
Drew Newberry
f12f3ef8d5
fix(macos): restore Homebrew sandbox callbacks ( #2739 )
...
* fix(macos): restore Docker gateway callbacks
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(gateway): reuse reachable primary callback listener
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
2026-08-14 18:38:20 +00:00
Evan Lezar and Drew Newberry
d220d89468
feat(compute): negotiate gateway callback listeners ( #2492 )
...
* feat(compute): query gateway listener requirements
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* feat(compute): add Podman listener requirements
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* test(docker): use default gateway bind address
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(gateway): avoid wildcard primary listener
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(podman): validate callback listener discovery
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(server): support split dual-stack listeners
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(podman): support legacy rootless listener discovery
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* test(e2e): accept loopback plaintext rejection
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* docs(agent): add callback listener diagnostics
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(server): restrict compute callback listeners
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(podman): validate local callback port
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* test(server): clarify callback listener contract
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(podman): require pasta for local callbacks
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* docs(gateway): document RPM listener default
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* refactor(server): keep listener provenance diagnostic-only
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(compute): preserve callback listener isolation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(e2e): remove Podman callback relay
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(packaging): preserve Podman callback loopback
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(e2e): run VM smoke on nested-virt runner
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(e2e): gate VM smoke on usable KVM
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(e2e): probe KVM through VM driver
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(e2e): tolerate hosted KVM denial
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(server): close traced futures before assertions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* revert: remove tracing test stabilization
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Evan Lezar <elezar@nvidia.com >
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
Co-authored-by: Drew Newberry <anewberry@nvidia.com >
2026-07-31 16:41:06 +00:00
Oliver Calder
994750e3a1
feat(snap): vendor ssh in openshell snap and remove ssh-keys interface ( #2280 )
...
Previously, the openshell snap used the ssh-keys interface to get access
to the host's ssh binary, which is used for sandbox connect/exec/forward.
However, ssh-keys is a privileged interface which also grants access to
the public and private ssh keys on the host. As such, it required manual
connection in order to be used.
This weakened the security sandbox of the snap, and hurt the UX of
installing it.
This commit changes this by removing the `ssh-keys` interface and
instead vendoring the `ssh` binary within the snap.
This is safe because OpenShell always invokes the `ssh` binary with
`StrictHostKeyChecking=no`, `UserKnownHostsFile=/dev/null`, and
`GlobalKnownHostsFile=/dev/null`, and never uses any host credentials or
ssh configuration. Openshell only ever access to `~/.ssh/config` to
write OpenShell-managed aliases, and this can safely live within the
snap sandbox, rather than leaking into the host environment.
Signed-off-by: Oliver Calder <oliver.calder@canonical.com >
2026-07-15 03:05:33 +00:00
Mesut Oezdil
ed8ce8208f
docs: fix Docker version format from 28.04 to 28.0 ( #2136 )
2026-07-08 16:57:07 -07:00
Piotr Mlocek
e4d7d41656
fix(snap): use snap-owned XDG directories ( #1972 )
2026-06-25 11:46:34 -07:00
Piotr Mlocek
82d03f1c98
fix(linux): lower host glibc floor to 2.28 to support RHEL/Rocky 8 ( #1934 )
2026-06-22 14:09:26 -07:00
Zygmunt Krynicki
4025894a94
chore(snap): remove early snap packaging ( #1648 )
2026-06-08 22:09:09 -07:00
Piotr Mlocek
0dc08a185e
fix(release): build host Linux binaries with glibc floor ( #1490 )
2026-05-22 12:12:03 -07:00
Drew Newberry
f257ed0193
refactor(packaging): rely on gateway runtime defaults ( #1415 )
...
* fix(packaging): use gateway TOML config in packages
* refactor(packaging): rely on gateway runtime defaults
2026-05-18 14:13:19 -07:00
Eric Curtin
9f8edb5a45
docs(installation): add container gateway page with docker run and compose examples ( #1321 )
...
Add a dedicated page documenting how to run the OpenShell gateway as a
container using docker run, docker-compose, or podman, without the
system package manager installer.
This is useful for users on immutable OS distributions (Fedora CoreOS,
bootc-based images, Silverblue) where the standard install.sh path is
not appropriate, and for container-first environments.
Covers a quick-start with TLS disabled (localhost-bound), a full mTLS
setup using the gateway's generate-certs subcommand, a docker-compose
example, and a Podman variant.
Closes the gap raised in #1285 .
Signed-off-by: Eric Curtin <eric.curtin@docker.com >
2026-05-15 09:22:19 -07:00
Drew Newberry
daa2a362d5
fix(packaging): enable mTLS for local packages ( #1271 )
2026-05-08 13:02:12 -07:00
Taylor Mutch
d8f614fa31
docs(kubernetes): add initial reference docs ( #1243 )
...
* docs(kubernetes): add initial reference docs
Add a Kubernetes reference section under docs/reference/kubernetes/ covering
gateway setup, OIDC and reverse-proxy authentication, cert-manager PKI, and
Gateway API external access. Update installation.mdx to link to the new setup
page and nest the new folder under the Reference section in index.yml.
* docs(kubernetes): promote Kubernetes to top-level nav and retitle pages
Move docs/reference/kubernetes/ to docs/kubernetes/ so the section appears
as a top-level nav entry rather than nested under Reference. Retitle the
pages to broader, action-oriented names (Managing Certificates, Ingress,
Access Control) and rename the files to match. Update cross-references in
setup.mdx and the installation page.
* docs(nav): revert Reference to folder mode
The Reference section was switched to explicit section/contents to host
the nested Kubernetes subsection. With Kubernetes promoted to a top-level
folder, restore folder-mode auto-detection. Side effect: sandbox-compute-drivers
is picked up again, which was silently absent from the explicit list.
* docs(kubernetes): add OpenShift install page
Mirror the OpenShift install instructions from PR #1240 into the
Kubernetes docs section. Documents the SCC binding for sandbox pods
and the chart overrides required by OpenShift's Security Context
Constraints (disabled PKI init Job, plaintext TLS, cleared fsGroup
and runAsUser).
2026-05-07 12:55:56 -07:00
Drew Newberry
728165a12c
docs: consolidate documentation structure ( #1231 )
2026-05-07 09:14:08 -07:00