README.md hinzugefügt

This commit is contained in:
ds
2026-06-28 19:01:11 +00:00
parent ccf9267440
commit 9ff3731dad
+198
View File
@@ -0,0 +1,198 @@
Install Plugin
git clone https://github.com/DEIN-REPO/headlamp-logviewer.git
cd headlamp-logviewer
npm install
npm run dev
--------------
OPTION B (empfohlen für K8s / Installation)
1. Plugin builden
npm install
npm run build
Das erzeugt:
dist/index.js
2. Plugin in Headlamp verfügbar machen
Du hast 3 Möglichkeiten:
🔹 Variante B1: Lokaler Plugin Pfad (einfach)
Wenn Headlamp lokal läuft:
headlamp --plugins-path=/path/to/headlamp-logviewer/dist
oder als Env:
HEADLAMP_PLUGINS_PATH=/opt/headlamp-plugins
👉 Dort legst du index.js rein.
🔹 Variante B2: Plugin in Container mounten (K8s)
Wenn Headlamp im Cluster läuft:
volumeMounts:
- name: plugins
mountPath: /headlamp/plugins
volumes:
- name: plugins
configMap:
name: headlamp-plugins
Oder einfacher (besser):
👉 Docker Image mit Plugin bauen
🔹 Variante B3: Custom Headlamp Image (PRO)
FROM ghcr.io/headlamp-k8s/headlamp:latest
COPY dist /headlamp/plugins
Dann:
docker build -t my-headlamp:plugins .
⚙️ 3. Plugin wird automatisch geladen wenn:
Im index.tsx:
registerPlugin({
name: "logs-plugin",
routes: [...]
});
👉 Headlamp erkennt das beim Start.
🧪 4. Prüfen ob Plugin geladen ist
Im Browser:
Sidebar öffnen
Nach “Logs” schauen
Oder Debug:
kubectl logs <headlamp-pod>
🔴 Häufige Fehler
❌ Plugin erscheint nicht
👉 Ursachen:
dist/index.js fehlt
falscher plugins-path
Plugin nicht gebaut (npm run build)
falscher export (default init fehlt)
❌ Route wird nicht angezeigt
👉 Prüfe:
sidebar: {
label: "Logs"
}
❌ Kubernetes API Fehler
👉 Dann fehlt RBAC:
resources:
- pods
- pods/log
verbs:
- get
- list
- watch
🧠 Best Practice Setup (empfohlen)
Für dich (Flux + Git Repo + MicroK8s Setup):
👉 So würde ich es sauber machen:
Git Repo
↓ (CI)
npm run build
Docker Image
Headlamp Deployment (custom image)
Plugin automatisch verfügbar
----------------------------------
1. Dockerfile (nur das Nötigste)
Im Root deines Plugin-Repos:
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM ghcr.io/headlamp-k8s/headlamp:latest
COPY --from=build /app/dist /headlamp/plugins
🏗️ 2. Image bauen
docker build -t headlamp-with-logs:latest .
🚀 3. Headlamp mit Plugin starten (lokal Test)
docker run -p 4466:4466 headlamp-with-logs:latest
Dann öffnen:
http://localhost:4466
☸️ 4. Kubernetes Deployment (optional)
apiVersion: apps/v1
kind: Deployment
metadata:
name: headlamp
spec:
replicas: 1
selector:
matchLabels:
app: headlamp
template:
metadata:
labels:
app: headlamp
spec:
containers:
- name: headlamp
image: headlamp-with-logs:latest
ports:
- containerPort: 4466
⚠️ Wichtig (nur 2 Dinge)
1. Plugin muss gebaut sein
npm run build
2. Ergebnis muss existieren
dist/index.js
✅ Ergebnis
Du hast jetzt:
Headlamp Image
inkl. deinem Log Plugin
sofort beim Start verfügbar
kein extra Mounting nötig
💡 Optional (wenn du es “richtig sauber” willst)
Ich kann dir noch eine Version machen mit:
Multi-stage caching (schneller Build)
GitHub Actions build + push
FluxCD Image update
Versioniertes Plugin system
Sag einfach 👍