1
0
mirror of https://github.com/sredevopsorg/deepseek-kubernetes-sandbox.git synced 2026-11-03 01:13:24 +00:00

feat(example): start DSH's folder picker on the persisted workspace (#36)

The directory picker has no start-path setting: it lists $HOME whenever it
opens. With the image default HOME=/home/node the folder explorer started on
a throwaway directory, so point HOME at the PVC-backed /workspace in both
sandbox templates. `~` and $HOME-relative tool caches/config follow; DSH_HOME
stays /home/node/.dsh, so sessions, config and credentials are unaffected.

Document the trade-off in the image contract and both examples, add
troubleshooting for sandboxes whose pod env was stamped before the change,
and assert HOME/~ in the e2e walkthrough.

Co-authored-by: SREDevOpsAgents <agents@sredevops.org>
This commit is contained in:
SREDevOps.org Agent
2026-10-30 11:19:03 -03:00
committed by GitHub
parent a09d4ac340
commit 82ee0d0cdb
9 changed files with 112 additions and 1 deletions

View File

@@ -125,6 +125,15 @@ kubectl -n "$NS" patch sandboxwarmpool "$POOL" --type merge -p '{"spec":{"replic
throwaway pod, patch the policy, then resume.
- Agent files live at `/workspace`, the same PVC mounted with
`subPath: workspace`; it survives suspend/resume and dies with the PVC.
- The templates set `HOME=/workspace` (the image default is `/home/node`). DSH's
directory picker lists `$HOME` when it opens and has no start-path setting, so
this is what makes the folder explorer start on the persisted workspace; `~`
and `$HOME`-relative tool caches/config also resolve there. `DSH_HOME` remains
`/home/node/.dsh`, so state and credentials stay out of the workspace. Pod env
is stamped at sandbox creation: a sandbox created before the override keeps
the old `HOME` until it is recreated (or its `podTemplate` is patched and the
sandbox resumed). Verify with
`kubectl -n "$NS" exec "$POD" -- printenv HOME`.
- DSH confines bash with its own file sandbox (`bubblewrap`, else Landlock) and
fails closed with `SANDBOX_UNAVAILABLE` when neither works. The image ships
`bubblewrap`, but it is unsetuid and needs an unprivileged user namespace that