Repository navigation
Replace actor eth0 move with veth networking - #110
Bowei Du (bowei) merged 9 commits into
Conversation
b66b5d1 to
2e8c8fd
Compare
Benjamin Elder (BenTheElder)
left a comment
There was a problem hiding this comment.
needs a make update or the LICENSES script
thanks for working on this :-)
|
Up to date with |
2e5e6c7 to
3f5cbae
Compare
|
Needs rebase... |
Why does it need rebase? I don't see any conflicts according to GitHub. |
3f5cbae to
326110a
Compare
|
I know there are comments discussing the networking setup, but I think after fixing the remaining comments (mark them as resolved) and filing the follow up issues, we can get this one in. We should expect that things will change as we make progress on the project. |
What was happening:
1. runsc checkpoint pause succeeded.
2. After that, substrate tried to run runsc state and runsc delete for the app container.
3. But after checkpointing the root sandbox container, the runsc control server was no longer usable,
so those post-checkpoint commands failed with connection refused.
4. That made CheckpointWorkload return an error even though the actual checkpoint had already
succeeded.
5. The ActorTemplate stayed stuck in WaitGoldenActor.
The change removes the post-checkpoint state/delete calls from ateom-gvisor. After checkpoint
succeeds, it only cleans up the actor network and returns success. This matches the existing contract
in the code: atelet owns resetting the actor directories after checkpoint/upload, and it already
calls resetActorDirs(...).
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
e8b03ee to
c25132e
Compare
Fixed the last link local comment, should be ready to go |
…-main-20261030 Sync main with upstream development
Fixes #122
Summary
This replaces the
ateom-gvisornetworking path that moved the worker pod's Kubernetes-providedeth0into the actor/gVisor network namespace.Instead, the worker pod keeps its real
eth0, andateom-gvisorcreates a point-to-point veth pair between the worker pod namespace and the actor namespace. The actor-side peer is renamed toeth0, receives the actor-side address, and uses the worker-side veth as its default gateway.The PR also adds temporary nftables compatibility rules so existing inbound and outbound behavior continues to work while preserving the worker pod's own network connectivity.
Why
Moving the pod's real
eth0makes the worker pod lose normal Kubernetes network connectivity while an actor is active. That blocks pod-local networking components, including the planned transparent egress capture and AgentGateway integration, because those components remain in the worker pod namespace while actor traffic leaves through an interface that was moved elsewhere.Keeping
eth0in the worker pod namespace gives Substrate a stable worker-owned networking boundary for future transparent egress policy enforcement.Validation
go test ./cmd/ateom-gvisor ./cmd/atelet ./internal/ateompath ./internal/controllersgo test ./cmd/ateom-gvisor ./internal/serverbootNO_DEV_ENV=true BUCKET_NAME=ate-snapshots KO_DOCKER_REPO=localhost:5001 KUBECTL_CONTEXT=kind-kind ./hack/run-e2e.sh ./internal/e2e/suites/demo -run TestDemo3 -count=1Checklist