Skip to content

Update image ghcr.io/home-operations/charts-mirror/headlamp (0.43.0 ➔ 0.44.0) - #2273

Merged
mav-bot[bot] merged 1 commit into
mainfrom
renovate/ghcr.io-home-operations-charts-mirror-headlamp-0.x
Jul 29, 2026
Merged

Update image ghcr.io/home-operations/charts-mirror/headlamp (0.43.0 ➔ 0.44.0)#2273
mav-bot[bot] merged 1 commit into
mainfrom
renovate/ghcr.io-home-operations-charts-mirror-headlamp-0.x

Conversation

@mav-bot

@mav-bot mav-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
ghcr.io/home-operations/charts-mirror/headlamp (source) minor 0.43.00.44.0

Release Notes

kubernetes-sigs/headlamp (ghcr.io/home-operations/charts-mirror/headlamp)

v0.44.0: 0.44.0

Compare Source

Need for speed! 🏎️ 💨  Headlamp 0.44.0 extends practical cluster support beyond 30,000 pods. Resource Map remains usable at this scale, Pod lists fetch 1,000 items at a time, Cluster Overview avoids unbounded watch traffic, and Brotli pre-compression reduces typical JavaScript and CSS transfers by 75-80% and server load for compression to 0%. Got dozens of clusters? Headlamp doesn't try to connect to all of them at startup anymore (potentially opening several browser login windows). Four new structured forms cover DaemonSets, CronJobs, Jobs, and ReplicaSets, while ConfigMap binaryData, ServiceAccount permission visibility, Gateway API v1.5.1, and new plugin controls expand day-to-day capabilities. The release includes 99+ bug fixes, including protections against white-screen startup failures when developing Headlamp on Windows, more accurate workload health reporting, stable large-manifest editing on large busy clusters, and actionable cluster connection errors. Accessibility work restores macOS zoom, improves WCAG AA contrast in a few spots, and broadens automated a11y checks. Security and documentation updates add github cosign of release checksums, safer redirects, tested in-cluster kubeconfig examples, and ready-to-use MCP configurations.

These changes were contributed by over 100+ people. Thanks! 🎉

⚡ Performance

ResourceMap performance improved with iterative BFS, graph simplification, and incremental WebSocket updates — 59% faster initial load and 86% faster updates at 2,000 pods, and clusters with 20,000+ pods are now usable where they previously crashed the browser. Thanks to @​illume. Also thanks to @​itpick for reporting the issue. #​4991
Cluster overview now polls pod, node, and event data every minute instead of using persistent watch streams, preventing browser OOMs on large clusters. Thanks to @​Aamod007. Also thanks to @​lucas-jackson for reporting the issue. #​6021
Optimized sidebar rendering to eliminate UI lag and main thread blocking caused by unnecessary DOM nodes and layout thrashing during CSS transitions. Thanks to @​Psykii22. #​6233
Frontend and plugin static assets are now precompressed with Brotli and served as .br sidecars — JS/CSS bundles are 75–80% smaller over the wire, WASM assets ~60% smaller, and runtime CPU compression overhead drops to zero. Thanks to @​illume. #​6004
Fixed a memory leak where Backstage receiver event listeners accumulated on each remount of the Home component, improving stability during navigation. Thanks to @​Rohith-Saran. #​5775
Fixed unbounded memory growth in OIDC login by evicting abandoned state tokens that were never cleaned up when users left the login flow. Thanks to @​ayushmaan-16. #​5866
Reduced per-message memory allocations in the WebSocket multiplexer hot path by replacing reflection-based decoding and fmt.Sprintf with typed structs and string concatenation. Thanks to @​Slambot01. #​6294
Reduced memory allocations in the k8cache hot path by checking error status before marshalling and replacing fmt.Sprintf with string concatenation, improving cache performance. Thanks to @​Slambot01. #​6420
Replaced repeated linear metrics searches with a memoized namespace/name-keyed Map in the Pod List, reducing CPU overhead during metric lookups. Thanks to @​skools-here. #​6011
Added pagination to the Pods list with a 1000-item budget and a load-more button, preventing out-of-memory crashes on clusters with tens of thousands of pods. Thanks to @​drewbailey. #​5660
ResourceMap performance improved with iterative BFS, graph simplification, and incremental WebSocket updates.

