Releases: Azure/aks-desktop
Release list
v0.9.0
AKS Desktop v0.9.0 improves multi-tenant Azure support, upgrades the AI Assistant preview, introduces privacy-conscious usage telemetry controls, and moves the underlying Headlamp experience to version 0.43.
✨ Highlights
Multi-tenant AKS cluster registration
AKS Desktop now supports selecting an Azure tenant before selecting a subscription when registering an AKS cluster.
- Subscriptions are filtered to the selected tenant, making it easier to find clusters across multi-tenant Azure environments.
- When all available subscriptions belong to one tenant, that tenant is selected automatically.
- Changing the tenant resets the subscription and cluster selections to prevent mismatched registrations.
- Tenant information is obtained from the existing subscription lookup, so this does not add another Azure CLI request.
Added in #733.
AI Assistant 0.3.0-alpha (Preview)
The AI Assistant preview has been upgraded to the shared Headlamp AI Assistant 0.3.0-alpha implementation, bringing a more extensible foundation for Kubernetes troubleshooting and natural-language cluster management.
- Adds Holmes Agent mode, allowing AKS Desktop to connect to a HolmesGPT agent running in a cluster for enhanced Kubernetes diagnostics.
- Adds desktop support for Model Context Protocol (MCP) servers, including configuration through a form or JSON editor, automatic tool discovery, per-tool enablement, input schema visibility, usage statistics, and bulk enable or disable actions.
- Expands model provider support with DeepSeek and OpenAI-compatible endpoints, alongside OpenAI, Azure OpenAI, Anthropic, Mistral, Gemini, and local models through Ollama.
- Retains context-aware cluster questions, Kubernetes resource generation, log interpretation, and configuration analysis through the updated shared AI UI and runtime.
- Restores localized AI Assistant catalogs for supported languages.
- Hardens secret redaction, HTML and URL handling, untrusted input parsing, filenames, endpoint normalization, and MCP state handling.
- Uses the canonical
@headlamp-k8s/ai-assistantpackage identity so Electron command permissions are granted only to the expected plugin package.
The AI Assistant remains an alpha preview. Using external model providers may require API credentials and may incur provider charges.
Implemented in #770, with the supporting Headlamp package identity and permission changes in #768.
Anonymous usage telemetry and controls
Anonymous product usage telemetry has been restored with additional privacy safeguards.
- Telemetry uses a fixed set of typed, sanitized events for application usage, enabled plugins, feature usage, errors, and general cluster characteristics.
- Automatic request, cookie, route, and browser exception collection is disabled.
- Cluster information is limited to generalized values such as Kubernetes version, Azure region, service tier, and bucketed node or namespace counts.
- A pseudonymous installation identifier is used to distinguish installations without collecting user identity.
- A final privacy scrubber removes unsafe filesystem paths, URLs, identifiers, route values, IP or geolocation fields, and exception data before telemetry is sent.
- Initial lifecycle telemetry is limited to AKS project creation or import and application deployment workflows.
- Telemetry is enabled by default and can be disabled under Settings → Plugins → AKS Desktop → Send anonymous usage data.
- Changes to the telemetry setting take effect after restarting AKS Desktop.
Implemented in #718, with follow-up fixes in #745 and additional privacy hardening in #773.
Headlamp 0.43 foundation
AKS Desktop now incorporates the Headlamp 0.43 codebase, bringing a large set of Kubernetes UI, accessibility, and reliability improvements.
Notable additions include:
- Node upgrade visualization showing progress through cordon, drain, delete, reimage, and completion stages.
- Workload diagnostics on Pod and workload detail pages, providing troubleshooting hints based on status, events, and container information.
- Dry-run support for validating YAML changes and previewing workload rollbacks before applying them.
- Batch scaling for multiple Deployments, StatefulSets, or ReplicaSets.
- Saved Advanced Search queries, including support for restoring, renaming, and deleting saved searches.
- A dedicated Job details view with status information and direct access to related Pod logs.
- A new form for creating Deployments directly from the UI.
- Node pool information in Node list and detail views.
- Node information in the cluster overview Events table.
- Additional resource details matching information commonly shown by
kubectl describe.
See the Headlamp 0.43 release notes for the complete upstream list.
🐞 Fixes and reliability improvements
The Headlamp update also includes numerous fixes that improve everyday cluster management:
- Resource updates now use JSON Patch, reducing
409 Conflicterrors when editing frequently changing resources such as HPAs. - Fixed crashes when entering incomplete YAML in the resource creation dialog.
- Fixed stale Pod status indicators after readiness checks complete.
- Fixed resource-map loading and rendering issues, including missing relationships and unsupported Gateway API filters.
- Improved Job and DaemonSet log access.
- Fixed memory and subscription leaks in log viewing, WebSocket handling, OAuth, node draining, and port forwarding.
- Improved OIDC compatibility, including authentication with public providers such as Microsoft Entra ID when no custom CA is configured.
- Improved cluster chooser search and keyboard navigation.
- Table pagination preferences and Pod log formatting preferences now persist between sessions.
- Improved screen-reader announcements for empty tables and several other keyboard and high-zoom accessibility scenarios.
- Fixed error and warning icons in Project resource views.
- Fixed startup failures caused by malformed settings stored in local storage.
- Improved Windows path handling and application shutdown behavior on Windows and Linux.
The Headlamp fork was rebased onto version 0.43 in #741, with downstream compatibility and build fixes in #756.
🔧 Build and dependency updates
- Updated the backend build to Go 1.26 to match the upgraded Headlamp backend requirements in #762.
- Updated
actions/checkoutfrom 6.0.3 to 7.0.0 in #738. - Updated
actions/setup-gofrom 6.4.0 to 6.5.0 in #742. - Updated
step-security/harden-runnerfrom 2.19.4 to 2.20.0 in #758. - Updated
@types/nodefrom 25.8.0 to 26.0.0 in #739. - Updated
lint-stagedfrom 17.0.7 to 17.0.8 in #743. - Updated
tsxfrom 4.22.3 to 4.22.4 in #708.
Full Changelog: v0.8.0...v0.9.0
v0.8.0
- insights-plugin: bump to v0.2.8 by @eiffel-fl in #724
- Dependency updates
- build(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #720
- build(deps-dev): bump lint-staged from 17.0.5 to 17.0.7 by @dependabot[bot] in #709
- build(deps): bump github/codeql-action from 4.36.0 to 4.36.2 by @dependabot[bot] in #719
- build(deps-dev): bump knip from 6.14.2 to 6.16.1 by @dependabot[bot] in #707
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Enhancements
- Fetch Azure Role Assignments for the Access tab in managed projects (#511)
- Add fast path deployment pipeline (#598)
- Reduce Copilot agent prompt size and surface token-limit failures (#620)
- Redesign InfoTab UI with shared components (#539)
- Refactor MetricsTab and MetricsCard to separate presentation from logic (#273)
- Improve metrics accessibility on resize (#543)
- Clarify target port label in DeployWizard (#658)
- Add Insights plugin documentation (#560)
Insights GPU tab
Bug Fixes
- Fix deploy manifest being cut off (#636)
- Fix project deletion for non-ARM managed projects (#513)
- Retain namespace labels on managed namespace update (#655)
- Require namespace context in InfoTab (#657)
- Fix text color for AKS logo (#517)
- Fix selected source icon contrast in DeployWizard (#593)
- Fix link to AKS Managed Namespaces documentation (#600)
- Pin kubelogin version and fix agent template CI configuration (#563)
Development
- Extract hooks, add docs and tests for AzureProfilePage (#611)
- Extract hooks, add docs, tests, and stories for BasicsStep (#601)
- Extract hook, add docs and tests for LogsTab (#592)
- Extract shared EmptyStateCard component (#609)
- Run plugin tests only when code changes in CI (#595)
- Split, deduplicate, and speed up accessibility tests (#602)
- Optimize vitest test configuration (#596)
- Add missing
getSubscriptionsmock in ImportAKSProjects test (#522) - Enforce LF line endings for shell scripts (#521)
- Update Headlamp to build with telemetry privacy hardening (#627)
- Bump Insights plugin to v0.2.6 (#698)
- Bump Insights plugin to v0.2.5 (#662)
- Bump
typescriptfrom 5.9.3 to 6.0.3 (#605) - Bump
yaml,undici,flatted,picomatch,terser-webpack-plugin, andstorybookacross plugins (#558) - Bump
langsmithfrom 0.5.4 to 0.5.20 in ai-assistant (#583, #599) - Bump
vitefrom 6.4.1 to 6.4.2 across plugins (#572, #573, #578) - Bump
knipfrom 5.85.0 to 6.14.2 (#569, #588, #606, #613, #686) - Bump
flattedfrom 3.3.3 to 3.4.2 in ai-assistant (#577) - Bump
@types/nodefrom 25.3.5 to 25.8.0 (#570, #589, #653, #669) - Bump
tsxfrom 4.21.0 to 4.22.3 (#687) - Bump
lint-stagedfrom 16.3.2 to 17.0.5 (#666) - Bump
actions/setup-nodefrom 6.3.0 to 6.4.0 (#608, #633) - Bump
actions/setup-gofrom 6.3.0 to 6.4.0 (#549) - Bump
actions/upload-artifactfrom 7.0.0 to 7.0.1 (#587) - Bump
actions/github-scriptfrom 8.0.0 to 9.0.0 (#586)
Documentation
Security
- Bump
step-security/harden-runnerfrom 2.15.1 to 2.19.4 (#568, #585, #604, #612, #665, #685) - Bump
github/codeql-actionfrom 4.32.6 to 4.36.0 (#547, #607, #654, #667, #683) - Bump
lodashfrom 4.17.23 to 4.18.1 across plugins to address known prototype pollution vulnerabilities (#575, #576, #579) - Bump
postcssacross plugins to address known ReDoS vulnerability (#628, #629, #614)
New Contributors
- @mayasingh17 made their first contribution in #560
- @mqasimsarfraz made their first contribution in #600
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- Fix multi-tenant auth by threading tenant ID into kubeconfig exec plugin by @gambtho in #502
- Deploy: Add secrets, workload identity, ACR support, and fix identity role assignments by @gambtho in #468
- aksd: DeployWizard: warn when deployment exceeds namespace resource quota by @gambtho in #494
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- aksd: InfoTab: Only enable this tab for aks projects by @sniok in #477
- introduce insights-plugin by @flyth in #481
- aksd: Update logo to remove preview by @sniok in #424
- SearchableSelect: Announce no options when opening the dropdown by @sniok in #485
- Add user search autocomplete for Access step; fix allowedNamespaces import bug by @gambtho in #491
- i18n: Distribute latest translations by @sniok in #499
Full Changelog: v0.4.0-beta...v0.5.0
v0.4.0-beta
Bug fixes and improvements
What's Changed
- Localized file check-in by OneLocBuild Task: Build definition ID 13152: Build ID 2461208 by @olprod in #449
- RegisterAKSClusterDialog: Fix a11y issues, add tests by @illume in #451
- i18n: Distribute translated strings by @sniok in #423
- aksd: RegisterAKSClusterDialogue: Improve cluster & subscription search for proper prefix matching & fix duplicate cluster name bug by @tejhan in #452
- ci: i18n: Update the way we check for new translations by @sniok in #459
- GithubPipeline: ConfigurePipeline: Consolidate pipeline wizard review steps by @gambtho in #407
- aksd: fix: AKS project overview cards disappear when plugin config is not initialized. by @tejhan in #464
- plugins/aksdesktop: fix EtagMismatch by batching addon enables into single az aks update by @gambtho in #427
- aks-desktop: ImportAKSProjects: Fix Go To Projects button by @illume in #463
- [re: Accessibility Audit] Keyboard focus order resets to top navigation after navigating Back / Next instead of landing on first interactive control by @vyncent-t in #461
- Accept Azure AD object ID directly for role assignments by @gambtho in #455
- aks-desktop: a11y: Add anouncements for empty state messages by @illume in #465
- Localized file check-in by OneLocBuild Task: Build definition ID 13152: Build ID 2463081 by @olprod in #471
- ai-assistant: Add AKS agent CLI installation docs by @illume in #466
- headlamp bump by @gambtho in #476
Full Changelog: v0.3.0-beta...v0.4.0-beta
v0.3.0-beta
Enhancements
- Add ability to import and convert Kubernetes namespaces into projects (#314)
- Introduce GitHub pipeline deployment feature (available behind a preview flag) (#378)
- Add preview feature toggle in Settings to enable experimental features (#363)
- Allow custom identity resource group naming in GitHub pipeline configuration (#401)
- Add foundational support for a GitHub authentication API (#292)
- Make scaling chart colors responsive in the UI (#376)
- Add line wrapping for long role names in the Access step dropdown (#399)
- Surface Gatekeeper/admission webhook errors during application deployment (#402)
- Announce when no options are found in dropdown menus (accessibility improvement) (#415)
- Remove edit icon from the project name field in the creation form (#389)
- Add AI assistant with aks-agent support (#419)
Bug Fixes
- Fix multiple accessibility (a11y) issues across the UI, improving screen reader support, keyboard navigation, and high-zoom usability in various dialogs and wizard steps (#352, #354, #357, #358, #369)
- Fix Redux version mismatch in AKS Desktop backend service (#356)
- Fix issue where not all AKS clusters were listed during registration (#296)
- Fix errors and stability issues in the application deployment step (#400)
- Fix rendering issues in the AKS project deletion workflow (#392)
- Remove translation function from effect dependencies ([#441]#441)
- Add theme colors in settings ([#439]#439)
Development
- Refactor scaling UI components for clarity and maintainability (#330)
- Extract reusable InfoTab hook and DeploymentSelector component, adding tests for both (#339, #391)
- Remove unnecessary
console.logstatements and resolve static analysis warnings (#355, #372) - Update embedded Headlamp core to the latest version (#368, #390)
- Update GitHub Actions workflow tools (bump
actions/setup-goto v6.3.0,actions/setup-nodeto v6.3.0,actions/upload-artifactto v7.0.0) (#348, #386, #347) - Update development dependencies (bump
@types/nodeto v25.3.5 andlint-stagedto v16.3.2) (#350, #383, #351, #382) - Improve internationalization infrastructure: add localization management scripts, define locked terms, and organize locale files into a dedicated
Localizefolder (#362, #366, #421) - Improve CI pipeline checks: add automated translation file validation and update Guardian baseline configuration (#412, #398)
Documentation
- Update localized resource files with latest translations for all supported languages (via OneLocBuild automation) (#365, #414, #425, #429, #411)
- Add missing translations for various UI elements (#416)
Security
- Upgrade step-security/harden-runner GitHub Action to v2.15.1 for improved CI pipeline security (#349, #381)
- Update GitHub CodeQL analysis workflow to version 4.32.6 (#385)
- Update tar package dependency to v7.5.11 to address security vulnerabilities (#371, #403)
Full Changelog: v0.2.0-alpha...v0.3.0-alpha
v0.2.0-alpha
Enhancements
- Add support for project import build (#110)
- Prepare UI strings for internationalization (i18n) (#181)
- Remove extra steps in Breadcrumb component for AKS project creation flow (#288)
- Improve InfoTab loading performance (#293)
- Add cluster column to CRD list
- Add attach-based node debugger workflow that mirrors
kubectl debug-node - Add count column to events list view
- Display Node and Loadbalancer ports in Service list view.
- Add missing details to Pod, ReplicaSet, NetworkPolicy, Namespace, Services and DaemonSets
- Add support for adding custom header actions to project detail view
- Add icon and color configuration to clusters
- Allow saving selected namespaces per cluster
- Add configurable keyboard shortcuts
- Display a8r io service metadata in service views
- Make in-cluster context name configurable
- Minimize activities blocking the main content when needed
- Add volume mounts on plugin helper sidecar
- Add vertical snap positions for activities
- Add debugging ephemeral container support
Bug fixes
- Fix register AKS cluster heading (#233)
- Fix all project review step headers (#246)
- Fix multiple accessibility (a11y) issues: feature flag heading, Configure Container Deployment header, Deploy Application YAML header, CPU/Memory Resources headers, LabelWithInfo text, edit project name button accessible name, and DeployWizard dialog accessible names (#238, #239, #257, #259, #266, #265, #289)
- Fix keyboard accessibility for Deploy Application page in DeployWizard (#278)
- Fix checking for existing project names
- Fix MaxListenersExceededWarning
- Fix getMainAPIGroup undefined error
- Fix NameValueTable spacing issue
- Fix many a11y issues. Aria labels, color contrast, focus trapping of drawers.
- Hide empty top bar overflow menu on small screens
- Deduplicate CRDs in sidebar items
- Deduplicate namespaces from multi-cluster list in autocomplete.
- Fix tooltip jittering issue
- Fix useKubeObject to use standard websocket connection instead of multiplexed
- Fix the runCommand to properly take into account user and static plugins
- Fix errors caused due to null resource in Header actions.
- Fix ReplicaSetGlance props to include Statefulset
- Fix ID and kind clashes in Map component
Development
- Upgrade
@kinvolk/headlamp-pluginto 0.13.1 (#228, #70) - Migrate Jest tests to Vitest (#135)
- Extract ScalingCard and DeployButton logic into dedicated hooks (#108, #107)
- Refactor ScalingCard and added tests (#137)
- Extract
runCommandAsyncinto a shared module (#244) - Convert
styledusage tosxprop (#69) - Clean up imports, barrel files, and unused code; added knip for dead code detection (#93, #117, #133, #24)
- Improve overall code quality in
plugins/aks-desktop(#234) - Update Linux pipeline to use custom pool (#139)
- Remove unused
dependency-updates.ymlworkflow (#179) - Included changes from Headlamp 0.39.0 and 0.40.1
- Add AGENTS.md for AI-assisted development.
- Add AGENTS.md to created plugins and bundle examples.
- Add app/ development documentation and linting/formatting scripts
- Update dependencies
- Add fast-check property tests for unit parsers
- Remove unused frontend code
- Update dependencies on plugins examples, app, pluginctl and frontend
- Add Activity to pluginLib
Documentation
- Update README with link to documentation and local environment setup steps (#3, #169)
- Add test policy to
MAINTENANCE.md(#113) - Add initial
CODEOWNERSentries (#86, #128)
Security
v0.1.0-alpha
First Release of AKS desktop 🚀
- Create and use AKS cluster projects
- Deploy applications
- Log in to Azure to bring AKS clusters in
- Easy metrics and log viewing
- Based on Headlamp 0.38.0