feat(greenhouse): new Clusters dashboard#1634
feat(greenhouse): new Clusters dashboard#1634guoda-puidokaite wants to merge 10 commits intomainfrom
Conversation
|
There was a problem hiding this comment.
Pull request overview
Adds a new Greenhouse “Clusters” dashboard flow under /admin/clusters, including an overview grid with filtering and a new cluster detail page that links into plugin-instance details.
Changes:
- Replaced the legacy
/admin/clustersroute with nested routes for clusters list and cluster detail (/admin/clusters/$clusterName). - Added new UI components for clusters overview (filters + grid) and cluster detail (overview/YAML + plugin instances).
- Added new API helpers and types for fetching clusters and plugins-by-cluster, plus shared utility updates.
Reviewed changes
Copilot reviewed 29 out of 30 changed files in this pull request and generated 28 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/greenhouse/src/routeTree.gen.ts | Updates generated route tree to reflect new nested clusters routes. |
| apps/greenhouse/src/routes/admin/clusters/route.tsx | Adds parent “Clusters” route with breadcrumb + Outlet. |
| apps/greenhouse/src/routes/admin/clusters/index.tsx | Adds clusters index route with search validation and default filter redirect. |
| apps/greenhouse/src/routes/admin/clusters/$clusterName/route.tsx | Adds cluster-name route with crumb label based on param. |
| apps/greenhouse/src/routes/admin/clusters/$clusterName/index.tsx | Adds cluster detail index route to render ClusterDetail. |
| apps/greenhouse/src/routes/admin/clusters.tsx | Removes legacy clusters route implementation. |
| apps/greenhouse/src/components/admin/utils.ts | Expands readiness helpers to clusters and adds formatAge. |
| apps/greenhouse/src/components/admin/types/schema.d.ts | Updates Cluster schema typing (note: file is auto-generated). |
| apps/greenhouse/src/components/admin/types/k8sTypes.ts | Adds Cluster type alias alongside existing types. |
| apps/greenhouse/src/components/admin/Layout/Breadcrumb.test.tsx | Updates breadcrumb test for nested routes (currently mismatched path). |
| apps/greenhouse/src/components/admin/constants.ts | Adds cluster-related label keys and filter IDs. |
| apps/greenhouse/src/components/admin/Clusters/index.tsx | Implements clusters overview page (counts, refresh, filters, grid). |
| apps/greenhouse/src/components/admin/Clusters/ClustersGrid/index.tsx | Adds clusters overview data grid header + suspense/error handling. |
| apps/greenhouse/src/components/admin/Clusters/ClustersGrid/index.test.tsx | Adds tests for clusters grid rendering and error state. |
| apps/greenhouse/src/components/admin/Clusters/ClustersGrid/DataRows/index.tsx | Adds suspense data rows fetching clusters and navigating to detail. |
| apps/greenhouse/src/components/admin/Clusters/ClustersFilters.tsx | Adds filter UI (select + chips + search) for clusters. |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/PluginInstances.tsx | Adds cluster-scoped plugin instances table with navigation to plugin instance detail. |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/PluginInstances.test.tsx | Adds tests for plugin instances view (currently mismatched route/expectations). |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/index.tsx | Adds cluster detail “Overview” composition (conditions/details/plugins). |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/Details.tsx | Adds cluster detail “Details” panel, including age + node status. |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/Details.test.tsx | Adds tests for Details (currently mismatched props/types/expectations). |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/Conditions.tsx | Adds cluster readiness conditions section. |
| apps/greenhouse/src/components/admin/ClusterDetail/Overview/Conditions.test.tsx | Adds tests for Conditions (currently mismatched props/types). |
| apps/greenhouse/src/components/admin/ClusterDetail/index.tsx | Adds cluster detail page with tabs and data fetching. |
| apps/greenhouse/src/components/admin/ClusterDetail/index.test.tsx | Adds tests for cluster detail page (currently imports/route mismatches). |
| apps/greenhouse/src/components/admin/api/plugins/fetchPluginsByCluster.ts | Adds API helper to fetch plugins filtered by cluster label. |
| apps/greenhouse/src/components/admin/api/clusters/fetchClustersFilters.ts | Adds API helper to derive filter values from clusters list. |
| apps/greenhouse/src/components/admin/api/clusters/fetchClusters.ts | Adds API helper to fetch clusters and apply client-side filtering/sorting. |
| apps/greenhouse/src/components/admin/api/clusters/fetchCluster.ts | Adds API helper to fetch a single cluster by name. |
| apps/greenhouse/src/components/admin/mocks/pluginPresets.ts | Refactors mocks to provide cluster mock data (file name now misleading). |
Signed-off-by: I531348 <guoda.puidokaite@sap.com>
Signed-off-by: I531348 <guoda.puidokaite@sap.com>
Signed-off-by: I531348 <guoda.puidokaite@sap.com>
Signed-off-by: I531348 <guoda.puidokaite@sap.com>
Signed-off-by: I531348 <guoda.puidokaite@sap.com>
4c56b7a to
ccceb1d
Compare
Summary
Changes Made
Other agreed on ACs:
Cluster TypeandRegionfields and allowed to filter by themDesign guidelines:
https://www.figma.com/design/xsRjypqDB8lGT8LsrxIFKs/%F0%9F%AB%9F--Greenhouse-UX-work?node-id=984-5344&p=f&t=R89RR3K513x3o3rM-0
Related Issues
Testing Instructions
pnpm ipnpm TASKChecklist
PR Manifesto
Review the PR Manifesto for best practises.