24033ca977
Remove all references to the incorrect `config.watchPlugins: false` requirement that was believed necessary for Headlamp v0.39.0+. Investigation revealed that plugins work correctly with the default `watchPlugins: true` setting. The earlier documentation was based on a misunderstanding of the plugin loading mechanism. Changes: - Remove watchPlugins: false from all YAML configuration examples - Remove warning sections about watchPlugins requirement - Update troubleshooting guides to focus on actual issues - Simplify installation instructions by removing unnecessary config Files updated: - README.md (main installation docs and troubleshooting table) - docs/DEPLOYMENT.md - docs/TROUBLESHOOTING.md - docs/getting-started/* (quick-start, installation, prerequisites) - docs/deployment/* (helm, production) - docs/troubleshooting/* (common-issues, README) - Multiple other doc files formatted by prettier This cleanup ensures ArtifactHub and GitHub documentation show correct, simplified installation instructions. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
2.6 KiB
2.6 KiB
Network Problems
Troubleshooting network connectivity issues for the Headlamp Polaris Plugin.
Overview
The plugin accesses Polaris through the Kubernetes service proxy. Network issues can occur at multiple points in this chain:
Headlamp Pod → K8s API Server → Polaris Dashboard Service
Common Issues
NetworkPolicy Blocking Access
Symptom: Timeout or connection errors despite correct RBAC
Cause: NetworkPolicy in polaris namespace blocking API server ingress
Solution:
Allow ingress from the Kubernetes API server to Polaris dashboard:
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-apiserver-to-polaris
namespace: polaris
spec:
podSelector:
matchLabels:
app.kubernetes.io/name: polaris
app.kubernetes.io/component: dashboard
policyTypes:
- Ingress
ingress:
# Allow from API server
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
- podSelector:
matchLabels:
component: kube-apiserver
ports:
- protocol: TCP
port: 80
Note: The API server performs the proxy hop, not the Headlamp pod directly.
Test Network Connectivity
# 1. Test service proxy endpoint
kubectl get --raw /api/v1/namespaces/polaris/services/polaris-dashboard:80/proxy/results.json
# If successful: JSON output
# If failed: Check NetworkPolicies and service status
# 2. Check NetworkPolicies
kubectl -n polaris get networkpolicy
# 3. Test direct service access (from within cluster)
kubectl run -it --rm debug --image=curlimages/curl --restart=Never -- \
curl http://polaris-dashboard.polaris/results.json
# If this works but service proxy doesn't, check API server network access
CORS Issues (Custom URL)
Symptom: Error when using custom Polaris URL in settings
Cause: CORS not configured on external Polaris deployment
Solution:
Configure Polaris dashboard to allow Headlamp origin:
# Polaris Helm values
dashboard:
enabled: true
env:
- name: CORS_ALLOWED_ORIGINS
value: 'https://headlamp.example.com'
Test CORS headers:
curl -v -H "Origin: https://headlamp.example.com" \
https://my-polaris.example.com/results.json
# Check for:
# Access-Control-Allow-Origin: https://headlamp.example.com