2dae886fd116b12c30aa573957be759e2cc72232
The legacy ``getCurrentOrganizationId`` helper returned the raw numeric
org id from localStorage, which the GPU-service / storage call sites
then used as the K8s namespace path segment — producing requests like
``/v2/clusters/1/proxy/.../namespaces/5/instances``. The backend
creates a namespace named ``gpustack-{slug}`` (matching
``get_namespace_name``), so the request hit a namespace that doesn't
exist.
Replace the helper with ``getCurrentOrgNamespace`` that:
- prefers the Org the caller is acting under (numeric
``currentOrganizationId`` from localStorage, slug looked up in the
persisted ``organizationList`` or ``allOrganizations`` cache);
- falls back to the selected cluster's owner Org slug for the admin
"All" view, where there is no explicit Org context but the resource
still has to land in some Org's namespace — call sites pass
``currentCluster?.owner_principal_id`` through;
- falls back to ``gpustack-default`` only if neither path resolves a
slug (first load before any cache hydrates, etc.).
``ClusterListItem`` is widened with the optional ``owner_principal_id``
field so TypeScript accepts the fallback argument; the backend has
been returning it via ``ClusterPublic`` all along.
GPUStack UI
UI for GPUStack.
Installation
- Nodejs 16.0+(with NPM)
If you're on Mac
brew install node
npm install -g pnpm
- Setup
git clone https://github.com/gpustack/gpustack-ui/
- Install dependencies
cd gpustack-ui
pnpm install
Usage
- Run development server (at http://localhost:9000)
npm run dev
- build release
npm run build
Bugs & Issues
- Please submit bugs and issues with a label
ui
Links
- Official website: https://gpustack.ai/
- Documents: https://docs.gpustack.ai/latest/overview/
Languages
TypeScript
68.9%
JavaScript
29.4%
Less
1.4%
CSS
0.3%