feat: native Headlamp integration, TrueNAS API, docs, and CI for v0.2.0

Native Headlamp integrations:
- registerResourceTableColumnsProcessor: add Protocol/Pool/Server columns to
  native StorageClass table and Protocol/Volume Handle to PV table
- registerDetailsViewSection: inject TNS-CSI section into PV detail pages
- registerDetailsViewSection: inject driver role/status into tns-csi Pod pages
- registerDetailsViewHeaderAction: Benchmark shortcut on StorageClass detail
- registerAppBarAction: driver health badge (N/Nc M/Mn, color-coded)
- Trim sidebar from 6 → 4 entries (Overview, Snapshots, Metrics, Benchmark)

TrueNAS API integration:
- src/api/truenas.ts: ConfigStore-backed settings, WebSocket JSON-RPC client
  for pool.query (auth.login_with_api_key + pool.query)
- src/components/TnsCsiSettings.tsx: API key + server override settings UI
  with connection test button
- TnsCsiDataContext: fetch real pool stats (size/allocated/free/status)
- OverviewPage: three-tier pool capacity display (real data → error → metrics
  fallback)

Documentation:
- README, CHANGELOG, CONTRIBUTING, SECURITY
- docs/: architecture, deployment (Helm), getting-started, user-guide,
  troubleshooting

CI:
- .github/workflows/ci.yaml: lint + type-check + test on PR/push
- .github/workflows/release.yaml: workflow_dispatch versioned release

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 is contained in:
2026-02-18 16:37:56 -05:00
parent f2f3c3a87e
commit f1feb5c2f7
30 changed files with 3540 additions and 44 deletions
+73
View File
@@ -0,0 +1,73 @@
# TNS-CSI Plugin Documentation
Welcome to the Headlamp TNS-CSI Plugin documentation.
## Quick Links
- **[Quick Start](getting-started/quick-start.md)** — Get up and running in 5 minutes
- **[Installation Guide](getting-started/installation.md)** — All installation methods
- **[Troubleshooting](troubleshooting/README.md)** — Common issues and fixes
## Documentation Index
### Getting Started
| Guide | Description |
| ----- | ----------- |
| [Quick Start](getting-started/quick-start.md) | Fastest path to a working installation |
| [Installation](getting-started/installation.md) | Plugin Manager, manual tarball, build from source |
| [Prerequisites](getting-started/prerequisites.md) | Headlamp version, tns-csi driver, RBAC |
### User Guide
| Guide | Description |
| ----- | ----------- |
| [Overview Dashboard](user-guide/overview.md) | Driver health, storage summary, protocol distribution |
| [Storage Classes](user-guide/storage-classes.md) | StorageClass list and detail panel |
| [Volumes](user-guide/volumes.md) | PersistentVolume list and detail panel |
| [Snapshots](user-guide/snapshots.md) | VolumeSnapshot list and CRD requirements |
| [Metrics](user-guide/metrics.md) | Prometheus metrics display |
| [Benchmark](user-guide/benchmark.md) | kbench interactive storage benchmarking |
| [PVC Detail Injection](user-guide/pvc-detail.md) | TNS-CSI section in PVC detail views |
| [RBAC Permissions](user-guide/rbac.md) | Required permissions per feature |
### Architecture
| Guide | Description |
| ----- | ----------- |
| [Overview](architecture/overview.md) | System architecture, data flow, component hierarchy |
| [Data Flow](architecture/data-flow.md) | How data moves from K8s API to the UI |
| [Design Decisions](architecture/design-decisions.md) | Key architectural choices and rationale |
### Deployment
| Guide | Description |
| ----- | ----------- |
| [Helm](deployment/helm.md) | Deploy with Helm (recommended) |
| [Production Checklist](deployment/production.md) | Security and reliability checklist |
### Troubleshooting
| Guide | Description |
| ----- | ----------- |
| [Common Issues](troubleshooting/README.md) | Quick diagnosis table |
| [RBAC Issues](troubleshooting/rbac.md) | 403 errors, missing permissions |
| [Driver Detection](troubleshooting/driver.md) | Driver not installed, wrong provisioner |
| [Metrics Issues](troubleshooting/metrics.md) | Empty metrics page, unreachable controller |
| [Benchmark Issues](troubleshooting/benchmark.md) | Benchmark fails to start or complete |
### Development
| Guide | Description |
| ----- | ----------- |
| [Development Setup](development/setup.md) | Clone, install, run dev server |
| [Testing](development/testing.md) | Unit tests, mocking headlamp APIs |
| [Release Process](development/release.md) | How releases are cut and published |
## External Links
- **[GitHub Repository](https://github.com/privilegedescalation/headlamp-tns-csi-plugin)**
- **[Artifact Hub](https://artifacthub.io/packages/headlamp/headlamp-tns-csi-plugin/headlamp-tns-csi-plugin)**
- **[tns-csi Driver](https://github.com/fenio/tns-csi)**
- **[kbench](https://github.com/longhorn/kbench)**
- **[Headlamp](https://headlamp.dev/)**