Skip to content

feat(devspace): DevSpace + Sandbox + StatefulSet + TopoLVM inception mount (proven on a real cluster) - #23

Merged
mdheller merged 1 commit into
mainfrom
feat/devspace-sandbox
Aug 4, 2026
Merged

feat(devspace): DevSpace + Sandbox + StatefulSet + TopoLVM inception mount (proven on a real cluster)#23
mdheller merged 1 commit into
mainfrom
feat/devspace-sandbox

Conversation

@mdheller

@mdheller mdheller commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

What

Integrates the demonstrated dev-environment patterns and proves real k8s dispatch end to end on an ephemeral kind-on-podman cluster.

tools/devspace.py

  • DevSpace (Nocalhost) — isolated Namespace + ResourceQuota + default-deny NetworkPolicy + the agent-machine's persistent inception mount (a TopoLVM PVC at /var/lib/sourceos/inception). Tenancy- and grant-labelled.
  • Sandbox (Signadot / Nocalhost MeshSpace) — a fork Deployment + Istio VirtualService routing x-sandbox-routing-key to the fork, else the baseline. Share the stack, don't duplicate it.
  • agent_machine_statefulset — the agent-machine as a stateful app: StatefulSet + headless Service + per-replica TopoLVM inception mount via volumeClaimTemplates. (We weren't using StatefulSets; Jobs/Deployments can't give stable identity + per-replica storage.)
  • DevSpacePlane — the User→Space→App tenancy model.

Proven on a real cluster

Storage

deploy/topolvm/ — the topolvm-provisioner StorageClass + install runbook (node-local, topology-aware LVM volumes; the Edge/Fog design's storage). Local proof uses kind's standard class; production is a one-field swap.

Evaluation

docs/PATTERN_INTEGRATION.md — every demonstrated pattern (Nocalhost, Signadot, ShellHub, Edge/Fog K3s twin, 7-layer PaaS, IBM Parallel Environment/Eclipse) mapped to our capability, honestly graded.

Tests

+6 devspace, +1 executor inception = 105 tools tests green; validate passes. Wired validate REQUIRED + DevSpace CapD links.

Next unit (named in the register): parallel/MPI jobs (Indexed Job + real SLURM) + connector-call-as-dispatch — the IBM Parallel Environment codification.

…mount — proven on a real cluster

Integrates the demonstrated dev-environment patterns and proves real k8s dispatch end to end.

tools/devspace.py:
  - devspace_manifests: Nocalhost-style isolated DevSpace — Namespace + ResourceQuota +
    default-deny NetworkPolicy + the agent-machine's persistent INCEPTION MOUNT (a TopoLVM
    PVC at /var/lib/sourceos/inception). Tenancy-labelled (tenant/user/space), grant-labelled.
  - sandbox_manifests: Signadot / Nocalhost-MeshSpace sandbox — a fork Deployment + Istio
    VirtualService routing `x-sandbox-routing-key` to the fork, else the baseline (share the
    stack, don't duplicate it).
  - agent_machine_statefulset: the agent-machine as a STATEFUL app — StatefulSet + headless
    Service + per-replica TopoLVM inception mount via volumeClaimTemplates. (We weren't using
    StatefulSets before; Jobs/Deployments can't give stable identity + per-replica storage.)
  - DevSpacePlane: the User->Space->App tenancy model.

Real-cluster proof (kind on podman): the governed spine dispatched a real Job that printed
"hello-from-real-mesh"; the inception mount persisted across pods (wrote in pod #1, read the
same bytes in pod #2). Two real bugs the cluster caught + fixed in executor.py:
  - image "": get(k, default) returns "" for a present-but-empty key -> Job invalid. Use or-default.
  - a DevSpace ResourceQuota requires pod resource limits -> always set requests+limits defaults.
Also: K8sAdapter mounts the inception PVC when workload.inception_pvc is set; sourceosctl gains
--inception.

deploy/topolvm/ (StorageClass topolvm-provisioner + install runbook — production storage).
docs/PATTERN_INTEGRATION.md: every demonstrated pattern (Nocalhost, Signadot, ShellHub, Edge/Fog
K3s twin, 7-layer PaaS, IBM PE/Eclipse) mapped to our capability, honestly graded.

Tests: +6 devspace +1 executor inception = 105 tools tests green. Wired validate + CapD links.
@mdheller
mdheller merged commit 5ae80b0 into main Aug 4, 2026
1 check passed
@mdheller
mdheller deleted the feat/devspace-sandbox branch August 4, 2026 04:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant