Skip to content

fix(gateway): handle delayed Podman bridge listeners - #2874

Open
elezar wants to merge 2 commits into
mainfrom
codex/fix-fedora-release-canary
Open

fix(gateway): handle delayed Podman bridge listeners#2874
elezar wants to merge 2 commits into
mainfrom
codex/fix-fedora-release-canary

Conversation

@elezar

@elezar elezar commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

Fix rootful Podman gateway startup when Podman has allocated a managed bridge gateway address but netavark has not assigned that address yet. The gateway uses delayed exact binding where Linux supports it and a narrowly scoped fallback for the nested Fedora canary topology.

This PR is stacked on #3184, which adds the reusable rootful Podman test-guest configuration.

Related Issue

No issue required: this is a focused fix for a reliably failing Fedora release-canary regression. Longer-term driver-owned callback relay work remains tracked in #2540.

Release Canary reference: https://github.com/NVIDIA/OpenShell/actions/runs/32448768823/job/96673135310

Changes

  • Add an additive exact-bind listener requirement that allows trusted built-in drivers to identify addresses eligible for delayed binding while preserving the legacy protobuf field.
  • Allow only the built-in rootful Podman driver, using its automatically discovered managed-bridge address, to request delayed binding.
  • Use Linux IP_FREEBIND when the bridge gateway address has not yet been assigned.
  • When delayed exact binding is unavailable in the nested Linux container topology, use an IPv4 wildcard socket with primary scope only for loopback destinations and callback-only scope elsewhere.
  • Document the listener behavior and Podman networking constraints.
  • Run Fedora conformance against candidate RPMs in rootless and rootful Podman modes with smoke and gateway-restart scenarios.

Security impact

The nested-container fallback exposes only the sandbox-callable gRPC surface on non-loopback IPv4 destinations in the outer container namespace. User, administrator, health, reflection, non-callback inference, and HTTP routes remain unavailable there. Sandbox authentication and the surrounding container-network boundary remain required defenses.

Testing

  • mise run pre-commit
  • cargo check -p openshell-server -p openshell-driver-podman
  • Targeted Podman and Docker listener/callback tests available on macOS
  • git diff --check origin/main..HEAD
  • Fedora rootless and rootful conformance lanes (GitHub Actions)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

@copy-pr-bot

copy-pr-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

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.

@elezar elezar added the test:e2e Requires end-to-end coverage label Aug 21, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied, but pull-request/2874 does not exist yet. A maintainer needs to comment /ok to test e2e39b416207323bc6ef34480f6134efc0ddf2f1 to mirror this PR. Once the mirror exists, re-apply the label or re-run Branch E2E Checks from the Actions tab.

@elezar

elezar commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test e2e39b4

@elezar elezar changed the title test(ci): add nested Podman callback E2E fix(gateway): handle delayed Podman bridge listeners Aug 21, 2026
@github-actions

Copy link
Copy Markdown

@elezar

elezar commented Aug 21, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test fa02b7d

@elezar
elezar force-pushed the codex/fix-fedora-release-canary branch from 8be2ce6 to 1ca8c32 Compare August 27, 2026 13:21
@elezar

elezar commented Aug 27, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test 1ca8c32

@elezar
elezar force-pushed the codex/fix-fedora-release-canary branch 2 times, most recently from fe4097d to d31a034 Compare September 3, 2026 17:57
@elezar
elezar marked this pull request as ready for review September 3, 2026 21:14
@elezar

elezar commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

/ok-to-test 5c8c586

Comment thread .github/workflows/conformance.yml
@elezar
elezar force-pushed the codex/fix-fedora-release-canary branch from 5c8c586 to f5cde26 Compare September 4, 2026 12:03
@elezar
elezar changed the base branch from main to codex/rootful-podman-test-guest September 4, 2026 12:03
@elezar
elezar marked this pull request as draft September 4, 2026 12:30
@elezar
elezar force-pushed the codex/rootful-podman-test-guest branch from 35374e3 to 5f2ac04 Compare September 4, 2026 13:10
@elezar
elezar force-pushed the codex/fix-fedora-release-canary branch from f5cde26 to 3bccf31 Compare September 4, 2026 13:10
@elezar
elezar marked this pull request as ready for review September 7, 2026 12:00
Base automatically changed from codex/rootful-podman-test-guest to main September 7, 2026 12:01
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
@elezar
elezar force-pushed the codex/fix-fedora-release-canary branch from 3bccf31 to 67f975a Compare September 7, 2026 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant