Headlamp offers a Kubernetes management interface that can run in a cluster or as a desktop application. Its in-cluster login can use a service account token or client certificate. A proxy in front of Headlamp may authenticate a person, while Kubernetes still authorizes the identity that Headlamp forwards.
That distinction is the central inventory question. A polished login page can hide a shared high-privilege service account, or it can be correctly wired to per-user OIDC and impersonation. The external page alone cannot tell which design is in use.
The browser is not the final identity
Headlamp's installation documentation says it uses Kubernetes RBAC to check access. It recommends a service account token for the in-cluster login. The deployment can also be placed behind OAuth2 Proxy and Dex, and the project's test guide describes a configuration where the proxy authenticates the browser but Kubernetes authorizes every signed-in user as Headlamp's ServiceAccount.
That example is useful because it names the failure mode rather than hiding it. The proxy gate may work, yet the Kubernetes audit log records one shared service-account identity. Per-user attribution and least privilege then depend on a different integration, such as API-server OIDC or impersonation with controls.
The project also warns not to create an Ingress for the Headlamp Service when a proxy is intended to be the authentication gate. Direct routing can bypass the gate.
A noisy name with a small scoped result
On 2026-11-04 at 20:49 UTC, a count-only ZoomEye SDK query returned 464 for app="Headlamp" and 1,566 for title="Headlamp". The product-scoped query title="Headlamp" && http.body="headlamp.dev" returned 0 at 20:50 UTC.
The words Headlamp also describe vehicle and camping equipment. The broad counts cannot be used as a Kubernetes UI population. The scoped result is more conservative, but it still only covers the combination observed at that time and does not prove that no Headlamp deployment exists.
No asset records were retrieved. A later endpoint-level review would need to distinguish a login screen, an unauthenticated asset, a dashboard bundle, and documentation.
Review the identity chain
Trace the path from ingress to Headlamp to Kubernetes. Record the authentication step, the token or certificate supplied to Headlamp, the Kubernetes user or service account that appears in audit logs, and the RBAC bindings for that identity.
If a proxy is used, verify that the Headlamp Service cannot be reached directly. Test a user who authenticates through the proxy but is not present in Kubernetes. Confirm enough identity data is available to attribute actions and to revoke one user without affecting others.
For a service-account login, rotate the token, set a bounded lifetime where the platform supports it, and store the token out of browser-accessible files. Review cluster-admin bindings and dashboard pods with host access.
Headlamp can make Kubernetes easier to operate. Its access boundary is the identity that reaches the API server. A headlamp-shaped web title is a weak starting point. The deployment's proxy, token, and RBAC path is the evidence that matters.
References
[4] ZoomEye