privilegedescalation-engineer[bot] cbf5ba4a2a fix(e2e): use pnpm-capable workflow branch (PRI-634)
* fix(ci): guard dual-approval job against null pull_request context

When triggered by pull_request_review events, github.event.pull_request
is undefined, which can cause issues when the job tries to access
github.event.pull_request.number. Add a job-level if guard to prevent
the job from running in these conditions.

This addresses the dual approval failures seen on feature branches where
the workflow was running without a valid PR context.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix(e2e): use pnpm-capable workflow branch

Reference @hugh/add-pnpm-support-plugin-e2e which has pnpm support via corepack.

PRI-634

* fix(e2e): use pnpm-capable workflow branch

Reference @hugh/add-pnpm-support-plugin-e2e which has pnpm support via corepack.

PRI-634

* Update e2e.yaml to use @main and pass plugin-name

Use @main workflow ref and add plugin-name input so the
reusable workflow can derive ConfigMap name and mount path.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-06 10:17:32 +00:00
2026-04-15 04:00:53 +00:00
2026-03-24 21:29:29 +00:00
2026-03-04 00:23:08 +00:00

headlamp-kube-vip-plugin

CI License

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.

S
Description
Headlamp plugin for kube-vip virtual IP and load balancer visibility
Readme 1.3 MiB
v1.0.2 Latest
2026-04-15 04:00:40 +00:00
Languages
TypeScript 100%