Releases: Azure/kubectl-aks
Release list
Release v0.3.0
This release includes many new features for effective AKS cluster troubleshooting especially when API server is down:
Cluster-wide checks
You can now run checks across the entire cluster, making it easier to identify issues affecting multiple nodes or workloads during outages and degraded cluster states.
→ kubectl aks check verify apiserver-connectivity
✔ (all nodes in cluster)
=== aks-nodepool1-58771399-vmss000008 ===
✓ Connectivity check: succeeded
=== aks-nodepool1-58771399-vmss000009 ===
✓ Connectivity check: succeeded
=== aks-nodepool1-58771399-vmss000007 ===
✓ Connectivity check: succeeded
Generic troubleshooting checks
Added a new framework for generic checks to simplify diagnostics and provide reusable validation logic across different troubleshooting scenarios with checks powered by Inspektor Gadget.
→ kubectl aks check trace dns-failed
✔ (all nodes in cluster)
=== aks-nodepool1-58771399-vmss000008 ===
✓ DNS trace: no DNS failures observed during trace period
=== aks-nodepool1-58771399-vmss000009 ===
✗ DNS trace: 3 DNS failure(s) observed
NAME RCODE QTYPE NAMESERVER POD PROCESS
ama-metrics-operator-targets.kube-system.svc.cluster.local.porvznvo3j2ulmh44ss01jatoe.fx.internal.cloudapp.net. NameError A 10.244.0.192
ama-metrics-operator-targets.kube-system.svc.cluster.local.porvznvo3j2ulmh44ss01jatoe.fx.internal.cloudapp.net. NameError A 10.0.0.10 systemd-resolve(657)
ama-metrics-operator-targets.kube-system.svc.cluster.local.porvznvo3j2ulmh44ss01jatoe.fx.internal.cloudapp.net. NameError A 10.0.0.10 kube-system/ama-metrics-5f7f4b8b7d-47tjn flb-pipeline(1476927)
=== aks-nodepool1-58771399-vmss000007 ===
✓ DNS trace: no DNS failures observed during trace period
You can see documentation on writing a check and sharing it with the entire community.
What's Changed
- Allow running checks across cluster by Qasim Sarfraz (@mqasimsarfraz) in #82
- pkg: Add generic checks by Qasim Sarfraz (@mqasimsarfraz) in #83
Full Changelog: v0.2.5...v0.3.0
Release v0.2.5
This release includes new features, bug fixes, and dependency updates.
The important changes are support for different Azure clouds (AzureUSGovernment/AzureChina) and a new kube-api runtime. Additionally, a security fix upgrades logrus to address CVE-2025-65637.
What's Changed
- build(deps): bump golang.org/x/net from
0.17.0 to 0.23.0 by Dependabot (@dependabot) in #64 - build(deps): bump google.golang.org/protobuf from
1.28.1 to 1.33.0 by Dependabot (@dependabot) in #63 - docs: Add Thanks section to README by Jose Blanquicet (@blanquicet) in #62
- go: Update dependencies by Qasim Sarfraz (@mqasimsarfraz) in #69
- use official released version of ie by Adhvaith Hundi (@AdvH039) in #71
- Verbose flag controls log level by Adhvaith Hundi (@AdvH039) in #70
- Avoid running ci when not required by Adhvaith Hundi (@AdvH039) in #73
- build(deps): bump golang.org/x/crypto from
0.37.0 to 0.45.0 by Dependabot (@dependabot) in #74 - fix: Use correct path for kubectl by Qasim Sarfraz (@mqasimsarfraz) in #76
- fix: upgrade logrus to v1.8.3 for CVE-2025-65637 by copilot-swe-agent in #77
- Add support for kube-api runtime by Qasim Sarfraz (@mqasimsarfraz) in #78
- Support different clouds (e.g AzureUSGovernment/AzureChina) by Qasim Sarfraz (@mqasimsarfraz) in #79
- ci: Create draft release by Qasim Sarfraz (@mqasimsarfraz) in #80
Full Changelog: v0.2.4...v0.2.5
v0.2.4
This is a release with few changes from the user perspective as it mostly includes some improvements in the documentation and CI.
The most important change is that we are now using the InnovationEngine to validate the code blocks present in the README file. This will help us to ensure that the documentation is always up to date and that the code blocks are working as expected. The same strategy will be applied to the rest of the documentation in the future. Thanks to Qasim Sarfraz (@mqasimsarfraz) for this contribution and to Vincenzo Marcella (@vmarcella) and Mitchell Bifeld (@mbifeld) for the support in this task.
What's Changed
- build(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 by Dependabot (@dependabot) in #49
- ci: Allow running tests in parallel by Qasim Sarfraz (@mqasimsarfraz) in #50
- docs: Add documentation-test for README by Qasim Sarfraz (@mqasimsarfraz) in #51
- build(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 by Dependabot (@dependabot) in #53
- docs: Improve check-apiserver-connectivity description by Jose Blanquicet (@blanquicet) in #54
- config: Use data from config file when available by Jose Blanquicet (@blanquicet) in #55
- spinner: Ensure there are no logs/prints between Start and Stop by Jose Blanquicet (@blanquicet) in #61
Full Changelog: v0.2.3...v0.2.4
v0.2.3
This is a bug fix release and allows installing kubectl aks (via krew) on darwin arm64, thanks to @kim-sondrup. It also upgrade azure sdk to use newer API versions alongside documentation updates.
What's Changed
- docs: Update run-command documentation to use the config command by Jose Blanquicet (@blanquicet) in #45
- ci: Use federated credential to login to Azure by Qasim Sarfraz (@mqasimsarfraz) in #46
- Added darwin arm64 krew by @kim-sondrup in #47
- azure: Upgrade dependencies for armcontainerservice by Qasim Sarfraz (@mqasimsarfraz) in #48
New Contributors
- @kim-sondrup made their first contribution in #47
Full Changelog: v0.2.2...v0.2.3
v0.2.2
In this release, we bring you more UX improvements with signal handling, redirection of stdout/stderr and spinner while using run-command. Also, config import now supports importing node information using Azure API, making it easier to use kubectl-aks even if you don't have access to the Kubernetes API server.
What's Changed
- lint: Introduce golang linter in the CI by Qasim Sarfraz (@mqasimsarfraz) in #38
- config: Support importing config using Azure API by Qasim Sarfraz (@mqasimsarfraz) in #39
- cmd: Use spinner for run-command by Qasim Sarfraz (@mqasimsarfraz) in #40
- cmd/config: Align flags names among commands by Jose Blanquicet (@blanquicet) in #43
- vmss: Use OSProfile.ComputerName for Kubernetes node name by Qasim Sarfraz (@mqasimsarfraz) in #41
- run-command: Improve signal handling by Qasim Sarfraz (@mqasimsarfraz) in #44
- run-command: Improve output formatting by Qasim Sarfraz (@mqasimsarfraz) in #42
Full Changelog: v0.2.1...v0.2.2
v0.2.1
In this release we are bringing in couple of UX improvements with run-command now having a default timeout of 300 seconds compared to 90 mins and improving the output of run-command by truncating the tail instead of head by default. For details please refer to changes below:
What's Changed
- readme: Add krew installation instructions and improve description by Jose Blanquicet (@blanquicet) in #27
- run-command: Introduce timeout for run-command by Qasim Sarfraz (@mqasimsarfraz) in #34
- run-command: Truncate output tail instead of head by default by Jose Blanquicet (@blanquicet) in #36
Full Changelog: v0.2.0...v0.2.1
v0.2.0
In this release we renamed the project from kubectl-az to kubectl-aks to make the usage clearer. Feedback and suggestions are always welcome.
What's Changed
- krew: Rename kubectl-az to kubectl-aks by Qasim Sarfraz (@mqasimsarfraz) in #31
- readme: Improve project title by Qasim Sarfraz (@mqasimsarfraz) in #33
Full Changelog: v0.1.0...v0.2.0
Features
The following commands are available in this version:
run-command: run a command in a nodecheck-apiserver-connectivity: check connectivity between the nodes and the Kubernetes API Serverconfig: manage configuration
Installation
You can install kubectl-aks by downloading the asset for a given release and platform from the releases page on GitHub. Alternatively, you can build kubectl-aks from source by cloning the repository and running the make install command.
Usage
To use this plugin, run the kubectl aks command followed by the desired subcommand. The available subcommands are check-apiserver-connectivity, completion, config, help, run-command, and version.
Note that it is necessary to sign in to Azure to run most of kubectl-aks commands. You can use any authentication method provided by the Azure CLI using the az login command. If you have not signed in yet, kubectl-aks will open the default browser and load the Azure sign-in page where you need to authenticate.
Please refer to the documentation for each command to understand how to use them and which one is the most suitable for your case.
v0.1.0
The first version of the kubectl-az plugin is now available, providing a set of commands to debug an AKS cluster even when the control plane is not working correctly. With this release, users can complement their az CLI experience with additional commands and have a kubectl-like experience when working with an AKS cluster.
Features
The following commands are available in this version:
run-command: run a command in a nodecheck-apiserver-connectivity: check connectivity between the nodes and the Kubernetes API Serverconfig: manage configuration
Installation
You can install kubectl-az by downloading the asset for a given release and platform from the releases page on GitHub. Alternatively, you can build kubectl-az from source by cloning the repository and running the make install command.
Usage
To use this plugin, run the kubectl az command followed by the desired subcommand. The available subcommands are check-apiserver-connectivity, completion, config, help, run-command, and version.
Note that it is necessary to sign in to Azure to run most of kubectl-az commands. You can use any authentication method provided by the Azure CLI using the az login command. If you have not signed in yet, kubectl-az will open the default browser and load the Azure sign-in page where you need to authenticate.
Please refer to the documentation for each command to understand how to use them and which one is the most suitable for your case.
New Contributors
- Jose Blanquicet (@blanquicet) made their first contribution in #1
- Qasim Sarfraz (@mqasimsarfraz) made their first contribution in #13
Full Changelog: https://github.com/Azure/kubectl-az/commits/v0.1.0