Merge branch 'main' into NOT_RIDICULOUS_CONTAINER_IMPLEMINTATION

This commit is contained in:
Victor Zharikov 2026-06-29 11:05:27 +03:00
commit e1baa3568d
4 changed files with 27 additions and 3 deletions

2
Cargo.lock generated
View file

@ -21,7 +21,7 @@ dependencies = [
[[package]]
name = "agent-vm"
version = "0.1.24"
version = "0.1.25"
dependencies = [
"anyhow",
"base64",

View file

@ -6,7 +6,7 @@ members = ["crates/agent-vm"]
exclude = ["vendor/microsandbox"]
[workspace.package]
version = "0.1.24"
version = "0.1.25"
edition = "2024"
license = "MIT"
repository = "https://github.com/wirenboard/agent-vm"

View file

@ -749,6 +749,30 @@ pub async fn launch(agent: Agent, args: Args) -> Result<i32> {
);
}
// Surface the host HTTP proxy when one is set. Host-side image pulls
// already honour it (reqwest auto-detects the env), and guest egress now
// tunnels through it via HTTP CONNECT — the microsandbox network stack
// reads the same `HTTPS_PROXY`/`HTTP_PROXY`/`ALL_PROXY`/`NO_PROXY` at boot.
// Be loud about it so the operator knows all traffic is routed there.
if let Some(proxy) = microsandbox::microsandbox_network::http_proxy::ProxyConfig::from_env() {
match (proxy.https_display(), proxy.http_display()) {
(Some(s), Some(h)) if s == h => {
eprintln!("==> Proxy: routing guest egress + image pulls through {s} (HTTP CONNECT)");
}
(https, http) => {
if let Some(s) = https {
eprintln!("==> Proxy: HTTPS/TLS egress + image pulls via {s} (HTTP CONNECT)");
}
if let Some(h) = http {
eprintln!("==> Proxy: plain-HTTP egress via {h} (HTTP CONNECT)");
}
}
}
if let Some(no_proxy) = proxy.no_proxy_display() {
eprintln!("==> Proxy: bypassing (no_proxy) {no_proxy}");
}
}
// For each provider with a host credential file, register a
// SecretValue::File secret keyed on the placeholder string the
// guest will send, then register the OAuth refresh endpoint as a

2
vendor/microsandbox vendored

@ -1 +1 @@
Subproject commit a5c830d2f46509dffdfdb8cc38571b7fcbc94ed5
Subproject commit d6b9b11732771266169beb4043a4164235a67d64