fix(gateway): handle delayed Podman bridge listeners - #2874
Draft
elezar wants to merge 3 commits into
Draft
Conversation
Signed-off-by: Evan Lezar <elezar@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
Label |
Member
Author
|
/ok-to-test e2e39b4 |
Signed-off-by: Evan Lezar <elezar@nvidia.com>
|
🌿 Preview your docs: https://nvidia-preview-pr-2874.docs.buildwithfern.com/openshell |
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Member
Author
|
/ok-to-test fa02b7d |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reproduce and fix the Fedora Release Canary startup failure in the nested Docker-to-Fedora-to-rootful-Podman topology. When Podman reports its future bridge gateway before netavark assigns the address, the gateway now uses a narrowly gated wildcard listener whose non-loopback traffic remains restricted to sandbox-callable gRPC methods.
Scope: This fallback is limited to nested containers: the OpenShell gateway must itself be running inside an outer Linux container, with the built-in rootful Podman driver operating inside that container. It does not apply when the gateway runs directly on a host, to rootless Podman, to explicit
host_gateway_ipvalues, or to external compute drivers namedpodman.Related Issue
No issue required: this is a focused fix for a reliably failing release-canary regression. Long-term driver-owned callback relay work remains tracked in #2540, including the nested-rootful use case documented in #2540 (comment).
Release Canary reference: https://github.com/NVIDIA/OpenShell/actions/runs/32448768823/job/96673135310
Initial PR E2E failure: https://github.com/NVIDIA/OpenShell/actions/runs/32484361009/job/96781677362
The initial PR job failed before gateway startup because the raw-artifact harness did not create
/usr/share/openshell. The corrected harness subsequently reproduced and validated the listener path in the local Nix VM topology.Changes
EADDRNOTAVAIL.Security impact
The fallback exposes the sandbox-callable gRPC surface on every IPv4 interface in the outer container namespace for the lifetime of that gateway process. It does not expose user, administrator, health, reflection, non-callback inference, or HTTP routes on non-loopback interfaces. Sandbox mTLS, JWT authentication, the generated RPC allowlist, and the surrounding container-network boundary remain required defenses.
Testing
mise run pre-commitcargo test -p openshell-server gateway_listener --lib(20 passed)cargo clippy -p openshell-server --lib -- -D warnings10.89.0.1, healthy fallback startup, bridge creation, supervisor callback, and successfulsandbox execbash -n e2e/nested-podman-callback.shgit diff --checkChecklist