20,000+ pods — all operations under 37ms, where previously the browser would crash:

Resource Map showing 20,000+ pods with all operations under 37ms
Added pagination to the Pods list with a 1,000-item budget and a load-more button, preventing out-of-memory crashes on clusters with tens of thousands of pods.
Pod list showing 1,000 of ~35,600 pods with a Load more button lots of pods





📱 Mobile

A mobile audit was done, and a number of improvements were made.

Tables now hide least-important columns first on narrow viewports instead of squashing them, keeping visible data readable at high zoom levels. Thanks to @​skoeva. #​6468
Fixed several mobile UI issues including overflow-menu, dialog, terminal, editor, and temporary-sidebar behaviour, making the interface more reliable on small screens. Thanks to @​illume. #​5739
Tables now hide least-important columns first on narrow viewports instead of squashing them.
Resource table keeping important columns readable on a narrow viewport
Mobile overflow menus and terminal dialogs now use the available screen space more effectively.
Mobile overflow menu with labelled Settings and Account actions Full-screen terminal dialog using the available mobile viewport





✨ Enhancements (part 1 of 2)

Administrators can now set a custom default node shell image via a --node-shell-image flag and Helm value, useful for airgapped or restricted deployments. Thanks to @​aryanraj45. #​6056
The ServiceAccount detail page now lists all RoleBindings and ClusterRoleBindings that reference the account, making it easy to audit granted permissions. Thanks to @​sudhidutta7694. Also thanks to @​jcpunk for reporting the issue. #​6040
Added a structured creation form for DaemonSets, letting users create DaemonSet resources through the UI form alongside the existing YAML editor. Thanks to @​vyncent-t. #​6514
Added a structured CreateCronJobForm for CronJob resources, letting users configure schedule, time zone, concurrency policy, and job template fields through the UI. Thanks to @​vyncent-t. #​6422
Added a structured create form for Job resources with field validation, reusable metadata fields, and a new boolean/checkbox field type. Thanks to @​vyncent-t. #​6343
In-cluster context name is now automatically derived from the kubeadm-config ConfigMap, removing the need to manually set --in-cluster-context-name. Thanks to @​Anjali-Chauhan1. Also thanks to @​jcpunk for reporting the issue. #​6342
Added support for the binaryData field in ConfigMap detail and list views, so binary entries are now displayed, editable, and counted alongside data. Thanks to @​dabico. #​6264
Node debugger settings now show the actual default Docker image and namespace as dynamic placeholders, matching backend configuration including custom overrides. Thanks to @​dabico. #​6253
Added Arabic, Hebrew, and Russian localizations to the data table component so users of those languages see correctly translated table UI strings. Thanks to @​Priyanshu-rgbb. #​6226
YAML syntax errors in EditorDialog now display a red squiggly underline at the exact line and column, making it easier to spot and fix invalid YAML before applying. Thanks to @​Psykii22. #​5954
Added support for the binaryData field in ConfigMap detail and list views, so binary entries are now displayed, editable, and counted alongside data.
ConfigMap detail view showing binaryData field alongside data
Added a structured creation form for DaemonSets, letting users create DaemonSet resources through the UI form alongside the existing YAML editor.
DaemonSet structured creation form
YAML syntax errors in EditorDialog now display a red squiggly underline at the exact line and column, making it easier to spot and fix invalid YAML before applying.
Monaco editor showing red squiggly underline on YAML syntax error





✨ Enhancements (part 2 of 2)

