Skip to content

Troubleshooting

Common issues with Kure Monitor and how to fix them.

Terminal window
kubectl get pods -n kure-system
kubectl describe pod <pod-name> -n kure-system
IssueFix
Insufficient resourcesReduce resource requests in values.yaml
Image pull errorsCheck registry access and image tags
PVC pendingEnsure StorageClass exists with available capacity
RBAC issuesVerify ClusterRole and ClusterRoleBinding were created
Terminal window
kubectl get pods -n kure-system -l app=postgresql
kubectl logs -n kure-system -l app=postgresql
kubectl get svc -n kure-system | grep postgres
kubectl get secret -n kure-system kure-secrets -o yaml
kubectl get pvc -n kure-system
Terminal window
docker pull ghcr.io/nan0c0de/kure-monitor/backend:2.4.0
# Private registry
kubectl create secret docker-registry regcred \
--docker-server=ghcr.io \
--docker-username=<user> \
--docker-password=<token> \
-n kure-system
imagePullSecrets:
- name: regcred

Dashboard goes straight to main page (no login)

Section titled “Dashboard goes straight to main page (no login)”

Auth is always on in 2.3+. If no login page appears, the bootstrap Secret is missing.

Terminal window
kubectl get secret kure-monitor-bootstrap -n kure-system
# If missing (e.g., manifest install)
kubectl create secret generic kure-monitor-bootstrap -n kure-system \
--from-literal=service-token="$(openssl rand -hex 32)" \
--from-literal=session-secret="$(openssl rand -hex 32)"
kubectl rollout restart deployment/kure-monitor-backend -n kure-system

Verify your session cookie or service token. From the browser, inspect cookies (kure_session should be set after login). From the agent / scanner, confirm X-Service-Token is in the request:

Terminal window
kubectl logs -n kure-system -l app=kure-backend | grep -i auth

Ingest endpoints (POST /api/pods/failed, etc.) require X-Service-Token, not user auth. Confirm:

Terminal window
# Should return 400 (bad body), NOT 401
curl -X POST http://localhost:8000/api/pods/failed \
-H "Content-Type: application/json" \
-H "X-Service-Token: $SERVICE_TOKEN" \
-d '{}'

If you see 401, the service token in the agent/scanner pod doesn’t match the backend’s. Confirm both mount the same <release>-bootstrap Secret.

  • Confirm you’re logged in
  • Check browser console for WebSocket errors
  • Confirm the session cookie exists
Terminal window
kubectl get svc kure-monitor-frontend -n kure-system

By service type:

Terminal window
# NodePort
kubectl get nodes -o wide
kubectl get svc kure-monitor-frontend -n kure-system \
-o jsonpath='{.spec.ports[0].nodePort}'
# Port-forward
kubectl port-forward svc/kure-monitor-frontend 8080:8080 -n kure-system
# LoadBalancer
kubectl get svc kure-monitor-frontend -n kure-system -w
Terminal window
kubectl port-forward svc/kure-monitor-backend 8000:8000 -n kure-system
curl http://localhost:8000/api/config
kubectl logs -n kure-system -l app=kure-frontend

Common causes: backend not ready, CORS misconfig, NetworkPolicy blocking traffic.

Terminal window
kubectl get pods -n kure-system -l app=kure-agent
kubectl logs -n kure-system -l app=kure-agent
# Confirm agent can reach backend
kubectl exec -n kure-system -l app=kure-agent -- \
curl -s http://kure-monitor-backend:8000/api/config

Also check Admin → Suppressions — the namespace may be excluded.

Admin → AI Configuration → pick provider → key → model → Test → Save. See LLM Providers.

ErrorFix
Invalid API keyRe-check the key
Rate limitedWait and retry, or use a different key
Model not availablePick another model
Network errorConfirm backend can reach the LLM API
Terminal window
kubectl exec -n kure-system -l app=kure-backend -- \
curl -s https://api.openai.com
Terminal window
curl http://localhost:8000/api/admin/llm/status
kubectl logs -n kure-system -l app=kure-backend | grep -i llm

If LLM fails, Kure falls back to rule-based solutions. Generic but functional.

Terminal window
kubectl get pods -n kure-system -l app=kure-security-scanner
kubectl logs -n kure-system -l app=kure-security-scanner

Also check Admin → Suppressions for excluded namespaces.

Add to Admin → Suppressions:

  • kube-system
  • kube-public
  • kube-node-lease
  • kure-system
  • Logged in as read / write (admin only)
  • The pod has no AI solution yet
IssueFix
RBAC missingBackend ClusterRole needs create, delete on pods
Quota exceededCheck ResourceQuota in the namespace
Image pull errorMirror uses the same image as the original
Terminal window
kubectl get clusterrole -l app.kubernetes.io/component=backend -o yaml | grep -A5 "resources.*pods"
kubectl logs -n kure-system -l app.kubernetes.io/component=backend | grep -i mirror
  • Mirror inherits resource requests from the original — confirm node capacity
  • Original may have node selectors / affinity that can’t be satisfied
  • kubectl describe pod <mirror-pod-name> -n <namespace>
  • Backend pod isn’t running (cleanup is a background task)
  • Backend logs may show cleanup errors
  • Manual: kubectl delete pod <mirror-pod-name> -n <namespace>
  • TTL setting: Admin → Settings
backend:
resources:
limits:
memory: 2Gi
agent:
resources:
limits:
memory: 1Gi
  • Filter by namespace
  • Dismiss resolved failures
  • Check browser console for errors
agent:
checkInterval: 30 # bump from default
Terminal window
kubectl get networkpolicies -n kure-system
kubectl delete networkpolicy -n kure-system --all # debug only
Terminal window
kubectl exec -n kure-system -l app=kure-agent -- \
nslookup kure-monitor-backend.kure-system.svc.cluster.local
Terminal window
kubectl logs -n kure-system -l app=kure-backend | grep -i migration
kubectl exec -n kure-system -l app=postgresql -- \
psql -U kure -d kure -c "SELECT version FROM schema_migrations;"
Terminal window
helm list -n kure-system
helm history kure-monitor -n kure-system
helm rollback kure-monitor <revision> -n kure-system
helm upgrade kure-monitor kure-monitor/kure -n kure-system --force
Terminal window
kubectl set env deployment/kure-monitor-backend -n kure-system LOG_LEVEL=DEBUG
kubectl set env daemonset/kure-monitor-agent -n kure-system KURE_LOG_LEVEL=DEBUG
Terminal window
# All components
kubectl logs -n kure-system \
-l app.kubernetes.io/instance=kure-monitor --all-containers
# Per component
kubectl logs -n kure-system -l app=kure-backend -f
kubectl logs -n kure-system -l app=kure-agent -f
kubectl logs -n kure-system -l app=kure-frontend -f
kubectl logs -n kure-system -l app=kure-security-scanner -f
Terminal window
kubectl get all -n kure-system -o yaml > kure-diagnostics.yaml
kubectl logs -n kure-system -l app=kure-backend --all-containers >> kure-diagnostics.yaml
kubectl logs -n kure-system -l app=kure-agent --all-containers >> kure-diagnostics.yaml
kubectl describe pods -n kure-system >> kure-diagnostics.yaml

Open an issue on GitHub with the diagnostics bundle.