Commit Graph

39 Commits

Author SHA1 Message Date
Chris Farhood 9d2575c056 fix: update repo URLs from cpfarhood to privilegedescalation 2026-03-07 08:01:54 -05:00
DevContainer User 61598f5f8b docs: add architecture decision records
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 13:49:57 +00:00
DevContainer User ed56aabffb chore: add artifacthub-repo.yml for verified publisher badge
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:42:15 +00:00
DevContainer User 1b2b5c5ae2 Add artifacthub-headlamp agent skill
Adds Claude Code agent skill for ArtifactHub metadata and publishing,
sourced from headlamp-agent-skills repository.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:36:43 +00:00
github-actions[bot] 5bd81ddfa8 release: v0.2.6 v0.2.6 2026-03-04 12:57:44 +00:00
DevContainer User 62c24e3857 fix: register AppBarClusterBadge, fix CSI label mismatch, improve accessibility and theme support
- Register AppBarClusterBadge via registerAppBarAction (was dead code)
- Add Rook 1.12+ CSI pod labels to CephPodDetailSection alongside legacy labels
- Add sidebar entries for Storage Classes and Volumes pages
- Add role="dialog", aria-modal, aria-labelledby, and Escape key to all detail drawers
- Replace hardcoded hex colors with CSS custom properties for dark/light theme compat
- Remove duplicate parseStorageToBytes from OverviewPage (import from k8s.ts)
- Add endpoints field to CephObjectStoreStatus interface (remove unsafe cast)
- Use ROOK_CEPH_API_GROUP/VERSION constants in API URL construction
- Hoist extractJsonData to module level
- Remove dead extractPoolFromVolumeHandle function
- Fix redundant storageClasses.length guard in OverviewPage
- Fix lint indent warnings
- Update CLAUDE.md and CHANGELOG.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:55:37 +00:00
DevContainer User fea6df6719 Add headlamp-plugin-developer agent skill
Adds Claude Code agent skill for Headlamp plugin development,
sourced from headlamp-agent-skills repository.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:26:53 +00:00
github-actions[bot] 041e7c1f19 release: v0.2.5 v0.2.5 2026-03-04 02:45:00 +00:00
DevContainer User dc936fb786 fix: add --allow-same-version and derive tarball name from package.json
Replaces hardcoded headlamp-rook-plugin tarball name with dynamic
PKG_NAME from package.json for consistency with other plugins.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:41:31 +00:00
github-actions[bot] d8989873bb release: v0.2.4 v0.2.4 2026-03-04 02:14:43 +00:00
DevContainer User 182fefa27a fix: use softprops/action-gh-release instead of gh CLI
The self-hosted runner doesn't have gh CLI installed, causing
"gh: command not found" at the Create GitHub Release step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:06:16 +00:00
github-actions[bot] a64a45f6c5 release: v0.2.3 2026-03-04 02:04:33 +00:00
DevContainer User 27b5991a63 fix: hardcode tarball name in release workflow
The dynamic PKG_NAME read from package.json returns "rook", causing
`mv rook-X.Y.Z.tar.gz rook-X.Y.Z.tar.gz` to fail as a self-rename.
Hardcode "headlamp-rook-plugin" as the tarball name to match the repo
and artifacthub expectations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 01:48:20 +00:00
DevContainer User 707a19ad9b fix: move Node.js setup before npm version in release workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 01:09:26 +00:00
DevContainer User c0389c0302 style: format all source files with Prettier
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:55:39 +00:00
DevContainer User 49c5cdbe86 ci: standardize CI/CD workflows and add Renovate
- CI: single sequential job, local-ubuntu-latest runner, Node 22, workflow_call trigger, npm run commands
- Release: CI gate via reusable workflow, concurrency protection, dynamic package name, tarball validation, gh CLI
- Add renovate.json with recommended config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:41:34 +00:00
DevContainer User d63473e0ba chore: standardize config, MCP, agents, and docs
- Add .headlamp-plugin/, .env, .env.local, .eslintcache to .gitignore
- Create .prettierrc.js (standard Headlamp prettier config)
- Fix .mcp.json typo (http:/ → http://), add github server, use localhost:8086 for playwright
- Add "github" to .claude/settings.local.json enabled servers
- Create .claude/agents/ with 3 meta-orchestration agents
- Add FilesystemsPage.tsx and ObjectStoresPage.tsx to CLAUDE.md architecture tree
- Add ArtifactHub badge, Plugin Manager install method, and Troubleshooting section to README.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 21:30:44 +00:00
Chris Farhood 863136219a commit mcp config 2026-02-21 12:34:22 +00:00
Chris Farhood bfe9f59c8e chore: release v0.2.2
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>
v0.2.2
2026-02-19 16:08:56 -05:00
Chris Farhood 9e1d4d07a0 chore: release v0.2.1
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>
2026-02-19 13:31:42 -05:00
github-actions[bot] 375132bdc3 chore: release v0.2.0 v0.2.0 2026-02-19 16:36:38 +00:00
Chris Farhood 0b5ca61785 docs: add v0.2.0 changelog entry
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>
2026-02-19 11:35:55 -05:00
Chris Farhood 300c705033 chore: rename plugin to headlamp-rook-plugin
Renames the plugin from headlamp-rook-ceph-plugin to headlamp-rook-plugin
across all files: package.json, package-lock.json, artifacthub-pkg.yml,
release workflow, README, CHANGELOG, CLAUDE.md, CONTRIBUTING, SECURITY,
and src/index.tsx.

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>
2026-02-19 11:26:33 -05:00
Chris Farhood ea587c149f docs: add v0.1.1/0.1.2/0.1.3 changelog entries
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>
2026-02-19 07:07:42 -05:00
github-actions[bot] 4468396e52 chore: release v0.1.3 v0.1.3 2026-02-19 12:06:38 +00:00
github-actions[bot] ead81a51a9 chore: release v0.1.1 2026-02-19 12:05:27 +00:00
Chris Farhood 8e0b95ed64 fix: rename Type -> Protocol with RBD/CephFS values to match tns-csi convention
Both plugins now inject a 'Protocol' column into the shared native tables,
so mixed-driver clusters see consistent naming. Rook values: RBD, CephFS.
tns-csi values: NFS, NVMe-oF, iSCSI. Removes unused formatStorageType import
from the column processor.

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>
2026-02-19 06:53:54 -05:00
Chris Farhood e54caa7be4 fix: rename 'Rook Type' -> 'Type' and 'Cluster ID' -> 'Cluster' in column processors
Cleaner column headers that don't redundantly prefix with 'Rook'.

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>
2026-02-19 06:48:08 -05:00
github-actions[bot] b77ecf66e7 chore: release v0.1.2 v0.1.2 2026-02-19 02:24:36 +00:00
Chris Farhood c30fc18b43 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>
2026-02-18 21:23:53 -05:00
Chris Farhood 91e50fc316 Merge pull request #1 from privilegedescalation/fix/ci-eslint-config 2026-02-18 19:47:53 -05:00
Chris Farhood 7860778920 fix(ci): add .eslintrc.js and remove unused imports
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>
2026-02-18 19:42:02 -05:00
github-actions[bot] 8d56dc4a74 chore: release v0.1.1 v0.1.1 2026-02-19 00:39:59 +00:00
Chris Farhood 14d55b5eea chore: update artifacthub-pkg.yml org URLs to privilegedescalation
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>
2026-02-18 18:19:52 -05:00
Chris Farhood 8521a1dda2 Revert "chore: release v0.1.1"
This reverts commit 9bca80f44c.
2026-02-18 18:19:11 -05:00
Chris Farhood 9bca80f44c chore: release v0.1.1
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>
2026-02-18 17:52:14 -05:00
Chris Farhood 2841519e92 chore: update repo URLs to privilegedescalation org
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>
2026-02-18 17:51:02 -05:00
Chris Farhood 4538cc70d7 docs: update CLAUDE.md with data flow, missing scripts, and test notes
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>
2026-02-18 17:45:13 -05:00
Chris Farhood 25175b65b8 feat: initial release of headlamp-rook-ceph-plugin v0.1.0
Headlamp plugin for Rook-Ceph cluster visibility.

Pages:
- Overview dashboard: CephCluster health, capacity bar, resource counts
  (block pools, filesystems, object stores, PVs, PVCs), daemon pod
  health summary, non-Bound PVC alerts
- Block Pools: CephBlockPool table with replication, failure domain,
  mirroring; slide-in detail panel
- Pods: all Rook-Ceph daemon pods grouped by role with ready/total counts

Native Headlamp integrations:
- StorageClass table: Rook Type, Pool, Cluster ID columns
- PV table: Rook Type, Pool columns
- PVC detail injection: driver, type, pool, volume handle
- PV detail injection: CSI volume attributes
- Pod detail injection: Ceph daemon role badge
- App bar badge: cluster health (HEALTH_OK/WARN/ERR), color-coded

API / architecture:
- src/api/k8s.ts: types + filters for ceph.rook.io/v1 CRDs; handles
  both default rook-ceph.* and custom-namespace provisioner strings
- src/api/RookCephDataContext.tsx: shared context provider; fetches
  CephCluster, CephBlockPool, CephFilesystem, CephObjectStore CRDs
  plus daemon pods via label selectors
- 37 unit tests (vitest + @testing-library/react)
- TypeScript strict mode, zero any types
- CI + release GitHub Actions workflows

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>
2026-02-18 16:55:39 -05:00