β¨ Enhancements
- Added opt-in service account token auth for in-cluster deployments, enabling Headlamp to work behind OIDC or other external auth proxies. Thanks to @0xMH and @unixpariah. Also thanks to @yolossn for reporting the issue.
- Helm chart probes now support a configurable scheme (HTTP/HTTPS) and full timing settings, enabling correct probe behavior when backend TLS is enabled. Thanks to @gambtho. Also thanks to @mbasha86 for reporting the issue.
- Added alpha support for ClusterProfile discovery via the Cluster Inventory API, enabling automatic multi-cluster registration without manual kubeconfig setup. Thanks to @kahirokunn.
- Added hostAliases support to the Helm chart pod template, allowing custom host-to-IP mappings to be configured via chart values. Thanks to @VijayabaskarR-06. Also thanks to @geochip for reporting the issue.
- Added Russian language support to the frontend, making Headlamp more accessible for Russian-speaking users. Thanks to @Future998.
- Added proxy auth support so Headlamp can read authentication headers injected by middleware proxies for seamless cluster access. Thanks to @ageekymonk.
- Added dry-run preview for rollbacks, letting users inspect the resulting resource YAML before applying a rollout undo. Thanks to @alokdangre. Also thanks to @illume for reporting the issue.
- Added an AKS node upgrade visualization panel showing Cordon, Drain, Delete, Reimage, Complete progress for managed nodes. Thanks to @Jenniferyingni.
- Added RTL layout support and new locales for Arabic, Urdu, and Hebrew, with the UI direction switching automatically based on the selected language. Thanks to @mahmoodalisha.
- Completed missing Hindi translations for UI strings, ensuring users with a Hindi locale see a fully translated interface. Thanks to @mahmoodalisha.
- Added a batch scale action to the multi-select toolbar, letting users scale multiple Deployments, StatefulSets, or ReplicaSets at once. Thanks to @RajPrakash681.
- Added registerProjectApiResource() to the plugin API, enabling plugins to include custom CRDs in Project resource fetching. Thanks to @NAME-ASHWANIYADAV.
- Added a diagnostics section to Pod and workload detail pages that surfaces deterministic troubleshooting hints from Kubernetes status, events, and container data. Thanks to @Utkarshpandey0001.
- Added a Dry Run option to the YAML editor, letting users validate manifests against the Kubernetes API before applying them. Thanks to @Vikaspal8923.
- Made the Back button on the cluster authentication chooser keyboard-accessible by adding tab focus and Enter/Space key handling. Thanks to @YadavAkhileshh.
- Added missing French translations, improving UI localization coverage and keeping Kubernetes terms like "cluster" technically accurate. Thanks to @codeurluce.
- Integrated @typescript/native-preview for frontend type checking, cutting type-check time from ~18-20 seconds down to ~3-4 seconds. Thanks to @sniok.
- Advanced Search queries can now be saved to browser local storage and restored, renamed, or deleted from the toolbar. Thanks to @Utkarshpandey0001.
- Added a dedicated Job details view surfacing completions, parallelism, backoff limit, active/succeeded/failed counts, and more, replacing the generic workload view. Thanks to @beep-boopp.
- Added remark-gfm to the headlamp-plugin do-not-copy list to prevent it from being incorrectly bundled into plugin builds. Thanks to @illume.
- Added ReadHeaderTimeout and IdleTimeout to the backend HTTP server, reducing slow-request attack risk while keeping logs and WebSockets unaffected. Thanks to @ayushmaan-16.
- Helm chart now supports setting a default pod debug image via values, used as the fallback when no per-cluster override is configured. Thanks to @harrshita123.
- Events table on the cluster overview page now includes a Node column showing which node emitted each event. Thanks to @VijayabaskarR-06. Also thanks to @trashhead for reporting the issue.
- Job details view now includes a Logs button, letting you view logs from related pods without leaving the Job page. Thanks to @ChunyiLyu.
- Added a container query parameter to pod log and exec deep-links, letting users link directly to a specific container's logs or terminal. Thanks to @jordanly.
- Resource detail views now show additional fields matching kubectl describe output, including port info for NodePort services. Thanks to @joaquimrocha.
- Added a Create Deployment form to the UI, letting users create Deployments directly alongside the existing Pod creation workflow. Thanks to @vyncent-t.
- Helm repository add and update operations now support authentication fields including username, password, and TLS options for private repositories. Thanks to @Athang69.
- Added --default-light-theme and related CLI flags so administrators can configure the default UI theme at runtime based on OS preference. Thanks to @guillaumebernard84.
- Added Windows Arm64 desktop builds, expanding native platform coverage to Arm-based Windows devices. Thanks to @illume.
- Added Bengali language support to the frontend and translated technical Kubernetes jargon, improving localization for Bengali-speaking users. Thanks to @Pratik-050.
- Node List and Details views now show the node pool, with a new getNodePool() method on the node model and Nodes added as a source to the Cluster group in the resource map. Thanks to @illume.
- Added an opt-in Chromium remote debugging port to the Electron app, enabling devtools and MCP integrations. Thanks to @yolossn
- Added a kubeconfig secretreader example to the Helm chart, pinned the Cluster Inventory provider images, and allowed Cluster Inventory commands to run under plugin mounts. Thanks to @kahirokunn.
Added alpha support for ClusterProfile discovery via the Cluster Inventory API
Added RTL layout support and new locales for Arabic, Urdu, and Hebrew
Added an AKS node upgrade visualization panel
Added Russian language support to the frontend
Added proxy auth support for middleware proxies
Added a diagnostics section to Pod and workload detail pages
Job details view now includes a Logs button
Added a Create Deployment form to the UI
Added a dedicated Job details view
π Bug Fixes
- Switched macOS notarization back to electron-builder, combining codesign, notarize, and staple into a single step using APPLEID credentials. Thanks to @joaquimrocha.
- Fixed OIDC login failures when no custom CA cert is configured, so public providers like Entra ID, Okta, and Google now work correctly. Thanks to @beep-boopp. Also thanks to @muhammad9970 for reporting the issue.
- Fixed parseRam and parseDiskSpace silently dropping decimal portions (e.g., '289.9Mi'), so memory and disk quantities are now parsed accurately. Thanks to @WasThatRudy. Also thanks to @thehandsomezebra for reporting the issue.
- Fixed the Electron app on Linux and Windows to fully quit when the window is closed instead of continuing to run in the background. Thanks to @Mohammed-Thaha. Also thanks to @Hronom for reporting the issue.
- Fixed stale Pod status icons in the list view that stayed yellow/warning even after a Pod had passed its readiness checks. Thanks to @RustamSheoran. Also thanks to @vikash7485 for reporting the issue.
- Fixed the Helm chart release workflow failing when it attempted to push provenance files as gzipped archives. Thanks to @onedr0p. Also thanks to @joryirving for reporting the issue.
- Table rows-per-page selection is now saved to localStorage, so the preference persists across page refreshes. Thanks to @ChayanDass. Also thanks to @illume for reporting the issue.
- Fixed missing edges in the resource map when nodes move between cloud and namespace-specific views. Thanks to @gattytto.
- Fixed a crash that prevented Headlamp from loading on Firefox browsers by removing problematic i18n normalisation. Thanks to @DhairyaMajmudar.
- Fixed a data race on the portforward Status and Error fields by introducing a mutex and thread-safe accessors, improving port-forwarding stability. Thanks to @NAME-ASHWANIYADAV.
- Fixed broken plugin tests caused by removed ArtifactHub packages and a macOS-incompatible shebang, restoring reliable CI runs. Thanks to @skoeva.
- Helm chart now warns when image.tag is pinned during upgrades, preventing users from unknowingly running an outdated image after a chart update. Thanks to @ManthanNimodiya. Also thanks to @lyc0221 for reporting the issue.
- Backend HTTP transports now clone DefaultTransport when customizing TLS, preserving proxy support and connection timeouts that were previously silently dropped. Thanks to @beep-boopp.
- Fixed backend test failures on Windows by consistently using filepath.Join for all filesystem path operations. Thanks to @PrakharJain345.
- Fixed a React rules-of-hooks violation in ContainerEnvironmentVariables by moving hooks before the early return, eliminating potential rendering bugs. Thanks to @nidhi-9900. Also thanks to @illume for reporting the issue.
- Fixed failing daemonset snapshot tests in main to restore a passing CI build. Thanks to @illume.
- Fixed missing az and gh command support in runPlugin and added proper handling of child process error events. Thanks to @illume.
- Added unit tests for OpenTelemetry metrics initialization to verify that core metrics like RequestCounter and PluginLoadCount are correctly instantiated. Thanks to @CygnusMaximillian.
- Fixed the website trigger workflow to authenticate using GH_TOKEN, resolving failures in the gh api dispatch call. Thanks to @skoeva.
- Fixed useKubeObjectList to strip only the List suffix from kind names, preventing garbled names for resource types like Tekton's EventListener. Thanks to @sniok.
- Fixed a crash when typing partial YAML (e.g., a lone '-') under containers: in the Create Resource dialog, preventing a TypeError from taking down the whole app. Thanks to @WasThatRudy. Also thanks to @lucasgolino for reporting the issue.