10 Commits

Author SHA1 Message Date
hugh-hackman[bot] 3946f8d64d feat: auto-track upstream appVersion in releases (#6)
Configures the reusable release workflow to fetch the latest release
tag from rook/rook and set appVersion in artifacthub-pkg.yml.
This keeps our Artifact Hub listing in sync with the upstream project.

Co-authored-by: Hugh Hackman <hugh@privilegedescalation.dev>
2026-03-08 22:08:50 +00:00
hugh-hackman[bot] 5ba910c821 Merge PR #5
* ci: switch to org-level reusable workflows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: retrigger CI after reusable workflows merged

* feat: add workflow_dispatch to CI workflow

---------

Co-authored-by: hugh-hackman[bot] <hugh-hackman[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: hugh-hackman[bot] <266376744+hugh-hackman[bot]@users.noreply.github.com>
2026-03-08 11:16:25 +00:00
Chris Farhood 72e8d173c4 chore: add FUNDING.yml 2026-03-07 08:02:27 -05: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
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
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 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
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 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