✨ Enhancements
- Implement rollback for Deployment, DaemonSet, StatefulSet. Including to specific revision and Revision history view. Thanks to @alokdangre
- Add multi-cluster user logout. Thanks to @alokdangre
- Enable cluster deletion in browser. Thanks to @alokdangre
- Display environment variables for containers in pod details views. Thanks to @gambtho
- Added Toggle Switch to filter helm secrets. Thanks to @mudit06mah
- Add session-ttl flag and logic. Thanks to @mudit06mah
- Allow OIDC cookies when in-cluster is false via flag. Thanks to @beep-boopp
- Add MCP server support for plugins including the ai-assistant. Thanks to @illume
- Add support for traefik or any reverse proxy handling auth through middlewares. Thanks to @ageekymonk
🐞 Bug Fixes
- Fix flaky PodDetailsView Storybook test. Thanks to @mahmoudmagdy1-1
- Fix ARIA menu role in ClusterChooserPopup. Thanks to @mahmoudmagdy1-1
- Correct aria attributes in ShowHideLabel component. Thanks to @greedy-wudpeckr
- Fix PluginSettings heading hierarchy. Thanks to @greedy-wudpeckr
- Fix a11y roles in ClusterChooserPopup for screen readers. Thanks to @mahmoudmagdy1-1
- Fix alignment in narrow layouts for NameValueTable. Thanks to @mahmoudmagdy1-1
- Fixed ignored k8cache error handling. Thanks to @greedy-wudpeckr
- Add crossorigin to manifest link. Thanks to @zyzzmohit
- Fix age column sorting in ObjectEventList. Thanks to @greedy-wudpeckr
- Auto-detect platform for Apple Silicon Macs. Thanks to @Mandalorian7773
- Add translatable aria-label fallback to Loader for screen readers. Thanks to @mastermaxx03
- Ensure complementary landmark has valid label in Activity. Thanks to @mastermaxx03
- Fix new project heading a11y issue. Thanks to @vyncent-t
- Default to init container if main container not yet running. Thanks to @mastermaxx03
- Add responsive width to ConfirmDialog. Thanks to @ChayanDass
- Fix alignment name and button in clusterRename. Thanks to @ChayanDass
- Remove inert property from Sidebar. Thanks to @sniok
- Populate empty DialogTitle in AuthTypeoidc story. Thanks to @CODEAbhinav-art
- Wrap MenuItem in MenuList for RestartMultipleButton. Thanks to @Vaishnav-Dhaval
- Add dialog title to HaveClusters story. Thanks to @CODEAbhinav-art
- Add missing properties to HeadlampTables interface. Thanks to @pallava-joshi
- Correct broken cluster settings navigation. Thanks to @emmanuel-ferdman
- Remove empty h1 from ClusterDialog. Thanks to @aravind4799
- Fix narration for Default Namespace in SettingsCluster. Thanks to @vyncent-t
- Disable close on select in PureNamespaceAutocomplete. Thanks to @YotamKorah
- Cascade delete Pods when deleting Jobs. Thanks to @beep-boopp
- Fix cluster rename bug for clusters with special characters. Thanks to @StevenPG
- Avoid invalid field selector for pod metrics. Thanks to @wingerx
- Persist rows-per-page selection to localStorage on change in Table. Thanks to @Trulsaa
- Preserve original URL after OIDC authentication. Thanks to @justinas-wix
- Fix scheme conversion and logging in multiplexer. Thanks to @illume
- Stop watcher goroutines on server shutdown. Thanks to @zyzzmohit
- Fix picking the hash for chocolatey version bump. Thanks to @joaquimrocha
- Fix showing corrupt file on Mac. Thanks to @mastermaxx03
- Add make cluster list scrollable to improve usability for keyboard users. Thanks to @mahmoudmagdy1-1
💻 Development
- Support apiGroup + kind for registerKindIcon. Thanks to @aadhil2k4
- Update app, backend, frontend, headlamp-plugin dependencies. Thanks to @skoeva
- Move HeadlampConfig to headlampconfig package. Thanks to @krrish-sehgal
- Add update and delete coverage to informer tests for k8cache. Thanks to @ChayanDass
- Refactor ts: made customResourceDefinition optional in CRClassArgs. Thanks to @pallava-joshi
- Lift up tableSettings helpers and add localStorage to ClusterTable. Thanks to @StevenPG
- Fix translations by using fs-backend with frontend locales path. Thanks to @sniok
- Replace execSync with execFileSync in headlamp-plugin/scripts. Thanks to @skoeva
- Fix delete error handling to show correct success/failure messages. Thanks to @gambtho
- Bundle source with esbuild, upgrade to vitest. Thanks to @sniok
- Refactor NavigationTabs component so it doesn't require cloning. Thanks to @sniok
- Add .cmd shim for Windows to headlamp-plugin. Thanks to @skoeva
- Add tests and stories for AuthToken Component. Thanks to @aravind4799
- Add test for terminal.tsx file. Thanks to @ChayanDass
- Add Storybook stories for ResourceTableColumnChooser. Thanks to @mastermaxx03
- Add stories for SettingsClusters and SettingsCluster. Thanks to @greedy-wudpeckr
- Add test for LogsButton.tsx file. Thanks to @aravind4799
- Provide automatic aria-labelledby for Dialog accessibility. Thanks to @mastermaxx03
- Update Terminal snapshots. Thanks to @mastermaxx03
- headlamp-plugin: Bump to 0.13.1
📖 Documentation
- Add documentation for Oracle K8s Engine support. Thanks to @jaiakash
- Add OpenUnison configuration guide. Thanks to @mlbiam
- Add many more plugin development tutorials including for List and Detail views. Thanks to @yolossn
- Fix some typos in contributing guide. Thanks to @gmarav05
Container image: 🐳 ghcr.io/headlamp-k8s/headlamp:v0.41.0
Desktop Apps:
🐧 Flatpak / Linux (AMD64)
🐧 Linux AppImage AMD64, ARM64, ARMv7l
🐧 Linux Tarball AMD64, ARM64, ARMv7l
🐧 Debian / Linux AMD64
🍏 Mac (AMD64)
🍏 Mac (ARM/M1)
🟦 Windows (AMD64)