ci(netns): network-namespace integration job for gvproxy proofs - #510
Conversation
Unit 1's proof artifacts (UC1 no-net isolation, UC6 same-host PTask-to-PTask over the gvproxy switch) require a real network namespace + tap + a live gvproxy switch. The SDD execute agent cannot run them — its sandbox denies unprivileged netns — and the only gvproxy CI job just downloads the binary. So #496 (U1-T2) correctly handed off: there was no executable proof path. Add ci-netns.yml on ubuntu-latest (unprivileged userns + sudo, no KVM needed), which fetches the pinned gvproxy via scripts/fetch-gvproxy.sh and runs the crates' `#[ignore]` tests with --include-ignored under MINIMALD_NETNS_TEST=1. A startup probe fails fast if the runner can't create a netns. This establishes the verification contract so the agent's Unit 1 implementation becomes CI-provable: gate UC1/UC6 tests on MINIMALD_NETNS_TEST, read the gvproxy path from GVPROXY_BIN. Until those tests land it is a green no-op. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ss8WXtUUr9PBHuJcJMseBj
|
Important Review skippedNo new commits to review since the last review. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughAdds ChangesNetwork Namespace CI Workflow
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci-netns.yml:
- Around line 51-53: The repository has inconsistent application of the security
hardening measure persist-credentials: false across GitHub workflows. Currently,
ci-netns.yml, ci-macos.yml, and ci-linux-kvm.yml include this configuration in
their actions/checkout@v6 steps, but commitlint.yml, ci.yml, and ci-gvproxy.yml
do not. Add persist-credentials: false with the same structure to the
actions/checkout@v6 step in all three missing workflows (commitlint.yml, ci.yml,
and ci-gvproxy.yml) to ensure consistent security hardening across the entire
repository, or alternatively document explicit justification in the workflows
that require different configurations.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ffaebf7b-b85b-4173-bf96-33e99bf01fb0
📒 Files selected for processing (1)
.github/workflows/ci-netns.yml
|
@coderabbitai review |
✅ Action performedReview finished.
|
The job ran the full minimald suite via --include-ignored, which failed on an existing test needing socat (not installed here; ci.yml covers the broad suite). Filter the run to tests whose path contains 'netns' so only the Unit 1 proofs execute — a green no-op until they land. Documents the naming contract.
|
@coderabbitai review |
✅ Action performedReview finished.
|
Establishes the CI verification path for Unit 1 of the minimald networking epic, so the implementation tasks (#496/#497) can ship CI-provable proofs instead of handing off.
Why
#496 (U1-T2) handed off (
needs-human) because:unshare --net;ci-gvproxy.yml) just downloads + checksums the binary; it does not run integration tests;Change
ci-netns.ymlonubuntu-latest(unprivileged userns + passwordless sudo — netns/tap need no KVM; the gvproxy switch is userspace):scripts/fetch-gvproxy.sh;cargo test -p minimald -p sandbox2 -p minimald-rpc -- --include-ignoredwithMINIMALD_NETNS_TEST=1andGVPROXY_BINexported.Contract for the Unit 1 implementation (issue #496)
#[ignore]+ onMINIMALD_NETNS_TEST;GVPROXY_BIN.Until those tests land this job is a green no-op build of the affected crates. After they land, clearing
needs-humanon #496 lets the agent ship with a runnable proof path.🤖 Generated with Claude Code
Summary by CodeRabbit
mainwhen relevant files change (or via manual dispatch), includes a preflight verification for namespace creation, and executes the gatednetns-filtered integration test suite for theminimald,sandbox2, andminimald-rpccrates.