Headlamp now auto-connects only to recently-used clusters on startup, avoiding slow or disruptive credential prompts for users with many clusters in their kubeconfig. Thanks to @​skoeva. #​6169
Added a --node-shell-namespace flag and Helm value so admins can configure the namespace used for node shell pods instead of defaulting to 'default'. Thanks to @​aryanraj45. #​6072
Added a structured create form for ReplicaSets with Metadata, Spec, and Pod Template sections, so users no longer need to write raw YAML to create one. Thanks to @​vyncent-t. #​5995
Added 100 as a rows-per-page option in resource tables, reducing the number of paginations needed when browsing namespaces with more than 50 resources. Thanks to @​ibshafique. #​5971
Added a color-coded usage progress bar to the ResourceQuota detail view, making it easy to spot quota pressure at a glance. Thanks to @​beep-boopp. #​5875
Added a desktop setting to optionally hide the system tray icon, giving users who prefer no tray presence an easy opt-out. Thanks to @​VlatkoMilisav. #​5754
Added a tooltip disclaimer next to Events tables explaining Kubernetes Event retention lifetime, helping users understand why older events may disappear. Thanks to @​dabico. #​5531
Headlamp now auto-connects only to recently-used clusters on startup, avoiding slow or disruptive credential prompts for users with many clusters in their kubeconfig.
Home page showing only recently-used clusters
Added a color-coded usage progress bar to the ResourceQuota detail view, making it easy to spot quota pressure at a glance.
ResourceQuota detail view with color-coded usage progress bar
Added a structured CreateCronJobForm for CronJob resources, letting users configure schedule, time zone, concurrency policy, and job template fields through the UI.
CronJob structured creation form
Added a tooltip disclaimer next to Events tables explaining Kubernetes Event retention lifetime, helping users understand why older events may disappear.
Events table with retention lifetime tooltip





🐞 Bug fixes (part 1 of 11)

Headlamp desktop now only terminates its own user's headlamp-server processes, preventing one user on a shared machine from killing another user's backend. Thanks to @​Aamod007. Also thanks to @​lombardialess for reporting the issue. #​6522
Resolved known npm dependency vulnerabilities across all packages by applying npm audit fixes. Thanks to @​yolossn. #​6671
Fixed the active tab highlight in NavigationTabs so tabs like Network Policies are correctly selected when hidden sidebar items are filtered out. Thanks to @​Adii-45. #​6251
Fixed port forwarding list appearing empty for dynamically added clusters by returning the correct cluster name instead of the internal user-suffixed cache key. Thanks to @​Athang69. Also thanks to @​ondrab1 for reporting the issue. #​6188
Fixed the Pods overview chart always showing 100% running by correctly reflecting pods in Error, CrashLoopBackOff, Pending, and other non-running states. Thanks to @​xonas1101. #​6114
Stale Kubernetes API responses and authorization clientsets are now purged immediately when a kube context is removed, preventing stale data from being served. Thanks to @​Pragati5-DEBUG. #​6113
StorageClass list no longer shows undefined in the Allow Volume Expansion column — the cell now displays Yes/No or remains empty when the field is absent. Thanks to @​dabico. #​6308
Added service.appProtocol support to the Headlamp Helm chart, fixing WebSocket and Gateway API compatibility issues with Kubernetes ingress routing. Thanks to @​cgiraldo. #​6049
StorageClass list no longer shows undefined in the Allow Volume Expansion column — the cell now displays Yes/No or remains empty when the field is absent.
StorageClass list with Yes/No in Allow Volume Expansion column





🐞 Bug fixes (part 2 of 11)

