이 경고(Warning: Incomplete plugins disabled)는 Headlamp가 /headlamp/plugins/lakehouse-monitor/ 디렉터리를 스캔할 때 package.json 메타데이터 파일이 없어서 해당 플러그인을 불완전한(Incomplete) 플러그인으로 판단하고 로드를 차단했을 때 발생합니다.
Headlamp 백엔드는 각 플러그인 폴더 안에 main.js와 package.json 두 파일이 모두 존재해야 유효한 플러그인으로 인식합니다.
package.json 추가 및 마운트package.json 내용을 ConfigMap에 함께 담고, 두 파일을 모두 플러그인 디렉터리에 마운트해 줍니다.
package.json 포함)기존 ConfigMap을 package.json이 포함된 형태로 다시 생성합니다.
kubectl create configmap headlamp-lakehouse-plugin \
--from-file=main.js=./dist/main.js \
--from-literal=package.json='{
"name": "lakehouse-monitor",
"version": "0.1.0",
"main": "main.js"
}' \
-n headlamp \
--dry-run=client -o yaml | kubectl apply -f -
package.json 마운트 패치두 파일이 모두 /headlamp/plugins/lakehouse-monitor/ 디렉터리에 들어가도록 Deployment를 패치합니다.
kubectl patch deployment headlamp -n headlamp --type='strategic' -p '{
"spec": {
"template": {
"spec": {
"containers": [
{
"name": "headlamp",
"volumeMounts": [
{
"name": "lakehouse-plugin-vol",
"mountPath": "/headlamp/plugins/lakehouse-monitor/main.js",
"subPath": "main.js"
},
{
"name": "lakehouse-plugin-vol",
"mountPath": "/headlamp/plugins/lakehouse-monitor/package.json",
"subPath": "package.json"
}
]
}
],
"volumes": [
{
"name": "lakehouse-plugin-vol",
"configMap": {
"name": "headlamp-lakehouse-plugin"
}
}
]
}
}
}
}'
kubectl rollout status deployment/headlamp -n headlamp
POD_NAME=$(kubectl get pod -n headlamp -l app.kubernetes.io/name=headlamp -o jsonpath='{.items[0].metadata.name}')
kubectl exec -it $POD_NAME -n headlamp -- ls -la /headlamp/plugins/lakehouse-monitor/
main.js와 package.json 두 파일이 모두 확인되어야 합니다.Ctrl + F5(강력 새로고침)를 누르면 incomplete plugins 경고가 사라지고 좌측 사이드바에 "Lakehouse DBs" 메뉴가 정상적으로 활성화됩니다.