Repository navigation
feat(workspaces): the workspaces switch and its provider instances #451
Copy link
Copy link
Closed
Labels
Description
Problem
The platform chart gains a workspace manager (a new MCP server that owns Organization workspaces, their sync of bare repository mirrors, the person's sign-in to each workspace provider and an RFC 8693 token endpoint), kagent's Session admission by a signed workspace grant, its token broker and the workspace volume reference, all behind one workspaces switch (workspaces design W1, W3, W10). The lab renders none of it, has no provider instance to give the workspace manager, and no place to record a GitHub App of the lab's own for a real provider run. The lab users must also be members of an Organization whose workspaces they manage.
Proposed solution
One PR in internal/config and the values template:
agentlab configure --workspaces[=false]setsplatform.workspaces.enabled(needs agents and the NFS class of feat(workspaces): a read-write-many CSI driver for Substrate mounts #450) and renders the chart'sworkspacesvalues: the workspace manager on,workspaces.storage.storageClassName: agentlab-workspaceswith no class created by the chart, the Organizationlabwith the lab's member group, and kagent's admission, broker and volume values the chart derives. The Organization is recorded on each Workspace; every workspace object, volume, sync job and Session lives in thekagentnamespace, so no per-Organization namespace is rendered.platform.workspaces.provider:fake(the default: the lab's in-cluster GitHub fake as a GitHub Enterprise-shaped provider instance, no account needed) orgithub(a real GitHub App of the person's own: its App id and client id inagentlab.yaml, the private key and client secret read from sources likegithubToken.sourceand placed as Secrets that the values reference; never in a state file, log or argv). Both may be configured at once, as two provider instances.- The workspace manager's sign-in callback URL is printed by
configure,upandplatform, as the Dex callback is for the GitHub sign-in. platform-testgains the workspace manager: registered in muster, Ready,list_providersas the admin listing every configured instance.docs/workspaces.md: both providers, how to register a GitHub App for the lab (permissions: Metadata read; Contents, Pull requests and Issues read and write; Checks read; user-to-server tokens with expiry; the callback above), and that the lab's Dex sign-in App is a separate App.
Acceptance criteria
-
configure --workspacesrenders values the platform chart accepts in a dry render, forfake,githuband both, naming theagentlab-workspacesclass; without the switch the render is unchanged - On a lab with the switch on,
platform-testshows the workspace manager registered, Ready and listing its providers as the admin - No secret value appears in
agentlab.yaml,state/, a log line or a process argv (test over the rendered files)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone ✅
Activity
teemow commentedon Oct 10, 2026
#482 delivered the
githubprovider wiring (the workspace-manager's OAuth base URL, the Dex client's/signinredirect,platform.workspaces.github.appId/clientIdand the Secret wiring). Still open from this issue:fakeprovider instance (the in-cluster GitHub fake as a provider, the default);platform-test's workspace-manager check (registered in muster, Ready,list_providersas the admin);fakeand for both providers at once.Written by an agent.