API discovery errors and fallbacks are now logged instead of silently swallowed, making it easier to diagnose why legacy discovery paths are being taken. Thanks to @​WasThatRudy. Also thanks to @​krsatyamthakur-droid for reporting the issue. #​6033
Helm chart env values schema now supports valueFrom (secretKeyRef, configMapKeyRef, fieldRef), enabling Kubernetes-native secret and config injection for Headlamp deployments. Thanks to @​Athang69. Also thanks to @​The-Judge for reporting the issue. #​6002
Fixed cache middleware crashing with 'invalid url format' on non-API cluster paths like /healthz, so proxied apiserver endpoints are handled correctly. Thanks to @​Nabsku. #​5798
Improved hook memoization and lazy initialization in ResourceTable settings, resolving React hook warnings without changing table behavior. Thanks to @​kishore08-07. #​5790
Added full support for Kubernetes Gateway API v1.5.1, including BackendTLSPolicy, GRPCRoute, and ReferenceGrant graduating to the Standard channel. Thanks to @​YotamKorah. #​5395
Fixed a race condition in kubeconfig WriteToFile that caused data corruption or missing files when concurrent calls occurred within the same second. Thanks to @​KumarADITHYA123. #​5309
Metrics unavailability (timeouts, CrashLoopBackOff, etc.) now correctly shows a 'metrics unavailable' state instead of silently displaying 0% CPU and memory usage. Thanks to @​Shreya2005-2005. #​5238
Guarded against undefined uid and name in search filtering, preventing a crash when resources with incomplete metadata appear in the list. Thanks to @​krsatyamthakur-droid. #​6680
Updated outdated frontend packages across app, headlamp-plugin, pluginctl, eslint-config, and i18n tooling to improve compatibility and security. Thanks to @​illume. #​6679
Fixed a failing cluster snapshot test on the main branch introduced by a recent merge. Thanks to @​illume. #​6665





🐞 Bug fixes (part 3 of 11)

Images embedded as raw HTML in GitHub release notes now render correctly in the Release Notes dialog instead of being silently dropped. Thanks to @​Pragati5-DEBUG. Also thanks to @​skoeva for reporting the issue. #​6642
Fixed the desktop e2e suite so all tests pass reliably and no longer corrupt the developer's kubeconfig on each run. Thanks to @​unlikelyzero. #​6641
Fixed the DataField editor collapsing to 5px at non-100% browser zoom levels by calculating container height in React instead of via imperative DOM mutations. Thanks to @​bhuvan-somisetty. Also thanks to @​hxl9654 for reporting the issue. #​6619
Fixed a crash on the Secrets list page caused by corrupt localStorage JSON for the 'Hide Helm Secrets' toggle, replacing the unguarded parse with safe fallback handling. Thanks to @​Aamod007. #​6526
Fixed a white-screen-on-boot caused by corrupt notifications localStorage JSON being parsed before any error boundary mounted, so the app now loads normally instead of crashing. Thanks to @​Aamod007. #​6524
Enforced minimum Vitest coverage thresholds for the frontend suite so CI automatically catches real regressions in statements, branches, functions, and lines. Thanks to @​rootp1. #​6486
Images embedded as raw HTML in GitHub release notes now render correctly in the Release Notes dialog instead of being silently dropped.
Release Notes dialog rendering HTML images from GitHub releases





🐞 Bug fixes (part 4 of 11)

Added a nil-error guard in the backend handleError helper to prevent a panic when a nil error is accidentally passed by any of its callers. Thanks to @​vtushar06. #​6437
Fixed a regression where searching for a namespace name flooded results with every resource in that namespace; the 'Set namespace' shortcut now appears correctly and only once. Thanks to @​Priyanshu-rgbb. #​6432
Fixed MULTI_HOME_ENABLED always evaluating to true, so setting REACT_APP_MULTI_HOME_ENABLED=false now correctly disables the Multi Home feature. Thanks to @​ssz2605. #​6424
Cluster rename via kubeconfig now returns an explicit error when the target context is missing, preventing silent failures that left state unchanged. Thanks to @​rootp1. #​6415
Fixed metricTargetValue() in HPA to correctly display 0% for zero averageUtilization values and ensure all metric types are evaluated properly. Thanks to @​skools-here. #​6412
Fixed typos in platform and contributing docs and updated Node.js/npm version prerequisites in plugin tutorials to match current package.json requirements. Thanks to @​Harsh63870. #​6408
Reformatted the Desktop App dependency list in the architecture docs as a Markdown bullet list, improving readability. Thanks to @​kunaldevsahu. #​6384
Fixed a typo in the CronJob list's lastScheduleTime accessor so the Last Schedule column can now be sorted and filtered correctly. Thanks to @​skools-here. #​6383
Fixed a regression where searching for a namespace name flooded results with every resource in that namespace; the 'Set namespace' shortcut now appears correctly and only once.
Global search showing only the Set namespace shortcut for a bare namespace query





🐞 Bug fixes (part 5 of 11)

