Troubleshooting
Common issues and their solutions.
Installation Issues
Pod Not Starting
Symptom: Pod stays in Pending or CrashLoopBackOff
Solutions:
-
Check pod status:
kubectl get pods -n flux-system -l app.kubernetes.io/name=gyre -
Check events:
kubectl describe pod -n flux-system -l app.kubernetes.io/name=gyre -
Common causes:
- Insufficient resources (increase limits)
- PersistentVolume not available (check storage class)
- Image pull errors (check image tag and registry access)
Cannot Access Web UI
Symptom: Connection refused or timeout
Solutions:
-
Check service:
kubectl get svc -n flux-system gyre -
Verify pod is running:
kubectl get pods -n flux-system -l app.kubernetes.io/name=gyre -
Test port-forward:
kubectl port-forward -n flux-system svc/gyre 3000:80
Authentication Issues
Cannot Login
Symptom: "Invalid credentials" error
Solutions:
-
Read the password from the configured admin Secret (default:
gyre-initial-admin-secret):kubectl get secret "${GYRE_ADMIN_SECRET_NAME:-gyre-initial-admin-secret}" \-n flux-system \-o jsonpath='{.data.password}' | base64 -d && echo -
If the password is no longer known, update the Secret. Enter a new strong password when prompted:
read -r -s -p 'New admin password: ' new_passwordprintf '\n'printf '%s' "$new_password" | kubectl create secret generic \"${GYRE_ADMIN_SECRET_NAME:-gyre-initial-admin-secret}" -n flux-system \--from-file=password=/dev/stdin --dry-run=client -o yaml | kubectl apply -f -unset new_passwordkubectl rollout restart deployment/gyre -n flux-systemkubectl rollout status deployment/gyre -n flux-systemGyre keeps the current Secret password hash in memory, so restart the deployment after changing the Secret. Adjust the namespace or deployment name if your release uses different values. Never edit the database password hash directly.
For local deployments, ADMIN_PASSWORD is used only when the first local admin is created; changing it does not reset an existing account. An authenticated local admin can change their own password or reset another user's password in Gyre. There is no supported offline password reset command for a locked-out local database.
OAuth Login Fails
Symptom: Redirect loop or "Authentication failed"
Solutions:
-
Verify OAuth credentials:
kubectl get secret -n flux-system | grep oauth -
Check callback URL is correct in OAuth provider
-
Verify Gyre URL matches OAuth configuration
-
Check logs:
kubectl logs -n flux-system -l app.kubernetes.io/name=gyre | grep oauth
Cluster Connection Issues
Cannot Connect to Cluster
Symptom: "Cluster unavailable" or timeout
Solutions:
-
Verify ServiceAccount permissions:
kubectl auth can-i --list --as=system:serviceaccount:flux-system:gyre -
Check ClusterRoleBinding:
kubectl get clusterrolebinding | grep gyre -
Test K8s API access from pod:
kubectl exec -it -n flux-system \deployment/gyre -- \curl -k https://kubernetes.default.svc/healthz
Multi-Cluster Issues
Symptom: Cannot see resources from other clusters
Solutions:
-
Verify kubeconfig is valid:
kubectl config view --raw -
Check cluster context exists:
kubectl config get-contexts -
Test cluster connection:
kubectl --context=other-cluster get nodes
Performance Issues
Slow Loading
Symptom: Pages take long to load
Solutions:
-
Increase resources:
resources:limits:cpu: 2000mmemory: 1Gi -
Check database size:
kubectl exec -it -n flux-system \deployment/gyre -- \ls -lh /data/gyre.db -
Clear cache:
kubectl rollout restart deployment -n flux-system gyre
High Memory Usage
Symptom: OOMKilled or high memory usage
Solutions:
-
Check for memory leaks:
kubectl top pod -n flux-system -l app.kubernetes.io/name=gyre -
Reduce cache TTL:
config:dashboardCacheTtlMs: 10000 # 10 seconds -
Limit concurrent connections
Resource Display Issues
Resources Not Showing
Symptom: Empty list or "No resources found"
Solutions:
-
Verify FluxCD is installed:
kubectl get pods -n flux-system -
Check resource exists:
kubectl get kustomizations -A -
Verify RBAC permissions
-
Check logs:
kubectl logs -n flux-system -l app.kubernetes.io/name=gyre | grep error
Wrong Status Displayed
Symptom: Status doesn't match actual resource state
Solutions:
-
Refresh page (hard refresh: Ctrl+Shift+R)
-
Check SSE stream connection (
/api/v1/events) in browser DevTools Network tab. Server endpoint:src/routes/api/v1/events/+server.ts, client store:src/lib/stores/events.svelte.ts. -
Restart Gyre pod:
kubectl rollout restart deployment -n flux-system gyre
Database Issues
Database Locked
Symptom: "database is locked" errors
Solutions:
-
Restart the pod:
kubectl rollout restart deployment -n flux-system gyre -
Check disk space:
kubectl exec -it -n flux-system \deployment/gyre -- \df -h
Data Loss
Symptom: Users, settings, or data missing
Solutions:
-
Check PersistentVolume:
kubectl get pvc -n flux-system -
Check Gyre's Admin → Backups page for an available database backup. Restore through the application or follow the backup restore guide.
Getting Help
If you can't resolve the issue:
-
Check logs:
kubectl logs -n flux-system -l app.kubernetes.io/name=gyre --tail=100 -
Gather information:
- Gyre version
- Kubernetes version
- FluxCD version
- Browser console errors
-
Open an issue:
- GitHub Issues
- Include logs and reproduction steps