Files
Drew Newberry 1e34e8c576 fix(drivers): require admission labels for external resources (#3538)
* fix(drivers): require admission labels for external resources

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(drivers): address resource admission review findings

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(core): reserve driver-owned admission labels

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(core): clarify workspace admission label

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(drivers): clarify resource admission failures

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* test(e2e): configure resource admission fixtures

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(kubernetes): retry forbidden admission lookups

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

* fix(e2e): preserve external driver admission defaults

Signed-off-by: Drew Newberry <anewberry@nvidia.com>

---------

Signed-off-by: Drew Newberry <anewberry@nvidia.com>
2026-09-22 21:22:30 +00:00

84 lines
3.0 KiB
TOML

# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
[package]
name = "openshell-gateway"
description = "OpenShell gateway binary composition"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
[[bin]]
name = "openshell-gateway"
path = "src/main.rs"
[dependencies]
serde_json = { workspace = true }
openshell-core = { path = "../openshell-core", default-features = false }
openshell-server = { path = "../openshell-server", default-features = false }
openshell-otel = { path = "../openshell-otel", optional = true }
async-trait = "0.1"
miette = { workspace = true }
tokio = { workspace = true }
[target.'cfg(not(target_os = "windows"))'.dependencies]
openshell-driver-docker = { path = "../openshell-driver-docker", optional = true }
openshell-driver-kubernetes = { path = "../openshell-driver-kubernetes", optional = true }
openshell-driver-podman = { path = "../openshell-driver-podman", optional = true }
openshell-policy = { path = "../openshell-policy", optional = true }
hyper-util = { workspace = true, optional = true }
nix = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
rustix = { workspace = true, optional = true }
tonic = { workspace = true, optional = true }
tower = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
[target.'cfg(target_os = "windows")'.dependencies]
openshell-driver-mxc = { path = "../openshell-driver-mxc", optional = true }
[features]
default = ["telemetry", "in-tree-compute-drivers"]
in-tree-compute-drivers = [
"compute-driver-docker",
"compute-driver-kubernetes",
"compute-driver-podman",
"compute-driver-vm",
"compute-driver-mxc",
]
compute-driver-mxc = ["dep:openshell-driver-mxc"]
compute-driver-docker = ["dep:openshell-driver-docker", "dep:openshell-otel"]
compute-driver-kubernetes = ["dep:openshell-driver-kubernetes", "dep:openshell-otel"]
compute-driver-podman = ["dep:openshell-driver-podman", "dep:openshell-otel"]
compute-driver-vm = [
"dep:openshell-policy",
"dep:openshell-otel",
"dep:hyper-util",
"dep:nix",
"dep:serde",
"dep:rustix",
"dep:tonic",
"dep:tower",
"dep:tracing",
]
telemetry = ["openshell-core/telemetry", "openshell-server/telemetry"]
## Convenience alias: every default feature except `telemetry`. Build a
## telemetry-free gateway with
## `--no-default-features --features defaults-without-telemetry` and stay
## correct as new default features are added. Cargo cannot subtract a single
## default feature, so this alias must be paired with `--no-default-features`;
## enabling it alongside `telemetry` is a compile error rather than a silent
## telemetry-on build. Kept in sync with `default` by
## `rust:verify:defaults-without-telemetry`.
defaults-without-telemetry = ["in-tree-compute-drivers"]
bundled-z3 = ["openshell-server/bundled-z3"]
[lints]
workspace = true
[dev-dependencies]
tempfile = "3"
toml = { workspace = true }