Fixed a stale WebSocket subscription in useKubeObject when navigating between resources of the same kind, ensuring live updates reflect the correct resource. Thanks to @​Adii-45. #​6345
Fixed PortForward tooltip translation, added secure rel attributes to external links, and hardened localStorage parsing to prevent crashes or UI desync on failures. Thanks to @​KumarADITHYA123. #​6341
Wrapped recentClusters localStorage reads in try/catch to prevent app startup crashes when stored data is corrupted or unreadable. Thanks to @​Kakumanu-Harshitha. #​6310
Guarded useLocalStorageState against corrupted data and QuotaExceededError, preventing blank-screen crashes across 13 components that rely on it. Thanks to @​Kakumanu-Harshitha. #​6307
Fixed frontend test failures on Node.js 24 caused by an AbortSignal incompatibility between jsdom, nock, and the native Request implementation. Thanks to @​vanshika2720. #​6299
Hardened loadTableSettings and storeTableSettings against corrupt localStorage data, preventing blank-screen crashes on all resource list views. Thanks to @​Kakumanu-Harshitha. #​6298
Fixed duplicate HTML id attribute in TimezoneSelect Autocomplete to prevent conflicts when both TimezoneSelect and Chooser are rendered on the same page. Thanks to @​Priyanshu-rgbb. #​6281





🐞 Bug fixes (part 6 of 11)

Fixed parseCpu() to use parseFloat so decimal CPU values like 0.5 or 1.5 cores are parsed correctly instead of being silently truncated. Thanks to @​xonas1101. #​6259
Fixed 'Phase: undefined' display in the Project Resources tab by falling back to 'Unknown' when a pod's phase is not yet reported. Thanks to @​krsatyamthakur-droid. #​6257
Fixed Job detail page incorrectly showing Duration: 0s for still-running jobs; the duration row is now hidden until the job completes. Thanks to @​xonas1101. #​6237
Fixed a nil pointer dereference panic in OidcConfig() when AuthInfo is nil, preventing crashes during token-based or unresolved-user authentication. Thanks to @​Anjali-Chauhan1. #​6235
Replaced bare fmt.Println calls in backend startup with structured logging so startup messages are now captured consistently by the logger. Thanks to @​Rucha0901. #​6224
Fixed the YAML/JSON editor scrolling back to the top on validation errors, so users editing large manifests no longer lose their position while typing. Thanks to @​krsatyamthakur-droid. Also thanks to @​prisha-sh for reporting the issue. #​6209
Cluster connection warning bar is now dismissible, shows the real failure reason with an actionable link, and no longer overlaps window controls. Thanks to @​Anjali-Chauhan1. Also thanks to @​rnc for reporting the issue. #​6206
Fixed a crash in Chrome when the system timezone resolves to an unrecognized identifier like Etc/Unknown, preventing a RangeError on affected Linux systems. Thanks to @​bhuvan-somisetty. Also thanks to @​adriansev for reporting the issue. #​6204
Fixed a React hooks violation in CreateNamespaceButton by deriving validation state during render instead of via useEffect, eliminating the stale-state bug. Thanks to @​Shahazadi-Shaguftha-Syed. #​6192
Fixed Jobs, CronJobs, and JobSet overview charts that were always stuck at 100% healthy by adding correct status logic for workloads without replica fields. Thanks to @​xonas1101. #​6185
Cluster connection warning bar is now dismissible, shows the real failure reason with an actionable link, and no longer overlaps window controls.
Dismissible cluster connection warning bar with failure reason and settings link





🐞 Bug fixes (part 7 of 11)

