diff --git a/.github/workflows/renovate-app-token.yaml b/.github/workflows/renovate-app-token.yaml index 400d37c..cc8237e 100644 --- a/.github/workflows/renovate-app-token.yaml +++ b/.github/workflows/renovate-app-token.yaml @@ -9,7 +9,7 @@ on: jobs: app-token: - runs-on: runners-privilegedescalation + runs-on: ubuntu-latest outputs: token: ${{ steps.app-token.outputs.token }} steps: diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml index 54880a1..5fd4519 100644 --- a/.github/workflows/renovate.yaml +++ b/.github/workflows/renovate.yaml @@ -5,7 +5,7 @@ on: workflow_dispatch: jobs: renovate: - runs-on: runners-privilegedescalation + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Generate GitHub App token diff --git a/CLAUDE.md b/CLAUDE.md index ac071c2..d8ec835 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,7 +8,7 @@ Headlamp plugin for kube-vip virtual IP and load balancer visibility. Read-only - **Plugin name**: `kube-vip` - **Target**: Headlamp >= v0.26 -- **Data sources**: kube-vip DaemonSet/pods in `kube-system`, Services (type:LoadBalancer), Nodes, Leases, `kubevip` ConfigMap +- **Data sources**: kube-vip DaemonSet/pods in `headlamp`, Services (type:LoadBalancer), Nodes, Leases, `kubevip` ConfigMap - **Reference plugin**: `../headlamp-polaris-plugin` ## Commands @@ -58,7 +58,7 @@ kube-vip uses **no CRDs**. All state comes from standard Kubernetes resources an ## Key constants (src/api/k8s.ts) -- Namespace: `kube-system` +- Namespace: `headlamp` - DaemonSet name: `kube-vip-ds` - Cloud provider name: `kube-vip-cloud-provider` - ConfigMap name: `kubevip` diff --git a/README.md b/README.md index aa04c51..a4c2dc3 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Search for `kube-vip` in the Headlamp Plugin Manager (Settings → Plugins → C ## Requirements - Headlamp >= v0.26 -- kube-vip deployed in `kube-system` (DaemonSet or static pod) +- kube-vip deployed in `headlamp` (DaemonSet or static pod) - Optional: kube-vip-cloud-provider for IP pool management ## RBAC @@ -66,7 +66,7 @@ npm run lint # ESLint | Symptom | Cause | Fix | |---------|-------|-----| -| "kube-vip Not Detected" | No kube-vip pods in kube-system | Install kube-vip per https://kube-vip.io/docs/installation/ | +| "kube-vip Not Detected" | No kube-vip pods in headlamp namespace | 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`) | diff --git a/SECURITY.md b/SECURITY.md index f9e4c61..f2c9f2b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -12,10 +12,10 @@ This plugin is **read-only**. It does not perform any write operations against t - Services (type: LoadBalancer) - Nodes -- Pods in `kube-system` -- DaemonSets in `kube-system` -- Leases in `kube-system` -- ConfigMaps in `kube-system` +- Pods in `headlamp` +- DaemonSets in `headlamp` +- Leases in `headlamp` +- ConfigMaps in `headlamp` All data is fetched through Headlamp's built-in API proxy, which respects the user's existing RBAC permissions. diff --git a/src/components/OverviewPage.tsx b/src/components/OverviewPage.tsx index 43f9e2c..7d09967 100644 --- a/src/components/OverviewPage.tsx +++ b/src/components/OverviewPage.tsx @@ -21,6 +21,7 @@ import { isEgressEnabled, isKubeVipService, isPodReady, + KUBE_VIP_NAMESPACE, phaseToStatus, } from '../api/k8s'; import { useKubeVipContext } from '../api/KubeVipDataContext'; @@ -105,7 +106,9 @@ export default function OverviewPage() { { name: 'Status', value: ( - No kube-vip pods found in kube-system + + No kube-vip pods found in {KUBE_VIP_NAMESPACE} + ), }, {