test(docker): rely on existing e2e networking coverage

Signed-off-by: Drew Newberry <anewberry@nvidia.com>
This commit is contained in:
Drew Newberry
2026-10-11 22:30:45 -07:00
parent 679bdc323f
commit 0b3eec29c8
3 changed files with 0 additions and 133 deletions
-5
View File
@@ -84,11 +84,6 @@ name = "docker_corporate_proxy"
path = "tests/docker_corporate_proxy.rs"
required-features = ["e2e-docker"]
[[test]]
name = "docker_supervisor_networking"
path = "tests/docker_supervisor_networking.rs"
required-features = ["e2e-docker"]
[[test]]
name = "driver_config_volume"
path = "tests/driver_config_volume.rs"
@@ -1,123 +0,0 @@
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
#![cfg(feature = "e2e-docker")]
//! Exercise automatic networking selection using the workload runtime, along with
//! authenticated gateway callbacks, interactive access, and supervisor restart.
use std::time::Duration;
use openshell_e2e::harness::cli::{run_cli, wait_for_sandbox_phase};
use openshell_e2e::harness::sandbox::SandboxGuard;
async fn inspect_role(name: &str, role: &str) -> serde_json::Value {
let listed = tokio::process::Command::new("docker")
.args([
"ps",
"-aq",
"--filter",
&format!("label=openshell.ai/sandbox-name={name}"),
"--filter",
&format!("label=openshell.ai/isolation-role={role}"),
])
.output()
.await
.expect("list sandbox containers");
assert!(listed.status.success());
let id = String::from_utf8(listed.stdout).unwrap();
let id = id.trim();
assert!(!id.is_empty(), "missing {role} container for {name}");
let inspected = tokio::process::Command::new("docker")
.args(["inspect", id])
.output()
.await
.expect("inspect sandbox container");
assert!(inspected.status.success());
serde_json::from_slice::<Vec<serde_json::Value>>(&inspected.stdout)
.unwrap()
.remove(0)
}
#[tokio::test]
async fn supervisor_networking_preserves_boundary_and_survives_restart() {
let policy = tempfile::NamedTempFile::new().expect("create policy file");
std::fs::write(
policy.path(),
r"version: 1
filesystem_policy:
include_workdir: true
read_only: [/usr, /bin, /lib, /proc, /dev/urandom, /app, /etc, /var/log]
read_write: [/sandbox, /tmp, /dev/null]
landlock:
compatibility: best_effort
network_policies:
host_gateway:
name: host_gateway
endpoints:
- {host: host.openshell.internal, port: 8080, protocol: tcp}
binaries:
- {path: /usr/bin/getent}
",
)
.expect("write policy file");
let mut sandbox = SandboxGuard::create(&["--policy", policy.path().to_str().unwrap()])
.await
.expect("create sandbox");
let workload = inspect_role(&sandbox.name, "sandbox").await;
let expected = if workload["HostConfig"]["Runtime"] == "sysbox-runc" {
"bridge"
} else {
"host"
};
assert_eq!(workload["HostConfig"]["NetworkMode"], "none");
assert!(
workload["NetworkSettings"]["Networks"]
.as_object()
.is_none_or(|networks| networks.keys().all(|name| name == "none"))
);
let supervisor = inspect_role(&sandbox.name, "supervisor").await;
assert_eq!(supervisor["HostConfig"]["NetworkMode"], expected);
assert!(
sandbox
.exec(&["sh", "-c", "echo networking-ready"])
.await
.unwrap()
.contains("networking-ready")
);
assert!(
!sandbox
.exec(&["/usr/bin/getent", "hosts", "host.openshell.internal"])
.await
.expect("resolve policy-approved host alias")
.trim()
.is_empty()
);
let (output, code) = run_cli(&["sandbox", "stop", &sandbox.name]).await;
assert_eq!(code, 0, "{output}");
wait_for_sandbox_phase(&sandbox.name, "Stopped", Duration::from_secs(60))
.await
.unwrap();
let (output, code) = run_cli(&["sandbox", "start", &sandbox.name]).await;
assert_eq!(code, 0, "{output}");
assert!(
sandbox
.exec(&["sh", "-c", "echo networking-restarted"])
.await
.unwrap()
.contains("networking-restarted")
);
assert!(
!sandbox
.exec(&["/usr/bin/getent", "hosts", "host.openshell.internal"])
.await
.expect("resolve host alias after restart")
.trim()
.is_empty()
);
assert_eq!(
inspect_role(&sandbox.name, "supervisor").await["HostConfig"]["NetworkMode"],
expected
);
sandbox.cleanup().await;
}
-5
View File
@@ -301,11 +301,6 @@ description = "Run Docker conformance and Rust e2e tests against a standalone ga
depends = ["e2e:conformance:build"]
run = "OPENSHELL_CONFORMANCE_BIN=\"${OPENSHELL_CONFORMANCE_BIN:-$PWD/target/debug/openshell-conformance}\" e2e/rust/e2e-docker.sh"
["e2e:docker:supervisor-networking"]
description = "Exercise automatic Docker supervisor networking and restart"
depends = ["e2e:workload:build"]
run = "e2e/with-docker-gateway.sh cargo test --manifest-path e2e/rust/Cargo.toml --features e2e-docker --test docker_supervisor_networking"
["e2e:mechanistic-existing-endpoint"]
description = "Run #2821 existing inspected-endpoint auto-approval regression"
run = [