Fixed OIDC login 404s in local dev by correcting the proxy path from /auth to /auth/, and enforced LF line endings for TS/JS/JSON files. Thanks to @​kjosh-bcvmw. #​6184
Fixed a crash when loading kubeconfigs containing non-Latin1 characters (e.g. Chinese cluster names) by replacing btoa() with UTF-8-safe base64 helpers. Thanks to @​Anjali-Chauhan1. Also thanks to @​youngledo for reporting the issue. #​6178
Fixed the Activity tab title for workload logs so it is now properly localized instead of always showing a hardcoded English 'Logs: ' prefix. Thanks to @​Adii-45. #​6171
Container status tooltips in the Pods list are now translated and respect the user's configured timezone instead of always showing English text and UTC times. Thanks to @​krsatyamthakur-droid. #​6168
Fixed a translation key case mismatch in LogsButton so the correct localized string is now displayed. Thanks to @​srajang1805. #​6163
Fixed broken frontend snapshot tests on main caused by a merge conflict with outdated snapshots. Thanks to @​illume. #​6160
Fixed a variable name typo (namepsacenamespace) and removed dead commented-out code in NodeShellAction with no functional changes. Thanks to @​srajang1805. #​6159
Added optional chaining to KubeObject subclasses so the UI gracefully handles incomplete Kubernetes object data instead of throwing TypeErrors. Thanks to @​Psykii22. #​6145
Fixed a typo in the node drain status error message ('repsone' → 'response') for clearer error reporting. Thanks to @​Rucha0901. #​6141





🐞 Bug fixes (part 8 of 11)

Isolated TestDynamicClustersKubeConfig to a temp directory so test runs no longer pollute the user's real Headlamp config. Thanks to @​Athang69. Also thanks to @​sniok for reporting the issue. #​6136
Fixed a spelling mistake ('listernerApi' → 'listenerApi') in headlampEventSlice for cleaner, more readable code. Thanks to @​rutujdhawale. #​6131
Fixed a cache-key collision in k8cache by percent-encoding literal '+' characters so the '+' delimiter is no longer ambiguous with field content. Thanks to @​sid200727. #​6127
Fixed a Storybook startup failure caused by a circular dependency on Node story helpers, allowing all stories to load correctly. Thanks to @​mahesh-09-12. #​6126
Replaced loose any typing on DocsViewer's docSpecs prop with a strict type, improving type safety and editor autocompletion. Thanks to @​r0hansaxena. #​6098
Fixed the CRD Details Versions table incorrectly showing the storage value in the Served column instead of the served value. Thanks to @​mahesh-09-12. #​6095
Fixed a rules-of-hooks violation in AuthVisible that could cause unexpected behavior by ensuring all hooks run before any early returns. Thanks to @​therealharshit. Also thanks to @​illume for reporting the issue. #​6092
Centralized the hardcoded backend base URL into a single API_BASE constant across Storybook stories, making future URL changes a one-line update. Thanks to @​xonas1101. #​6088
Wrapped hardcoded English strings on the Custom Resource Instances page with i18n so they are now correctly translated with the rest of the UI. Thanks to @​krsatyamthakur-droid. #​6087





🐞 Bug fixes (part 9 of 11)

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/London)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@mav-bot

mav-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

konflate — summary

Note

+0 added · 2 changed · −0 removed — 2 resources · 2 apps

Tip

Routine — only container-image and chart-version changes; nothing else changed.

Image changes

image from to
ghcr.io/headlamp-k8s/headlamp v0.43.0 v0.44.0

konflate · rendered 33009ed · advisory, not a gate

@github-actions github-actions Bot added the area/kubernetes Changes made in Kubernetes directory. label Jul 29, 2026
@mav-bot

mav-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author
HelmRelease diff
@@ spec.template.spec.containers.headlamp.image @@
# apps/v1/Deployment/observability/headlamp
! ± value change
- ghcr.io/headlamp-k8s/headlamp:v0.43.0
+ ghcr.io/headlamp-k8s/headlamp:v0.44.0

Generated for 33009ed · workflow run

@mav-bot

mav-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author
Kustomization diff
@@ spec.ref.tag @@
# source.toolkit.fluxcd.io/v1/OCIRepository/observability/headlamp
! ± value change
- 0.43.0
+ 0.44.0

Generated for 33009ed · workflow run

@mav-bot
mav-bot Bot merged commit ea6245c into main Jul 29, 2026
8 checks passed
@mav-bot
mav-bot Bot deleted the renovate/ghcr.io-home-operations-charts-mirror-headlamp-0.x branch July 29, 2026 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants