Skip to content

Releases: Azure/aks-desktop

v0.9.0

Choose a tag to compare

@gambtho gambtho released this 17 Jul 17:48
b256bf2

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-assistant package 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 Conflict errors 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/checkout from 6.0.3 to 7.0.0 in #738.
  • Updated actions/setup-go from 6.4.0 to 6.5.0 in #742.
  • Updated step-security/harden-runner from 2.19.4 to 2.20.0 in #758.
  • Updated @types/node from 25.8.0 to 26.0.0 in #739.
  • Updated lint-staged from 17.0.7 to 17.0.8 in #743.
  • Updated tsx from 4.22.3 to 4.22.4 in #708.

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@sniok sniok released this 16 Jun 20:10
a792366
  • 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

Choose a tag to compare

@illume illume released this 02 Jun 21:01
6f62488

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

Image Image

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 getSubscriptions mock 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 typescript from 5.9.3 to 6.0.3 (#605)
  • Bump yaml, undici, flatted, picomatch, terser-webpack-plugin, and storybook across plugins (#558)
  • Bump langsmith from 0.5.4 to 0.5.20 in ai-assistant (#583, #599)
  • Bump vite from 6.4.1 to 6.4.2 across plugins (#572, #573, #578)
  • Bump knip from 5.85.0 to 6.14.2 (#569, #588, #606, #613, #686)
  • Bump flatted from 3.3.3 to 3.4.2 in ai-assistant (#577)
  • Bump @types/node from 25.3.5 to 25.8.0 (#570, #589, #653, #669)
  • Bump tsx from 4.21.0 to 4.22.3 (#687)
  • Bump lint-staged from 16.3.2 to 17.0.5 (#666)
  • Bump actions/setup-node from 6.3.0 to 6.4.0 (#608, #633)
  • Bump actions/setup-go from 6.3.0 to 6.4.0 (#549)
  • Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#587)
  • Bump actions/github-script from 8.0.0 to 9.0.0 (#586)

Documentation

Security

  • Bump step-security/harden-runner from 2.15.1 to 2.19.4 (#568, #585, #604, #612, #665, #685)
  • Bump github/codeql-action from 4.32.6 to 4.36.0 (#547, #607, #654, #667, #683)
  • Bump lodash from 4.17.23 to 4.18.1 across plugins to address known prototype pollution vulnerabilities (#575, #576, #579)
  • Bump postcss across plugins to address known ReDoS vulnerability (#628, #629, #614)

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@sniok sniok released this 31 Mar 13:40
70c6ddf

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

Choose a tag to compare

@sniok sniok released this 20 Mar 23:34
720cc88

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

Choose a tag to compare

@sniok sniok released this 19 Mar 16:25
ad7a917

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

Choose a tag to compare

@illume illume released this 16 Mar 20:40
5cd02f5

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.log statements 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-go to v6.3.0, actions/setup-node to v6.3.0, actions/upload-artifact to v7.0.0) (#348, #386, #347)
  • Update development dependencies (bump @types/node to v25.3.5 and lint-staged to v16.3.2) (#350, #383, #351, #382)
  • Improve internationalization infrastructure: add localization management scripts, define locked terms, and organize locale files into a dedicated Localize folder (#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

Choose a tag to compare

@sniok sniok released this 27 Feb 23:36
e506e8c

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-plugin to 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 runCommandAsync into a shared module (#244)
  • Convert styled usage to sx prop (#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.yml workflow (#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 CODEOWNERS entries (#86, #128)

Security

  • Fix security alert in aks-plugin (#2)
  • Improve GitHub Actions workflow security and reduced excessive token permissions (#77, #89, #180)
  • Add OpenSSF Scorecard analysis and Best Practices badge configuration (#64)

v0.1.0-alpha

Choose a tag to compare

@joaquimrocha joaquimrocha released this 19 Nov 22:51

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