Skip to content

Podman sandboxes cannot reach host.openshell.internal #3605

Description

@grs

User Story

As an OpenShell user running sandboxes with the Podman driver, I want workloads to access services on the host through host.openshell.internal so that host access behaves consistently across supported local
compute drivers.

Problem Statement

Podman-backed sandboxes cannot reliably resolve and connect to host.openshell.internal.

OpenShell workloads use an isolated network namespace and rely on the supervisor for mediated network access. The Podman driver does not currently provide the workload with the expected supervisor DNS
configuration or pass the trusted host gateway address into the supervisor runtime descriptor. As a result, the host alias is unavailable even when the sandbox policy permits the connection.

Impact / Why This Matters

This prevents Podman users from accessing host-local development services, test fixtures, and other explicitly permitted endpoints through OpenShell’s standard host alias.

The current workaround is to use driver-specific host addresses or change the workload’s networking configuration. That workaround is insufficient because it is platform-dependent, bypasses the portable
host.openshell.internal contract, and may weaken the intended mediated-networking boundary.

Acceptance Criteria

  • A Podman sandbox can resolve host.openshell.internal.
  • A policy-authorized TCP connection through that alias reaches a service listening on the host.
  • The connection continues to work after the sandbox is stopped and restarted.
  • Workloads continue to use isolated networking and reach the host only through supervisor mediation.
  • The configured host gateway address is validated before use.
  • Driver-owned resolver resources are cleaned up on failed creation and sandbox deletion.
  • An automated Podman end-to-end test covers initial creation and restart.
  • Relevant architecture, networking, and gateway configuration documentation is updated.

Reproduction Steps

  1. Start OpenShell with the Podman compute driver.

  2. Start an HTTP server bound to a host-reachable loopback address and note its port.

  3. Create a sandbox whose policy permits TCP access to host.openshell.internal:.

  4. From the sandbox, attempt to connect to that address:

    exec 3<>/dev/tcp/host.openshell.internal/
    printf 'GET / HTTP/1.0\r\n\r\n' >&3
    cat <&3

  5. Observe that DNS resolution or the connection fails.

The same behavior should also be checked after stopping and restarting the sandbox

Environment

  • Compute driver: Podman
  • Host operating system: Linux
  • Workload networking: isolated (network=none)
  • Connection target: host.openshell.internal

Logs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    state:triage-neededOpened without agent diagnostics and needs triage

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions