containers: Always run container egress/ingress sidecar, and make ingress go through it#6292
containers: Always run container egress/ingress sidecar, and make ingress go through it#6292
Conversation
|
I see a potential lifetime issue. On line 228, More importantly, One concern: After this exhaustive analysis, the code is clean. The only thing I want to flag is a minor comment inconsistency and the fact that the Actually, wait -- I want to verify one more thing. I noticed that in the This is correct because the main container's And in This is also correct -- you can't destroy the sidecar first because the main container's network namespace would break. But in the destructor: auto sidecarCleanup = dockerApiRequest(...DELETE sidecar...);
auto mainCleanup = dockerApiRequest(...DELETE main...);
cleanupCallback(kj::joinPromises(kj::arr(kj::mv(sidecarCleanup), kj::mv(mainCleanup))));Both deletions are started concurrently (via After this thorough review, the code looks correct. The PR cleanly restructures the container networking model so the sidecar owns the network namespace and handles both ingress and egress. The test coverage includes a new LGTM |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #6292 +/- ##
==========================================
- Coverage 70.64% 70.59% -0.05%
==========================================
Files 420 420
Lines 111666 111736 +70
Branches 18383 18394 +11
==========================================
- Hits 78886 78881 -5
- Misses 21799 21871 +72
- Partials 10981 10984 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
dc67e02 to
edc0cef
Compare
|
The generated output of |
…ress go through it We are introducing a new to ingress to containers in local dev that makes us avoid needing a `EXPOSE <port>` in the Dockerfiles. We do not manage the port mapping through docker, instead we do HTTP CONNECT ingressing in an agreed upon port with proxy-everything. We simplify the sidecar setup and make it mandatory for it to be configured and run it next to the user container.
We are introducing a new to ingress to containers in local dev that makes us avoid needing a
EXPOSE <port>in the Dockerfiles.We do not manage the port mapping through docker, instead we do HTTP CONNECT ingressing in an agreed upon port with proxy-everything.
We simplify the sidecar setup and make it mandatory for it to be configured and run it next to the user container. This also makes networking data races not happen anymore in local dev.