Simon Scatton
fc03bffead
ci: consolidate multi-platform image builds ( #3408 )
...
* ci: remove release smoke tests
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: consolidate image builds
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
---------
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-09-17 13:46:31 +00:00
Simon Scatton
7d5b2e4fb0
ci: consolidate release binary builds ( #3405 )
...
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-09-17 12:09:42 +00:00
krishicks
12a7a35910
chore(tools): upgrade mise to 2026.9.9 ( #3385 )
...
Signed-off-by: Kris Hicks <khicks@nvidia.com >
2026-09-16 09:04:50 -07:00
Drew Newberry
c1f2e7189f
feat(isolation): implement the RFC 0012 sandbox architecture ( #2942 )
...
* feat(isolation): add RFC 0012 backend contract
Signed-off-by: Drew Newberry <385+drew@users.noreply.github.com >
* refactor(isolation): name the interface crate explicitly
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): expose trusted host gateway
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(agents): inventory the MXC driver
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): add mediated DNS transport
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): tighten interface error and digest contracts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(isolation): remove unrelated driver inventory
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): define capability-free launch contract
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): seal confirmed boundary state
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): validate confirmation for external backend implementations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): clarify mediated DNS identity
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(isolation): generalize loopback connector
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(isolation): unify typed network mediation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): bind launches to sandbox sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(mxc): initialize extended sandbox status
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): add boundary protocol and Linux primitives
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): harden signals and separate process status from transport
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): validate remote confirmation through public contract
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): validate wire state and propagate snapshot failures
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(isolation): import owned agent specification explicitly
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(isolation): describe mediated DNS channel
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): bound mediation attach without nested retries
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(isolation): generalize loopback protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): add transport-neutral session authentication
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(isolation): separate sandbox backend protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): harden runtime boundary controls
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): add terminal boundary operation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): split supervisor and sandbox runtimes
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): harden boundary isolation and lifecycle ownership
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): reject private root redirects and adopt typed errors
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): preserve accept thread ownership on musl
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(sandbox): isolate credential probes from filtered threads
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): return retained exec exit status to independent waiters
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): bound network mediation and preserve socket authorization
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): bound control admission and retire stale mediation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* ci(e2e): select migrated drivers per stack layer
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(sandbox): implement loopback connector
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(isolation): authenticate the Sandbox Protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(supervisor): rotate launch-scoped authentication
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(sandbox): consume dedicated backend crate
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(sandbox): align topology session fixture
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): align projected bootstrap bundle
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(auth): validate refreshed credentials before rotation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): fail closed across supervisor disconnects
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): repair rebased sandbox CI
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* build(runtime): publish separate sandbox and supervisor images
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(config): configure the sandbox runtime image
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(ci): validate sandbox binary linkage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(isolation): use backend and runtime terminology
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(sandbox): use a scratch runtime image
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(ci): refresh schema and dependency policy
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(sandbox): bind reconnects to supervisor process
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs: align runtime split operational guidance
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* chore(security): document Kubernetes runtime RBAC
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): enforce runtime lifecycle invariants
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(compute): identify sandbox start generations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(server): restore sandbox launch sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): support authenticated runtime replacement
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(auth): bind sandbox session successors
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(auth): retry pending sandbox successors
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(vm): run the supervisor outside the guest workload
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(vm): use sandbox backend protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): repair rebase integration
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): use unified build toolchain
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(vm): use sandbox runtime terminology
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(vm): own guest network bootstrap
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): expose guest init version
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): select native supervisor artifacts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): guard guest init Linux symbols
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): scope Linux test imports
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): avoid guest interface casts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): reconcile admitted sandbox identity
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): share resolved sandbox identity
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): surface host supervisor failures
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): include guest logs on supervisor exit
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): rotate and clean runtime generations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): make sandbox starts generation-aware
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): rotate restored sandbox sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(vm): keep shared paths in the base layer
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): bind sandbox session lineage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(docker): isolate workloads behind the host supervisor
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(docker): rotate launch-scoped authentication
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(docker): use sandbox backend protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(docker): use host networking for supervisor
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): preserve host gateway alias resolution
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(docker): use separate sandbox and supervisor images
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): restore startup validation after rebase
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(docker): name the sandbox runtime directly
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): narrow supervisor CA runtime storage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): close companion isolation gaps
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(docker): align mediated network expectations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(docker): exercise mediated network paths
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): attach supervisor to managed network
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): defer supervisor recovery until gateway is ready
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): make sandbox starts generation-aware
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): rotate restored sandbox sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): preserve workloads during session rotation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(docker): remove unrelated configuration RFC changes
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): bind sandbox session lineage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(kubernetes): add proxy-pod isolation topology
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(kubernetes): use sandbox backend protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): use stable sandbox service authority
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(kubernetes): split sandbox and supervisor images
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): adapt proxy pods to current runtime APIs
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(kubernetes): describe the single runtime placement
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(kubernetes): simplify sandbox orchestration
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): validate deployment prerequisites
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): update Trivy Helm profile inventory
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* test(kubernetes): update Trivy scan inventory count
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): reuse preloaded runtime images in e2e
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): type and clean runtime resources
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): make sandbox restarts recoverable
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): rotate restored sandbox sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): preserve supervisor egress
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): bind sandbox session lineage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(podman): adopt isolated sandbox and supervisor containers
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): stage bootstrap archives at named volume destinations
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(podman): rotate launch-scoped authentication
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(podman): use sandbox backend protocol
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(podman): use host networking for supervisor
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(podman): split sandbox and supervisor images
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): repair rebase integration
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(podman): name the sandbox runtime directly
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): provision supervisor CA runtime storage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): address isolation review findings
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): inspect Debian supervisor provenance
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): use libpod-compatible tmpfs options
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): bind verified sandbox runtime binary
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): provide external driver data directory
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): start sandbox before joining user namespace
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): separate supervisor user namespace
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): make sandbox starts generation-aware
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): rotate restored sandbox sessions
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): bind sandbox session lineage
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* perf(isolation): add TCP and DNS benchmark harnesses
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(perf): align benchmark timing and supported protocols
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(perf): report TCP benchmark metrics accurately
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(perf): cancel failed worker startup
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(docker): build matching local supervisor image
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(podman): make local sandbox smoke test runnable
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): wire local sandbox runtime image
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(kubernetes): narrow sandbox service RBAC
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(ci): validate split runtime artifacts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): harden runtime session handling
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* feat(supervisor): add standalone network proxy role
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* docs(rfc): remove implementation companion notes
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* refactor(vm): standardize runtime release name
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(vm): pin renamed runtime artifacts
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(auth): persist sandbox runtime identity
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(runtime): restore branch validation
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(isolation): reconcile main after rebase
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(network): close unframed HTTP 1.0 responses
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* chore(isolation): preserve upstream OCSF updates
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(security): close credential and TLS replay paths
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
* fix(auth): make sandbox refresh retries idempotent
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
---------
Signed-off-by: Drew Newberry <385+drew@users.noreply.github.com >
Signed-off-by: Drew Newberry <anewberry@nvidia.com >
2026-09-16 00:49:14 +00:00
Simon Scatton
bcf96e4900
chore(nix): unify Linux cross-compilation toolchains ( #3242 )
...
* chore(nix): unify native and cross-compilation toolchains
Replace the separate GNU and musl development shells with one shell that
provides explicit toolchains for x86_64 and aarch64 Linux, plus native
Darwin on macOS. Cargo selects the compiler, assembler, archiver, and
linker through target-specific environment variables.
Build GNU targets against a glibc 2.28 sysroot with static GCC runtimes
and use the musl toolchains for static Linux executables. Build Z3 and
AWS-LC with each target's stdenv and expose AWS-LC libraries and Rust
bindings through its target-specific system directory.
Keep Darwin system libraries on the unprocessed Apple SDK and prevent
the Rust toolchain from propagating replacement libraries into the shell.
Include the compiler and libc fixes needed for Darwin-to-Linux builds.
Share dependency and environment wiring through mkToolchain, keep compiler
wrappers in the Linux and Darwin modules, and group the pinned GNU build
environment under glibc-2.28. Document the toolchain boundaries in the build
architecture overview.
Validation: actionlint and nix fmt pass. The toolchain refactor preserves
the shell derivations for x86_64 Linux, aarch64 Linux, and aarch64 Darwin.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci(nix): use the default shell for binary builds
Remove the dev-shell input and its matrix and workflow plumbing.
Use the host default shell for builds and cache hashing.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci(nix): build release binaries with explicit Cargo targets
Use target-specific artifact paths and rely on the Nix toolchains for
linkage. Remove post-link rewriting, platform linkage checks, and the
unused interpreter input. Update the build architecture documentation.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* refactor(nix): reuse glibc and GCC build recipes
Use a pinned historical Nixpkgs recipe for glibc 2.28 and rebuild GCC 15
against it instead of maintaining separate runtime builds. Keep only
compatibility adjustments needed by the current build tools.
Assemble the sysroot from glibc outputs and static native libraries. Use
standard ELF interpreters and resolve Rust's explicit gcc_s dependency
through the static GCC archives.
Allow 90 minutes for Rust branch checks to accommodate cold toolchain
builds. Validate the Linux release matrix locally; Darwin remains for CI.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(nix): disable obsolete RPC tools in glibc
Avoid building rpcgen against the Darwin SDK, which does not expose stat64.
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
---------
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-09-10 14:27:12 +00:00
Dhiraj Bokde
cc4ded2088
feat(helm): split gateway and workspace charts ( #2643 )
...
* feat(helm): split gateway and workspace charts
Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com >
* fix(helm): preserve split chart upgrade compatibility
Keep workspace manifests valid after value validation and default legacy reused values to the combined resource topology.
* fix(ci): preserve VM runtime for E2E
The Rust cache restores target/ after VM runtime artifacts are staged,
overwriting target/vm-runtime-compressed before openshell-driver-vm is built.
Stage the compressed runtime outside target and pass that location through
OPENSHELL_VM_RUNTIME_COMPRESSED_DIR so build.rs can embed the supervisor.
Also locate the Helm split-ownership test repository root from the script
path rather than git rev-parse. The test runs in a container where the
GitHub checkout can be owned by a different UID and rejected as dubious
ownership.
Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com >
* fix(ci): install yq for Helm ownership test
The split-chart ownership regression uses yq to inspect rendered YAML,
but the Helm CI container installs only tools declared in mise.
Declare and lock yq so mise install --locked provides the test dependency.
Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com >
---------
Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com >
2026-09-02 00:23:39 +00:00
Evan Lezar
bb70461878
test(e2e): run conformance in gateway lanes ( #2925 )
...
* test(e2e): isolate VM-specific smoke assertions
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* test(e2e): add portable CLI conformance baseline
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* feat(conformance): add standalone CLI runner
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* test(e2e): run conformance in gateway lanes
Signed-off-by: Evan Lezar <elezar@nvidia.com >
---------
Signed-off-by: Evan Lezar <elezar@nvidia.com >
2026-09-01 12:36:51 +00:00
Simon Scatton
d1155aa700
fix(ci): normalize macOS binary dependencies ( #3006 )
...
Closes #2997
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-08-28 08:27:17 +00:00
Simon Scatton
981606d2f8
ci: build release binaries with Nix ( #2977 )
...
* ci: build release binaries with Nix
Refs #1683
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: build VM artifacts with Nix
Refs #1683
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: build images from Nix artifacts
Refs #1683
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(nix): prevent host header leakage
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: parallelize artifact builds
Refs #1683
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: build external driver test artifacts
Refs #1683
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(nix): disable mold in musl shells
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: key Rust cache by Nix shell derivation
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: refactor end-to-end workflows
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: split platform binary workflows
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: remove obsolete native build workflows
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: replace disallowed mise action
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: fix refactored e2e lanes
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: check out local result action
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: cache mise installations
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: run docker builds on host runners
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* ci: disable unstable kubernetes e2e lanes
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(ci): scope binary builds to cargo packages
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(ci): address zizmor template injection findings
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
* fix(ci): resolve remaining zizmor annotations
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
---------
Signed-off-by: Simon Scatton <sscatton@nvidia.com >
2026-08-27 17:25:06 +00:00
alangou
5f90c8579c
ci(security): add informational security checks ( #2930 )
...
Signed-off-by: Adrien Langou <alangou@nvidia.com >
2026-08-27 13:32:16 +00:00
Evan Lezar
f32c46d447
chore(ci): pin pr gate action ( #2368 )
...
Signed-off-by: Evan Lezar <elezar@nvidia.com >
2026-07-20 20:48:00 +00:00
Evan Lezar
339eae5ad1
ci(e2e): reuse prebuilt CLI and gateway artifacts ( #2311 )
...
* ci(e2e): reuse prebuilt CLI artifacts
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* ci(e2e): reuse prebuilt gateway artifacts
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* ci(e2e): reuse prebuilt VM driver artifact
Signed-off-by: Evan Lezar <elezar@nvidia.com >
---------
Signed-off-by: Evan Lezar <elezar@nvidia.com >
2026-07-20 16:24:02 +00:00
Mesut Oezdil
9a4f8a80fb
ci: pin docker actions to commit SHA ( #2328 )
...
login-action and setup-buildx-action used a mutable version tag while
every other action in the repo is pinned to a commit SHA. Pin both,
and align login-action to the same v4 SHA already used in ci-image.yml.
Use the full resolved version in the trailing comment (v3.12.0) to
match the more common convention used elsewhere in .github/.
2026-07-20 15:07:28 +02:00
Evan Lezar
b4be33e541
feat(ci): introduce merge queue ( #2024 )
...
* feat(ci): introduce merge queue
Closes #1946
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* fix(ci): run GPU E2E for merge groups
Signed-off-by: Evan Lezar <elezar@nvidia.com >
* docs(ci): clarify merge queue GPU gate
Signed-off-by: Evan Lezar <elezar@nvidia.com >
---------
Signed-off-by: Evan Lezar <elezar@nvidia.com >
2026-07-16 00:03:52 +02:00
krishicks
e8c16eb168
fix(release-dev): update azure/setup-helm to v5.0.1 ( #2274 )
...
Dependabot updated the Helm setup action in release-canary but missed the same
reference in the release composite action.
Signed-off-by: Kris Hicks <khicks@nvidia.com >
2026-07-14 16:29:14 -07:00
Taylor Mutch
c4ca283c1a
refactor(helm): require external postgres for ha ( #1844 )
2026-06-09 16:39:24 -07:00
Taylor Mutch
7d32bf93d2
fix(helm): vendor chart dependencies before release packaging ( #1627 )
...
Signed-off-by: Taylor Mutch <taylormutch@gmail.com >
2026-05-29 08:56:23 -07:00
Taylor Mutch
52389370b4
ci: deduplicate e2e workflows ( #1512 )
...
Signed-off-by: Taylor Mutch <taylormutch@gmail.com >
2026-05-21 17:44:05 -07:00
Piotr Mlocek
2a5a44989a
fix(ci): require PR checks to pass ( #1461 )
2026-05-19 14:46:23 -07:00
jtoelke2
3cfc915bfe
ci(os-132): remove stale remote buildx mode ( #1267 )
...
Signed-off-by: Jonas Toelke <jtoelke@nvidia.com >
2026-05-08 12:20:42 -05:00
Taylor Mutch
8fd574780c
ci(helm): add OCI chart release workflow ( #1196 )
...
* ci(helm): add OCI chart release workflow
Publishes the Helm chart to ghcr.io/nvidia/openshell/helm-chart via helm push on every tag (versioned + :latest) and main push (:0.0.0-dev overwrite + :0.0.0-dev.<sha> per-commit pin). Renames Chart.yaml name to helm-chart to match the target OCI path.
* ci(helm): use full sha in dev pinned chart version
The container images pushed by docker-build.yml are tagged with the
full $GITHUB_SHA, not a 7-char prefix. Match the chart's pinned
version (0.0.0-dev.<full-sha>) so the chart tag and the image tag
the chart resolves to are identical.
* docs(readme): add helm chart install instructions
Document the OCI chart at ghcr.io/nvidia/openshell/helm-chart with
examples for tagged, floating dev, and SHA-pinned dev installs, and
flag the Kubernetes deployment path as experimental.
* docs(helm): split chart details into chart README
Move the dev tag conventions and configuration pointers into a new
README under deploy/helm/openshell/ and shorten the top-level README
section to the install command (no --version, defaults to latest
tagged semver) plus a link to the chart README.
2026-05-06 13:50:37 -07:00
jtoelke2
5c77b06124
ci: add OS-49 phase 5 shadow workflows ( #1075 )
...
Signed-off-by: Jonas Toelke <jtoelke@nvidia.com >
2026-04-30 12:18:08 -05:00
jtoelke2
55b0266ed5
fix(ci): make buildkitd-config opt-in for setup-buildx ( #970 )
...
#966 hard-coded `buildkitd-config: /etc/buildkit/buildkitd.toml` inside
the `driver: local` branch of the setup-buildx composite action. The only
caller using that driver is shadow-docker-build.yml, which runs inside
the ghcr.io/nvidia/openshell/ci:latest container — so the host-side
buildkitd.toml was invisible to docker/setup-buildx-action and every
matrix job failed at "Set up buildx".
Revert the hard-coded path and expose it as an opt-in input on the
action (empty default, passed through to both the remote and local
branches). Wire shadow-docker-build.yml to bind-mount /etc/buildkit
into the ci container and pass the path explicitly, so the action can
read the file from inside the container. Remote-driver callers are
unaffected (empty input is a no-op).
Signed-off-by: Jonas Toelke <jtoelke@nvidia.com >
2026-04-24 16:35:14 -05:00
jtoelke2
daa7d7d2b9
fix(ci): use nv-gha-runners buildkit mirror to avoid Docker Hub rate limit ( #966 )
...
Signed-off-by: Jonas Toelke <jtoelke@nvidia.com >
2026-04-24 13:53:59 -07:00
jtoelke2
a4dfa5ad78
feat(ci): add driver input to setup-buildx action ( #941 )
...
Signed-off-by: Jonas Toelke <jtoelke@nvidia.com >
2026-04-23 22:58:31 -05:00
Piotr Mlocek
30ddca42d3
ci(e2e): enable E2E to run on external forks throught the copy-pr-bot flow ( #922 )
2026-04-22 14:15:10 -07:00
Drew Newberry
fbd93a4632
refactor: rename navigator- crate prefix to openshell- ( #277 )
2026-03-13 02:02:18 -07:00
Drew Newberry
a71f2a5e7d
ci: add GitHub Actions CI workflow with lint, test, and image build ( #1 )
2026-02-27 10:10:28 -08:00