feat: add Filesystems/ObjectStores pages, fix CSI selectors, remove app bar badge (#2)

- Remove AppBarClusterBadge registration (top-bar health bubble)
- Fix CSI pod selectors to match actual pod labels in this cluster
  (was: csi-rbdplugin-provisioner, now: rook-ceph.rbd.csi.ceph.com-ctrlplugin)
- Add FilesystemsPage with detail drawer (Active MDS, data pools, status)
- Add ObjectStoresPage with detail drawer (gateway port, instances, endpoints)
- Register Filesystems and Object Stores as sidebar entries with routes
- Enhance PodsPage OSD table with OSD ID, device class, store type,
  and failure domain columns from pod labels

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
This commit was merged in pull request #2.
This commit is contained in:
2026-02-18 21:23:53 -05:00
committed by GitHub
parent 91e50fc316
commit c30fc18b43
7 changed files with 412 additions and 23 deletions
+5 -5
View File
@@ -18,16 +18,16 @@ import {
filterRookCephStorageClasses,
isKubeList,
ROOK_CEPH_NAMESPACE,
RookCephPersistentVolume,
RookCephPVC,
RookCephPod,
RookCephStorageClass,
ROOK_CSI_CEPHFS_SELECTOR,
ROOK_CSI_RBD_SELECTOR,
ROOK_MGR_SELECTOR,
ROOK_MON_SELECTOR,
ROOK_OSD_SELECTOR,
ROOK_OPERATOR_SELECTOR,
ROOK_OSD_SELECTOR,
RookCephPersistentVolume,
RookCephPod,
RookCephPVC,
RookCephStorageClass,
} from './k8s';
// ---------------------------------------------------------------------------
+4 -4
View File
@@ -1,11 +1,14 @@
import { describe, expect, it } from 'vitest';
import {
filterRookCephPersistentVolumes,
filterRookCephPVCs,
filterRookCephStorageClasses,
formatAge,
findBoundPv,
formatAccessModes,
formatAge,
formatBytes,
formatStorageType,
getPodRestarts,
healthToStatus,
isKubeList,
isPodReady,
@@ -17,9 +20,6 @@ import {
ROOK_CEPH_CEPHFS_PROVISIONER,
ROOK_CEPH_RBD_PROVISIONER,
storageClassType,
filterRookCephPVCs,
findBoundPv,
getPodRestarts,
} from './k8s';
describe('isRookCephProvisioner', () => {
+2 -2
View File
@@ -39,8 +39,8 @@ export const ROOK_OSD_SELECTOR = 'app=rook-ceph-osd';
export const ROOK_MGR_SELECTOR = 'app=rook-ceph-mgr';
export const ROOK_MDS_SELECTOR = 'app=rook-ceph-mds';
export const ROOK_RGW_SELECTOR = 'app=rook-ceph-rgw';
export const ROOK_CSI_RBD_SELECTOR = 'app=csi-rbdplugin-provisioner';
export const ROOK_CSI_CEPHFS_SELECTOR = 'app=csi-cephfsplugin-provisioner';
export const ROOK_CSI_RBD_SELECTOR = 'app=rook-ceph.rbd.csi.ceph.com-ctrlplugin';
export const ROOK_CSI_CEPHFS_SELECTOR = 'app=rook-ceph.cephfs.csi.ceph.com-ctrlplugin';
// ---------------------------------------------------------------------------
// Generic Kubernetes object base shapes