Fix direct sandbox merged-/usr startup and IPv6 binding#26
Conversation
|
|
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5290dbd91b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - name: SANDBOX_BIND_HOST | ||
| value: {{ .Values.workerSandbox.sandbox.bindHost | default "0.0.0.0" | quote }} |
There was a problem hiding this comment.
Allow SANDBOX_BIND_HOST through the microVM launcher
When this chart runs with the default workerSandbox.kvmEnabled: true, this new env var is set only on the outer sandbox-runner container; the microVM guest receives only variables allowed by launcher/src/main.rs:is_allowed_guest_env_key, and that allowlist currently includes PORT but not SANDBOX_BIND_HOST. As a result, setting workerSandbox.sandbox.bindHost: "::" for an IPv6-only cluster is silently dropped before api/src/config.ts runs, so the sandbox API still binds 0.0.0.0 unless KVM is disabled or the launcher allowlist is updated.
Useful? React with 👍 / 👎.
Summary
This PR addresses the concrete runtime issues that can be fixed without changing the storage or egress architecture:
/usrtree once (issue Direct sandbox startup fails on merged /usr runner images #22).SANDBOX_BIND_HOST/bind_porthandling so IPv6 listeners do not break on colon splitting (issue Allow for IPv6 clusters #23)./host-packagesmount when available and keeps bakedROOTFS/pkgsas the fallback when the mount is empty or unavailable (partial issue [Feature Request] Add NsJail direct sandbox with baked pkgs #24).Validation
bash tests/start-direct-sandbox.test.shbash -n docker/start-direct-sandbox.sh tests/start-direct-sandbox.test.shnpx --yes bun test api/src/config.test.tsgit diff --checkScope notes
Issue #25 appears to be an injection/lifecycle race in the LibreChat integration: the first execution arrives with zero injected files, while the second has the resource file. It is not reproducibly fixable in this repository from the issue evidence alone.
Issues #15, #21, #11, and #6 require separate upstream design or infrastructure work (virtio-fs/libkrun descriptor lifecycle, Flux-compatible chart sourcing, object-storage migration, and a policy-controlled egress gateway respectively).
References: #22, #23, #24, #25, #15, #21, #11, #6