Description
SandboxInClusterConnectionConfig.use_pod_ip (default False) is documented as: "By default, connects via stable K8s DNS … When use_pod_ip=True, connects directly to the pod IP." (models.py).
As of 636e032 (#800), both Sandbox and AsyncSandbox unconditionally pass get_pod_ip to SandboxConnector:
# sandbox.py:65 / async_sandbox.py:68
get_pod_ip=self.get_pod_ip, # was: self.get_pod_ip if use_pod_ip else None
InClusterConnectionStrategy.connect() then always attempts pod-IP routing first and silently falls back to cluster DNS. Net effect: the use_pod_ip flag is dead — setting it to False (the documented default) does not force DNS routing.
Impact
Suggested fix
Restore the gating — get_pod_ip=self.get_pod_ip if use_pod_ip else None in both Sandbox and AsyncSandbox — or make connect() honor config.use_pod_ip directly.
Note
Introduced in #800; present at HEAD. Released 0.4.5 still has the correct gating, so consumers pinned to 0.4.5 are unaffected.
Description
SandboxInClusterConnectionConfig.use_pod_ip(defaultFalse) is documented as: "By default, connects via stable K8s DNS … Whenuse_pod_ip=True, connects directly to the pod IP." (models.py).As of 636e032 (#800), both
SandboxandAsyncSandboxunconditionally passget_pod_iptoSandboxConnector:InClusterConnectionStrategy.connect()then always attempts pod-IP routing first and silently falls back to cluster DNS. Net effect: theuse_pod_ipflag is dead — setting it toFalse(the documented default) does not force DNS routing.Impact
use_pod_ipno longer holds at HEAD.test/unit/test_async_sandboxclient.pyassertsuse_pod_ipis "derived from connection_config", a derivation the wiring no longer performs.Suggested fix
Restore the gating —
get_pod_ip=self.get_pod_ip if use_pod_ip else Nonein bothSandboxandAsyncSandbox— or makeconnect()honorconfig.use_pod_ipdirectly.Note
Introduced in #800; present at HEAD. Released
0.4.5still has the correct gating, so consumers pinned to0.4.5are unaffected.