* fix: add explicit dev dependencies and fix React test environment
- Add react, react-dom, vitest, jsdom, and testing-library as explicit
devDependencies instead of relying on transitive deps from
@kinvolk/headlamp-plugin
- Add peerDependencies for react/react-dom
- Set process.env.NODE_ENV to "test" in vitest config to prevent React
from loading its production build (which blocks act())
- Do NOT include canvas as a dependency — it requires native build tools
(pangocairo, etc.) not present in the CI node:22 container
Fixes CI install failures from prior PR #10 which included canvas.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add react-router-dom devDep and remove unused vite types
- Add react-router-dom as explicit devDependency to fix
ServicesPage.test.tsx import resolution failure
- Remove vite/client and vite-plugin-svgr/client from tsconfig types
(not needed, aligns with polaris plugin pattern)
Addresses QA review feedback on PR#11.
---------
Co-authored-by: gandalf-the-greybeard[bot] <gandalf-the-greybeard[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Headlamp plugin providing visibility into kube-vip virtual IP and load
balancer deployments. Features:
- Overview dashboard with deployment status, VIP mode, leader election
- Services page with LoadBalancer VIP assignments and detail panels
- Nodes page showing kube-vip pod status and leader designation
- Configuration page with DaemonSet config, IP pools, leases
- Service detail section injected into native Headlamp Service views
Read-only plugin — no cluster write operations. Uses standard K8s
resources (no CRDs): Services, Nodes, Pods, DaemonSets, Leases,
ConfigMaps with kube-vip.io/* annotations.
74 tests across 7 test files. All tsc/lint/format/test checks pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>