diff --git a/Cargo.lock b/Cargo.lock index 13e9bcf1..614e02f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3837,7 +3837,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.4", + "socket2 0.5.10", "system-configuration", "tokio", "tower-service", @@ -5304,7 +5304,7 @@ dependencies = [ [[package]] name = "openshell-core" version = "0.0.0" -source = "git+https://github.com/wseaton/OpenShell.git?rev=3441f91a1de8ee1688c2add95d72fec53d404812#3441f91a1de8ee1688c2add95d72fec53d404812" +source = "git+https://github.com/wseaton/OpenShell.git?rev=aeeecb7d4072f0fb63eb29ad11d26344c79d8670#aeeecb7d4072f0fb63eb29ad11d26344c79d8670" dependencies = [ "async-trait", "base64 0.22.1", @@ -5338,7 +5338,7 @@ dependencies = [ [[package]] name = "openshell-extension-core" version = "0.0.0" -source = "git+https://github.com/wseaton/OpenShell.git?rev=3441f91a1de8ee1688c2add95d72fec53d404812#3441f91a1de8ee1688c2add95d72fec53d404812" +source = "git+https://github.com/wseaton/OpenShell.git?rev=aeeecb7d4072f0fb63eb29ad11d26344c79d8670#aeeecb7d4072f0fb63eb29ad11d26344c79d8670" dependencies = [ "hyper-util", "serde", @@ -5351,7 +5351,7 @@ dependencies = [ [[package]] name = "openshell-policy" version = "0.0.0" -source = "git+https://github.com/wseaton/OpenShell.git?rev=3441f91a1de8ee1688c2add95d72fec53d404812#3441f91a1de8ee1688c2add95d72fec53d404812" +source = "git+https://github.com/wseaton/OpenShell.git?rev=aeeecb7d4072f0fb63eb29ad11d26344c79d8670#aeeecb7d4072f0fb63eb29ad11d26344c79d8670" dependencies = [ "hickory-proto", "miette", @@ -5365,7 +5365,7 @@ dependencies = [ [[package]] name = "openshell-policy-schema" version = "0.0.0" -source = "git+https://github.com/wseaton/OpenShell.git?rev=3441f91a1de8ee1688c2add95d72fec53d404812#3441f91a1de8ee1688c2add95d72fec53d404812" +source = "git+https://github.com/wseaton/OpenShell.git?rev=aeeecb7d4072f0fb63eb29ad11d26344c79d8670#aeeecb7d4072f0fb63eb29ad11d26344c79d8670" dependencies = [ "miette", "noyalib", @@ -6166,7 +6166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" dependencies = [ "heck", - "itertools 0.14.0", + "itertools 0.10.5", "log", "multimap", "petgraph 0.8.3", @@ -6187,7 +6187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.118", @@ -6320,7 +6320,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls 0.23.45", - "socket2 0.6.4", + "socket2 0.5.10", "thiserror 2.0.18", "tokio", "tracing", @@ -6358,7 +6358,7 @@ dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.6.4", + "socket2 0.5.10", "tracing", "windows-sys 0.52.0", ] diff --git a/Cargo.toml b/Cargo.toml index 53b50ccb..f1d4f4eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,10 +39,10 @@ tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "time", uuid = { version = "1", features = ["v7"] } # The OpenShell gateway's native gRPC clients + auth interceptor — one pin for every crate that # talks to the gateway (engine + broker), so the two can never link different protos. -openshell-core = { git = "https://github.com/wseaton/OpenShell.git", rev = "3441f91a1de8ee1688c2add95d72fec53d404812", default-features = false } +openshell-core = { git = "https://github.com/wseaton/OpenShell.git", rev = "aeeecb7d4072f0fb63eb29ad11d26344c79d8670", default-features = false } # Same rev as openshell-core: the sandbox filesystem defaults (/dev/null, /usr, /etc ...) live here, # and crucible extends them rather than restating them. -openshell-policy = { git = "https://github.com/wseaton/OpenShell.git", rev = "3441f91a1de8ee1688c2add95d72fec53d404812", default-features = false } +openshell-policy = { git = "https://github.com/wseaton/OpenShell.git", rev = "aeeecb7d4072f0fb63eb29ad11d26344c79d8670", default-features = false } tonic = { version = "0.14", features = ["channel", "tls-native-roots", "tls-ring"] } thiserror = "2" strum = { version = "0.27", features = ["derive"] } diff --git a/docs/openshell-fork.md b/docs/openshell-fork.md index 175abbea..b2c9ee1e 100644 --- a/docs/openshell-fork.md +++ b/docs/openshell-fork.md @@ -31,11 +31,13 @@ One rev, five consumers, all derived from `Cargo.lock`: ## The divergence ledger Fork-only commits on `crucible/v0.1.2`, relative to upstream `v0.1.2` (`6648bd0c`), checked -2026-10-05: +2026-10-07: | sha | What | Why crucible needs it | Upstreamable? | | --- | --- | --- | --- | | `3441f91a` | `feat(kubernetes): answer driver-supplied static hosts in the supervisor`: the kubernetes driver accepts `pod.host_aliases` (hostname to IP) in a sandbox's `driver_config`, validates it, and the network supervisor answers those names before its resolver, with every policy and destination check still applied | Deployments reach hosts with no public DNS record (`[cluster].host_aliases`); stock v0.1.2 rejects the key, and sandbox egress is resolved by the supervisor, not by pod `hostAliases` | Yes, upstream PR pending | +| `46dcbe04` | `fix(providers): restore supervisor-backed GCP metadata discovery`, a cherry-pick of upstream `f7273e48` (#3973): the seccomp network broker relays connects to `127.0.0.1:8174` to the supervisor, which serves the GCE metadata emulator again | v0.1.2 still injects `GCE_METADATA_HOST=127.0.0.1:8174` for `google-cloud` providers but dropped the emulator in the sandbox split, so Vertex-authenticated turns fail with `ECONNREFUSED` refreshing the token | Already upstream; drop when rebasing onto a tag that contains `f7273e48` | +| `aeeecb7d` | `Pass StaticHosts to the metadata proxy tests`: the cherry-picked tests call two functions that `3441f91a` gave an extra argument | Keeps the fork's test suite compiling | No, fork-only; dropped once either commit above is | Dropped at this pin, relative to the previous `crucible/grpc-base` stack: @@ -69,8 +71,8 @@ Timestamp and enum fields) break against every older gateway. Candidates to shrink the gap to zero: -- **Static hosts** (`3441f91a`, the only fork commit). Once it lands upstream the fork is a bare - release pin. +- **Static hosts** (`3441f91a`). Once it lands upstream and the next release tag carries the GCP + metadata fix, the fork is a bare release pin. - **Upload/download RPCs.** File transfer still goes through the `openshell` CLI (SSH-tar over the gateway's `CreateSshSession` relay) because no RPC covers it, one of the two CLI remnants named in `crucible/src/openshell/mod.rs`. A native upload/download RPC would let crucible drop the CLI