feat: initial kube-vip Headlamp plugin

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>
This commit is contained in:
DevContainer User
2026-03-04 00:23:08 +00:00
commit 3b9d007e8b
37 changed files with 22722 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# Contributing
Contributions are welcome! Please follow these guidelines.
## Development Setup
```bash
git clone https://github.com/privilegedescalation/headlamp-kube-vip-plugin.git
cd headlamp-kube-vip-plugin
npm install
npm start
```
## Before Submitting a PR
```bash
npm run tsc # TypeScript type check
npm run lint # ESLint
npm run format:check # Prettier
npm test # All tests must pass
```
## Code Style
- TypeScript strict mode (no `any`)
- Functional React components only
- All UI from `@kinvolk/headlamp-plugin/lib/CommonComponents`
- Tests with vitest + @testing-library/react
## Commit Messages
Use conventional commit format:
- `feat:` new features
- `fix:` bug fixes
- `chore:` maintenance
- `docs:` documentation