mirror of
https://github.com/sredevopsorg/deepseek-kubernetes-sandbox.git
synced 2026-11-03 01:13:24 +00:00
feat(example): add optional gVisor, nodeSelector, NetworkPolicy and provider keys (#21)
Add opt-in hardening to the agents-as-a-service example: - commented runtimeClassName/nodeSelector fields for sandboxes and Deployments - optional sandbox NetworkPolicy plus exposure-variant policies - optional dsh-provider-keys-extra Secret for extra provider keys - docs/optional-hardening.md with verification, caveats and rollback The base walkthrough stays portable; no gateway code, routes or auth changed. Co-authored-by: SREDevOpsAgents <agents@sredevops.org>
This commit is contained in:
committed by
GitHub
parent
bf24306421
commit
3e9ba38fc1
@@ -129,6 +129,10 @@ Read `docs/examples.md` and the testing table in `AGENTS.md` before editing.
|
||||
`make check` and the e2e. Never mix a bump with an unrelated feature.
|
||||
- **MCP integration:** pin the build to the cluster's tag, least-privilege SA,
|
||||
ClusterIP + auth proxy, raised DSH timeout, no secrets in the repo.
|
||||
- **Optional hardening:** gVisor, `nodeSelector`, NetworkPolicy and extra
|
||||
provider keys stay opt-in; the sandbox policy lives under
|
||||
`manifests/optional/`. All four are documented in
|
||||
`examples/dsh-agents-as-a-service/docs/optional-hardening.md`.
|
||||
- **Docs:** update the affected doc in the same change.
|
||||
|
||||
Details and review checklist:
|
||||
|
||||
@@ -25,6 +25,7 @@ implementation is a self-contained example under `examples/<name>/`, and
|
||||
| --- | --- | --- |
|
||||
| Documentation only | `*.md`, `docs/` | `make check`; relative links resolve |
|
||||
| Example manifest | `examples/<name>/manifests/NN-*.yaml`, README step | `make check`; server-side dry-run in CI |
|
||||
| Optional hardening | `manifests/optional/`, exposure NPs, example `docs/optional-hardening.md` | `make check`; manual verification on a capable cluster |
|
||||
| Gateway behavior/route | `gateway/gateway.py`, `gateway/test_gateway.py`, gateway README, architecture | `make test`, `make lint`; update tests and API docs |
|
||||
| Exposure variant | `manifests/exposure/<variant>/`, exposure README, example README | `make check`; apply exactly one variant |
|
||||
| New example | full `examples/<name>/` layout, `examples/README.md` | `make check`; CI dry-run; optional e2e |
|
||||
|
||||
@@ -141,8 +141,13 @@ host. A resource-only install has no gateway: that is a warning, not a failure.
|
||||
|
||||
## 9. Security boundaries
|
||||
|
||||
- One `DEEPSEEK_API_KEY` is shared by all sandboxes; the example is not
|
||||
- Provider keys (`dsh-provider-keys` plus the optional
|
||||
`dsh-provider-keys-extra`) are shared by all sandboxes; the example is not
|
||||
tenant-isolated.
|
||||
- gVisor, `nodeSelector`, the sandbox/exposure NetworkPolicies and extra
|
||||
provider keys are opt-in, not active by default. A NetworkPolicy only helps
|
||||
with a CNI that enforces it; see
|
||||
[optional hardening](../../../../examples/dsh-agents-as-a-service/docs/optional-hardening.md).
|
||||
- Secret data, kubeconfigs, and pod logs are sensitive; RBAC may allow Secret
|
||||
access, policy does not. Keep gateway RBAC namespace-scoped; it needs pod logs
|
||||
to find the launch token.
|
||||
|
||||
Reference in New Issue
Block a user