gandalf/fix-e2e-pri-657
Add waitForSidebar helper function with explicit sidebar visibility wait and networkidle state to ensure page is fully loaded before assertions. This addresses flaky E2E tests where elements were not consistently found due to timing issues during page transitions.
headlamp-kube-vip-plugin
A Headlamp plugin providing visibility into kube-vip virtual IP and load balancer deployments.
Features
- Overview Dashboard — Deployment status, VIP mode (ARP/BGP), leader election, cluster summary
- Services — LoadBalancer services with VIP assignments, kube-vip annotations, egress status
- Nodes — Cluster nodes with kube-vip pod status, leader designation, VIP labels
- Configuration — DaemonSet config, IP address pools, leader election leases
- Service Detail Integration — kube-vip details injected into native Headlamp Service detail views
Installation
Search for kube-vip in the Headlamp Plugin Manager (Settings → Plugins → Catalog).
Requirements
- Headlamp >= v0.26
- kube-vip deployed in
kube-system(DaemonSet or static pod) - Optional: kube-vip-cloud-provider for IP pool management
RBAC
This plugin is read-only and requires the following permissions:
| Resource | API Group | Verbs |
|---|---|---|
| services | v1 | list, get, watch |
| nodes | v1 | list, get, watch |
| pods | v1 | list, get, watch |
| daemonsets | apps/v1 | get |
| leases | coordination.k8s.io | list, get, watch |
| configmaps | v1 | get |
Architecture
src/
├── index.tsx # Plugin entry point
├── api/
│ ├── k8s.ts # Types and helper functions
│ └── KubeVipDataContext.tsx # React context provider
└── components/
├── OverviewPage.tsx # Dashboard
├── ServicesPage.tsx # LoadBalancer services
├── NodesPage.tsx # Cluster nodes
├── ConfigPage.tsx # Configuration & IP pools
└── ServiceDetailSection.tsx # Injected into Service detail view
Development
npm install
npm start # dev server
npm test # run tests
npm run tsc # type check
npm run lint # ESLint
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "kube-vip Not Detected" | No kube-vip pods in kube-system | Install kube-vip per https://kube-vip.io/docs/installation/ |
| No IP pools shown | kubevip ConfigMap not found | Install kube-vip-cloud-provider |
| Services show "Pending" VIP | No IP pool configured or pool exhausted | Add IP ranges to kubevip ConfigMap |
| Leader shows "—" | No kube-vip leases found | Verify leader election is enabled (vip_leaderelection=true) |
Contributing
See CONTRIBUTING.md for development guidelines.
License
Apache License 2.0. See LICENSE for details.
Description