bug(podman): workload gets no /etc/resolv.conf under network:none, unlike Docker's nameserver 127.0.0.53
@politerealism ya está trabajando en esto.
Desde el 23/9/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
User Story
As an operator running sandboxes via the Podman driver, I want DNS resolution to work the same way it does with Docker, so sandboxed processes can resolve policy-permitted hostnames without a manual workaround.
Problem Statement
Podman workload containers run with NetworkMode: none (per RFC 0012's isolation model), and Podman does not manage DNS for network-less containers at all — /etc/resolv.conf is left exactly as whatever the base image happens to ship. The Docker driver, by contrast, explicitly configures nameserver 127.0.0.53 in the workload's /etc/resolv.conf, which the sandbox's DNS mediation (network_broker.rs's classify_send) specifically relays only when the destination matches that exact relay address. Podman workloads get no equivalent configuration.
Impact / Why This Matters
Confirmed independently twice:
- During investigation of #3396, DNS resolution silently failed for a Podman-driven sandbox using
ghcr.io/astral-sh/uv:python3.12-bookworm-slim(nosystemd-resolvedconvention baked in) — required building a custom local image with/etc/resolv.confhand-baked viaCOPYto get DNS interception working at all. - PR #3642 hit the identical gap independently: "The Podman workload runs with
NetworkMode: noneand gets no/etc/resolv.conf, while the Docker driver setsnameserver 127.0.0.53. I wrote that line into the workload's/etc/resolv.confby hand."
Any real-world Podman deployment using a base image that doesn't already happen to ship the 127.0.0.53 convention will silently fail DNS resolution for every sandboxed process — including for hostnames the policy explicitly allows — with a generic DNS lookup error rather than any actionable diagnostic pointing at the real cause.
Acceptance Criteria
- The Podman driver explicitly writes or mounts
/etc/resolv.conf(pointing at the sandbox's internal DNS relay address) into the workload container at creation time, matching Docker's behavior, regardless of what the base image ships - This does not depend on Podman's own network-mode-specific DNS management, since
network: noneskips that entirely - Behavior is consistent across rootful and rootless Podman
- A regression test covers DNS resolution working correctly from a Podman-driven sandbox using a base image with no pre-existing DNS relay convention
Reproduction Steps
- Create a Podman-driven sandbox from an image with no
nameserver 127.0.0.53baked into/etc/resolv.conf(e.g.ghcr.io/astral-sh/uv:python3.12-bookworm-slim). - Apply a policy allowing a specific hostname (
openshell policy update --wait --binary <bin> --add-endpoint <host>:443:read-only <sandbox>). - Attempt to resolve that hostname inside the sandbox (
getent hosts <host>). - Resolution fails with a DNS error, even though the host is explicitly policy-permitted.
Environment
- OpenShell current
main(post RFC 0012, post PR #3642) - Compute driver: Podman (rootful and rootless)
- OS: Linux
Related: #3396, PR #3642 (follow-ups section)
- Lenguaje dominante
- Rust
- Estrellas
- 8.7k
- Forks
- 1.3k
- Merge medio
- 2 d 6 h
- PR fusionados (30 d)
- 297
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/OpenShell
-
area:docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
area:cli state:validated
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
state:triage-needed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
area:build spike state:review-ready state:stale
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
Todos los issues de NVIDIA/OpenShell
Issues similares
-
bug github_actions
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
registrystack/registry-stack#1393 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
longbridge/gpui-kit#3223 ·
-
bug engine
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
rocky-data/rocky#2181 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
oasisprotocol/oasis-sdk#2523 ·
-
[indexer] [QA] Add a focused test for the new NonRetryableError / assertSocketAlive() behavior. Abiertobot:ai-assisted component:indexer QA-roadmap status:untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
midnightntwrk/midnight-indexer#1557 ·