Visual Studio Code AKS Tools

Introduction

Azure Kubernetes Service (AKS) Extension for Visual Studio Code helps enable AKS developers with one-click quick to deploy features with in vscode eco-system.

Features

Development and Release

Installation

  1. Download and install the Azure Kubernetes Service extension for Visual Studio Code.

  2. Wait for the extension to finish installing then reload Visual Studio Code when prompted.

  3. Once the installation is complete, you’ll see a section named Azure under Clouds.

  4. Sign in to your Azure Account by clicking Sign in to Azure…, (Afternatively, user can use ctrl + shift + p or cmd + shift + p and choose AKS: Sign in to Azure) screenshot below could guide the switch for account as well. If your account has access to more than one Azure tenant, you will be prompted to pick one. To change the selected tenant later, you can run AKS: Select tenant... from the command palette ctrl + shift + p or cmd + shift + p.

Sign in to your Azure Account

Sign in using Command Pallete

Sign in Pop-Up

Sign Into or Switch Account

Development

Package Scripts

This gives an overview of the npm scripts available for development and release of the extension. See the scripts block in package.json.

These can all be run from the command line in the root of the repository (with npm installed), using npm run {script-name}.

Environment Initialization

  • install:all: Installs npm dependencies for both the main extension project and the webview-ui sub-project. It’s recommended to use this instead of npm install, which will only install dependencies for the main project.

Development and Testing

  • dev-webview: for concurrent development/debugging of webview UX.
  • build-webview: bundles and minifies the webview UX for consumption by the extension.
  • webpack: builds and packages the extension.
  • test: runs automated tests.

Not for Running Directly

Some scripts are invoked by other scripts or tools, so need not be run directly, or are otherwise not required for general development tasks:

  • vscode:prepublish: used by the vsce command for packaging the extension into a vsix file for distribution.
  • webpack-dev: bundles the extension code in development mode. Since we currently have no conditional logic that depends on whether the extension is running in development or production, this may be redundant.
  • test-compile: compiles the extension typescript (after building the webview-ui project) without webpacking it. This is a prerequisite to running automated tests. It could be moved into test, but keeping it separate would allow it to be used in the future as a prelaunch task for debugging the extension without webpacking it.
  • watch: not currently used as part of any workflow I’m aware of, but could potentially be useful for editing while debugging.

Local VSIX Sharing and How to Share via a GitHub Comment

Follow these steps to modify the package.json version, generate a VSIX file, and prepare it for sharing as a renamed file in a GitHub comment:

Step 1: Update the package.json Version

  1. Open the package.json file in your project directory.
  2. Find the "version" field.
  3. Update it to a unique test version (e.g., 1.0.0-test.1 or include a timestamp for uniqueness).
    Example:
    {
      "name": "my-extension",
      "version": "1.0.0-test.1",
      "main": "extension.js"
    }
    
  4. Save your changes.

Step 2: Generate the VSIX File

  1. Open a terminal in your project directory.
  2. Run the following command to package the extension: (How to install vsce)
    vsce package
    
  3. A file like my-extension-1.0.0-test.1.vsix will be created in your project directory.

Step 3: Rename the File for Sharing

  1. Rename the VSIX File: GitHub does not allow direct upload of files with the .vsix extension. To work around this:

    • Rename the file by appending .zip to the original name.
      Example:
      Rename filename.vsix to filename.vsix.zip.
  2. Upload to GitHub:

    • Drag and drop the renamed file (filename.vsix.zip) into your GitHub comment or PR description.

Final Notes

  • This renaming approach avoids additional steps like zipping or compressing the file.
  • The development team is typically familiar with this process, making it a quick and effective way to share test versions.

Happy coding! 🚀

Webview Development

For commands that require a webview (see guidance on where this is appropriate), the webview-ui project provides the necessary tooling to develop the front end.

Initial Setup

Run npm run install:all to install package dependencies for both the extension and webview project.

Development/Debugging

File structure

  • Webview source files are under /webview-ui/src.
  • When built, bundled/minified webview assets are output to /webview-ui/dist.

When the extension is run (both in development and production), the webview assets are read from /webview-ui/dist.

Developing the UI

If you like to use your browser development tools for debugging, or you wish to open the web application in an existing browser window:

  1. Run npm run dev:webview to start the development server.
  2. Navigate to http://localhost:3000 in your browser.

Alternatively, if you are developing in VS Code and wish to use the inbuilt debugging functionality:

  1. Hit F5 to launch the Webview UI debug profile in a new browser window. This will automatically run the development server and attach a debugger.

Developing the VS Code commands that launch the UI

To debug the extension itself, hit F5 to launch the Extension debug profile in a new VS Code Window. This will automatically build, bundle and minify both the webview-ui project and the extension.

The extension will not automatically update itself in response to code changes as you are debugging, so the best workflow here is to stop debugging, make changes, and launch the debugger again.

Custom UI Elements

Most input components have been intentionally designed to be theme-aware by default, inheriting VS Code’s global design tokens to stay in sync with the user’s selected theme. This includes buttons (which can be styled using our secondary-button and icon-button classes), anchor tags, <option> elements, and common input types like radio, checkbox, and text.

To keep things consistent while avoiding unnecessary dependencies, we also include a small set of custom components:

  • <CustomDropdown> and <CustomDropdownOption> provide a theme-integrated dropdown experience.
  • <ProgressRing> is a simple, consistent loading indicator that fits right in with VS Code’s UI.

These components help us maintain a clean, unified look without relying on external UI libraries — and give us more control over the details when we need it.

Building for release

The process for this is unaffected by the webview setup. The npm run webpack and vsce package commands will ensure the webpack-ui project is built and bundled.

Features

Once you successfully log in with your Azure Account, you can view all AKS clusters in your Azure subscriptions(s) under the section named Azure. You can right click on your AKS cluster and click a menu item to perform following actions.

Release spotlight

This release adds two feature-flagged experiences:

These can be enabled independently:

{
	"aks.containerAssistEnabledPreview": true,
	"aks.simplifiedMenuStructure": true
}

Container Assist release screenshots:

Container Assist menu in AKS cluster context menu

Container Assist workspace menu entry

Menu simplification release screenshots:

Classic AKS cluster context menu

Simplified AKS cluster context menu

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer health check panel

Cloud explorer new inspektor gadget panel

Cloud explorer create cluster webview

Cloud explorer tcp menu

Cloud explorer tcp dump webview

Cloud explorer tcp dump filter interface

Cloud explorer tcp dump filter interface enhanced

AKS Show Properties webview

Cloud Explorer Compare AKS Cluster

Cloud Explorer Run Retina Capture on AKS Cluster

Merge and Save Into Kubeconfig

Merge into Kubeconfig

Right click on your AKS cluster and click on Merge into Kubeconfig to add the selected AKS cluster to the kubeconfig file.

Save Kubeconfig

Right click on your AKS cluster and click on Save Kubeconfig to save the kubeconfig of the selected AKS cluster.

AKS Diagnostics

AKS Diagnostics

Right click on your AKS cluster and click on Run AKS Diagnostics to display diagnostics information based on your AKS cluster’s backend telemetry for:

  • Best Practices
  • Create, Upgrade, Delete and Scale issues
  • Identity and Security
  • Known Issues, Availability and Performance
  • Network and Connectivity issues
  • Node Health

To perform further checks on your AKS cluster to troubleshoot and get recommended solutions, click on the AKS Diagnostics link at the top of the page to open it for the selected cluster. For more information on AKS Diagnostics, visit AKS Diagnostics Overview.

AKS Diagnostics Webview

Install Azure Service Operator

Install Azure Service Operator

Right click on your AKS cluster and click on Install Azure Service Operator to easily deploy the latest version of Azure Service Operator (ASO) on your AKS cluster and provision and connect applications to Azure resources within Kubernetes. When you select this option, you’ll be prompted for a service principal for ASO to use when performing Azure resource operations. This service principal must have appropriate permissions (typically Contributor at suitable scope). Fill out the service principal details and click Submit to kick off the installation of Azure Service Operator.

Install Azure Service Operator can only be performed on an AKS cluster that has never had ASO installed before. If you have already initiated the installation manually, follow the instructions on Azure Service Operator to complete.

For more information on Azure Service Operator, visit Azure Service Operator (for Kubernetes). If you are experiencing issues with Azure Service Operator, visit Azure Service Operator (ASO) troubleshooting.

Azure Service Operator Webview

Create GitHub Workflow

Deprecation note

This command has been superseded by the Draft Workflow command.

Create GitHub Workflow

Right click on your AKS cluster and click on Create GitHub Workflow to easily open and create a workflow starter template. This helps in quick generation of the workflow templates with pre populates resource and clustername for:

Show Properties, Show in Azure Portal

Show in Azure Portal

Right click on your AKS cluster and click on Show in Azure Portal to easily navigate to AKS cluster overview page in Azure Portal.

Show Properties

Right click on your AKS cluster and click on Show Properties to display the AKS cluster and agent pool properties like provisioning state, fqdn, k8s version, along with node properties like node version, vm type, vm size, o/s type, o/s disk size and nodes provisioning state.

This page also enables some useful cluster and node pool level operations like Abort Last Operation (at cluster and agent pool level) and Reconcile.

This page now also enable information box for the users to quickly see available kuberentes versions available for the cluster to upgrade and if the current version is out of support or not.

Abort operation Reconcile operation Kuberentes version information

Create cluster from Azure Portal

Right click on your AKS sunscription and click on Create cluster from Azure Portal to easily navigate to AKS create cluster page in Azure Portal.

Create cluster

Right click on your AKS subscription and click on Create Cluster and select Create Standard Cluster which will start a 2-step wizard for you to enter a valid cluster name and select an existing resource group. The VS Code experience will then notify user with the deployment progress and present you with the Navigate to Portal link when it completes successfully.

Step 1: Create Cluster Name

Step 2: Select ResourceGroup Name

Creation message notification

Successful Creation

Start or Stop AKS cluster

Right click on your AKS cluster and click on Show Properties to display the AKS cluster properties, within the page there will be Stop/Start Cluster button to perform the start or stop the cluster operation.

Start or Stop Cluster From Properties Webview

Show Properties, Show in Azure Portal

Show in Azure Portal

Right click on your AKS cluster and click on Show in Azure Portal to easily navigate to AKS cluster overview page in Azure Portal.

Show Properties

Right click on your AKS cluster and click on Show Properties to display the AKS cluster and agent pool properties like provisioning state, fqdn, k8s version, along with node properties like node version, vm type, vm size, o/s type, o/s disk size and nodes provisioning state.

This page also enables some useful cluster and node pool level operations like Abort Last Operation (at cluster and agent pool level) and Reconcile.

This page now also enable information box for the users to quickly see available kuberentes versions available for the cluster to upgrade and if the current version is out of support or not.

Abort operation Reconcile operation Kuberentes version information

Create cluster from Azure Portal

Right click on your AKS sunscription and click on Create cluster from Azure Portal to easily navigate to AKS create cluster page in Azure Portal.

Create cluster

Right click on your AKS subscription and click on Create Cluster and select Create Standard Cluster which will start a 2-step wizard for you to enter a valid cluster name and select an existing resource group. The VS Code experience will then notify user with the deployment progress and present you with the Navigate to Portal link when it completes successfully.

Step 1: Create Cluster Name

Step 2: Select ResourceGroup Name

Creation message notification

Successful Creation

Start or Stop AKS cluster

Right click on your AKS cluster and click on Show Properties to display the AKS cluster properties, within the page there will be Stop/Start Cluster button to perform the start or stop the cluster operation.

Start or Stop Cluster From Properties Webview

Show Properties, Show in Azure Portal

Show in Azure Portal

Right click on your AKS cluster and click on Show in Azure Portal to easily navigate to AKS cluster overview page in Azure Portal.

Show Properties

Right click on your AKS cluster and click on Show Properties to display the AKS cluster and agent pool properties like provisioning state, fqdn, k8s version, along with node properties like node version, vm type, vm size, o/s type, o/s disk size and nodes provisioning state.

This page also enables some useful cluster and node pool level operations like Abort Last Operation (at cluster and agent pool level) and Reconcile.

This page now also enable information box for the users to quickly see available kuberentes versions available for the cluster to upgrade and if the current version is out of support or not.

Abort operation Reconcile operation Kuberentes version information

Create cluster from Azure Portal

Right click on your AKS sunscription and click on Create cluster from Azure Portal to easily navigate to AKS create cluster page in Azure Portal.

Create cluster

Right click on your AKS subscription and click on Create Cluster and select Create Standard Cluster which will start a 2-step wizard for you to enter a valid cluster name and select an existing resource group. The VS Code experience will then notify user with the deployment progress and present you with the Navigate to Portal link when it completes successfully.

Step 1: Create Cluster Name

Step 2: Select ResourceGroup Name

Creation message notification

Successful Creation

Start or Stop AKS cluster

Right click on your AKS cluster and click on Show Properties to display the AKS cluster properties, within the page there will be Stop/Start Cluster button to perform the start or stop the cluster operation.

Start or Stop Cluster From Properties Webview

Show Properties, Show in Azure Portal

Show in Azure Portal

Right click on your AKS cluster and click on Show in Azure Portal to easily navigate to AKS cluster overview page in Azure Portal.

Show Properties

Right click on your AKS cluster and click on Show Properties to display the AKS cluster and agent pool properties like provisioning state, fqdn, k8s version, along with node properties like node version, vm type, vm size, o/s type, o/s disk size and nodes provisioning state.

This page also enables some useful cluster and node pool level operations like Abort Last Operation (at cluster and agent pool level) and Reconcile.

This page now also enable information box for the users to quickly see available kuberentes versions available for the cluster to upgrade and if the current version is out of support or not.

Abort operation Reconcile operation Kuberentes version information

Create cluster from Azure Portal

Right click on your AKS sunscription and click on Create cluster from Azure Portal to easily navigate to AKS create cluster page in Azure Portal.

Create cluster

Right click on your AKS subscription and click on Create Cluster and select Create Standard Cluster which will start a 2-step wizard for you to enter a valid cluster name and select an existing resource group. The VS Code experience will then notify user with the deployment progress and present you with the Navigate to Portal link when it completes successfully.

Step 1: Create Cluster Name

Step 2: Select ResourceGroup Name

Creation message notification

Successful Creation

Start or Stop AKS cluster

Right click on your AKS cluster and click on Show Properties to display the AKS cluster properties, within the page there will be Stop/Start Cluster button to perform the start or stop the cluster operation.

Start or Stop Cluster From Properties Webview

Run Kubectl Commands

Run Kubectl Commands from your AKS cluster

Right click on your AKS cluster and click on Run Kubectl Commands to easily run few known kubectl commands on your cluster. Currently we have enable following kubectl commands for the AKS cluster:

  • Describe Services
  • Get All Pods
  • API Resources
  • Get Cluster Info
  • Get Node
  • Get All Events

User can also run custom commands by typing or editing kubectl command parameters in the text field. Custom commands can optionally be saved for future use..

Kubectl commad

Kubectl command panel

Run Managed Cluster Operations

Run Managed Cluster Operations from your AKS cluster

Right click on your AKS cluster and click on Managed Cluster Operations to easily run few managed cluster operations on your cluster. Currently we have enable following operations:

  • Abort Last Operation
  • Delete Cluster
  • Reconcile Cluster
  • Rotate Cluster Certificate

Kubernetes API Health Endpoints

Run Kubernetes API Health Endpoints

Right click on your AKS cluster and click on Run Kubectl Commands. Select and run health check commands from the Health section as shown in the image below. Currently we provide:

  • Healthz
  • Livez
  • Readyz

Kubectl health command panel

Inspektor Gadget

Deploy and Undeploy InspektorGadget

Right click on your AKS cluster and select Show Inspektor Gadget to easily deploy gadget into your cluster. The Show Inspektor Gadget command has been moved to the main context menu for easier access. Users can easily one-click deploy and undeploy gadget from this feature.

Inspektor Gadget main menu access

Profile, Top, Trace and Snapshot Inspektor Gadget Commands

Right-click on your AKS cluster and select Show Inspektor Gadget and choose Gadget Commands to easily use non-interactive Top, Trace, Profile or Snapshot commands for your cluster.

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

New Troubleshooting Menu Items

The Inspektor Gadget integration now includes specialized menu items for common troubleshooting scenarios. If Inspektor Gadget is not deployed, the extension will prompt you to deploy it as below.

Inspektor Gadget deployment prompt

Depending on the context, the appropriate gadget will be selected automatically and the gadget dialog will open with the relevant options.

Inspektor Gadget dialog

Investigate DNS

Right-click on your AKS cluster and select Investigate DNS to troubleshoot DNS-related issues in your cluster. This provides specialized tools for monitoring DNS queries and identifying connectivity problems.

DNS investigation menu

Real-time TCP Monitoring

Select Real-time TCP Monitoring to monitor TCP connections and network traffic in real-time. This helps identify network bottlenecks and connection issues.

Real-time TCP monitoring

Troubleshoot Resource Utilization

Use Troubleshoot Resource Utilization to analyze CPU, memory, and other resource usage patterns across your cluster. This helps identify resource constraints and optimization opportunities.

Resource utilization troubleshooting

The Troubleshoot Resource Utilization menu includes the following sub-options:

  • Identify files being read and written to: Monitor file system operations to understand which processes are accessing specific files.
  • Investigate Block I/O intensive processes: Detect processes with high disk usage to identify potential performance bottlenecks.
  • Profile CPU: Take samples of stack traces to analyze performance issues and identify resource-intensive processes.

Improve Security of My Cluster

Select Improve Security of My Cluster to access the trace_exec gadget under the hood to monitor when new processes are executed.

Security improvement tools

Inspektor Gadget

Deploy and Undeploy InspektorGadget

Right click on your AKS cluster and select Show Inspektor Gadget to easily deploy gadget into your cluster. The Show Inspektor Gadget command has been moved to the main context menu for easier access. Users can easily one-click deploy and undeploy gadget from this feature.

Inspektor Gadget main menu access

Profile, Top, Trace and Snapshot Inspektor Gadget Commands

Right-click on your AKS cluster and select Show Inspektor Gadget and choose Gadget Commands to easily use non-interactive Top, Trace, Profile or Snapshot commands for your cluster.

Cloud explorer extension menu

Cloud explorer extension menu

Cloud explorer extension menu

New Troubleshooting Menu Items

The Inspektor Gadget integration now includes specialized menu items for common troubleshooting scenarios. If Inspektor Gadget is not deployed, the extension will prompt you to deploy it as below.

Inspektor Gadget deployment prompt

Depending on the context, the appropriate gadget will be selected automatically and the gadget dialog will open with the relevant options.

Inspektor Gadget dialog

Investigate DNS

Right-click on your AKS cluster and select Investigate DNS to troubleshoot DNS-related issues in your cluster. This provides specialized tools for monitoring DNS queries and identifying connectivity problems.

DNS investigation menu

Real-time TCP Monitoring

Select Real-time TCP Monitoring to monitor TCP connections and network traffic in real-time. This helps identify network bottlenecks and connection issues.

Real-time TCP monitoring

Troubleshoot Resource Utilization

Use Troubleshoot Resource Utilization to analyze CPU, memory, and other resource usage patterns across your cluster. This helps identify resource constraints and optimization opportunities.

Resource utilization troubleshooting

The Troubleshoot Resource Utilization menu includes the following sub-options:

  • Identify files being read and written to: Monitor file system operations to understand which processes are accessing specific files.
  • Investigate Block I/O intensive processes: Detect processes with high disk usage to identify potential performance bottlenecks.
  • Profile CPU: Take samples of stack traces to analyze performance issues and identify resource-intensive processes.

Improve Security of My Cluster

Select Improve Security of My Cluster to access the trace_exec gadget under the hood to monitor when new processes are executed.

Security improvement tools

Collect TCP Dumps from AKS Cluster Linux Nodes

Collect TCP Dumps

Right click on your AKS cluster and select Troubleshoot Network Health and then select Collect TCP Dumps to capture TCP dumps for any Linux node and download them to your local machine with ease.

Added filters to the TCP Dump functionality, so that you can target traffic capture to specific network interfaces, ports or protocols, to or from specific pods, or craft custom pcap filter strings.

Step 1: Menu

Step 2: Select Page and Successful Run

Step 3: Advanced Filter for TCP DUMP

Step 3: Advanced Filter for TCP DUMP more details

Compare 2 AKS Cluster within Same Subscription

Compare AKS Clusters

Right click on your AKS cluster and select Compare AKS Cluster to use vscode diff to compare json object of 2 AKS clusters.

right click command

Select AKS Cluster to Compare With

Select AKS Cluster to Compare From

AKS Cluster Diff Result

Garbage collection Using Eraser Image Cleanup Tool

Run Eraser Image Cleanup

Right click on your AKS cluster and select Run Eraser Image Cleanup to deploy the Eraser Tool to auomatically clean images in a regular interval for the selected AKS Cluster.

Step 1: Menu

Step 2: pre run

Run Retina Distributed Capture from AKS Cluster Linux Nodes

Run Retina Capture

Right click on your AKS cluster and select Troubleshoot Network Health and then click on Run Retina Capture to capture logs like iptables-rules, ip-resrouces.txt and other key distributed captures form this azure networking tool for any Linux nodes in yout AKS cluster.

There are two options to run the capture:

Download the capture locally

Step 1: Right-click on your AKS cluster and select Troubleshoot Network Health > Run Retina Capture > Download Artifacts Locally

Step 1: Menu

Step 2: Select the nodes on which you want to run the capture

Step 2: Select Nodes to Run Retina

Step 3: Download the capture locally after the capture is completed

Step 3: Retina Ran Successfully

Upload the capture to Azure Storage

Before uploading the capture to Azure Storage, ensure the following prerequisites are met:

  1. A storage account exists in the same region as your AKS cluster.

  2. The storage account is configured in the Diagnostic settings of your AKS cluster.

  3. A container is created within the storage account to store the capture.

Step 1: Right-click on your AKS cluster and select Troubleshoot Network Health > Run Retina Capture > Upload Artifacts to Blob Storage

Step 1: Menu

Step 2: Select the storage account where you want to upload the capture

Step 2: Select Storage Account

Step 3: Select the container within the storage account where you want to upload the capture

Step 3: Select Container

Step 4: Select the nodes on which you want to run the capture

Step 4: Select Nodes to Run Retina

Step 5: Success message will be displayed once the capture is completed and uploaded to the selected storage account

Step 5: Retina Ran Successfully

Step 6: Check the storage account to access the uploaded capture files. The files will be stored in the selected container with a timestamp

Step 6: Check Storage Account

Automated Deployments: Draft Tool Integration

The Automated Deployments commands integrate the Draft tool to provide:

  • Draft Dockerfile
  • Draft Deployment
  • Draft Workflow

These can be launched from either:

  • The command palette. (To open: Hold Ctrl (⌘ Cmd on macOS) + shift + p )

This will allow user to have access to a complete power of Draft tool and allow users to take advantage for scaffolding geenration for their projects.

Step 1: Command Palette

Step 2: Draft Dockerfile

Step 3: Draft Dockerfile first

Step 4: Draft Deployment

Step 5: Draft GitHub Workflow

Deploying Apps to AKS with GitHub Actions and Container Assist (Alpha Preview)

Please Note This is an Alpha Preview feature. Behavior, prompts, and generated output may change between releases.

AI Notice Container Assist uses AI models to analyze project context and generate deployment files. Always review generated files before use, and do not include secrets or sensitive data in source files used for generation.

Technology Note This experience is built on Azure/containerization-assist, which combines AI generation with a specialized containerization toolchain and knowledge/policy guidance for Docker and Kubernetes workflows.

Container Assist is a feature-flagged workflow in the AKS VS Code extension that helps generate deployment assets for AKS directly from your project.

Problem this feature solves

Deploying an application to AKS with a GitHub Actions pipeline usually requires multiple manual steps:

  • Creating and tuning a Dockerfile
  • Authoring Kubernetes manifests for deployment and service resources
  • Creating a CI/CD workflow for build, push, and deploy
  • Wiring Azure authentication and repository workflow setup

This process is flexible, but often time-consuming and error-prone, especially when teams are setting up deployment automation for a new or existing project.

How this feature helps

Container Assist reduces setup friction by guiding you through:

  • Repository analysis
  • Dockerfile generation
  • Kubernetes manifest generation
  • Optional GitHub workflow generation
  • Optional PR-ready Git staging flow

This gives teams a review-first starting point so they can iterate quickly while keeping full control over the final deployment configuration.

Why this is different from generic AI code generation

Container Assist is not a single free-form prompt that guesses deployment files from source code alone.

It uses a structured, workflow-driven approach based on containerization-assist capabilities:

  • Repository-aware analysis first (analyze-repo) to detect language, framework, and module shape
  • Knowledge-enhanced planning for Dockerfile and Kubernetes outputs
  • Security and quality guidance in the tool flow (for example vulnerability and best-practice checks)
  • Policy-driven extensibility so organization standards can shape recommendations
  • Clear next-step/tool-chain guidance for staged execution from analysis to deployment verification

For AKS migration and onboarding scenarios, this helps teams move from app code to deployable AKS artifacts with better consistency and less manual trial-and-error.

Feature flag

Enable this preview feature in VS Code settings:

{
  "aks.containerAssistEnabledPreview": true
}

Default value: false

This can also be enabled from the VS Code Settings UI.

Container Assist Flag from User Setting

Where you can launch it

Container Assist can be launched from:

  • Explorer folder context menu: AKS: Deploy application to AKS (Preview)
  • AKS cluster context menu: AKS: Run Container Assist (Preview)

The AKS cluster context menu entry is shown when:

  • aks.containerAssistEnabledPreview is true
  • At least one workspace folder is open

User flow and options

After launch, you can select one or both actions:

  • Generate Deployment Files
  • Generate GitHub Workflow

If Generate Deployment Files is selected, the flow analyzes your project and generates:

  • Dockerfile at project root (or selected module path)
  • Kubernetes manifests under your configured manifests folder (default: k8s)

If Generate GitHub Workflow is selected, workflow generation is configured for the selected AKS/Azure context.

If both actions are selected, deployment file generation runs first, then workflow generation.

GitHub integration story

When generated files are ready, the post-generation flow is designed for PR-friendly collaboration:

  1. OIDC setup prompt (when workflow is generated):
    • Setup OIDC
    • Skip
  2. Review prompt:
    • Stage & Review
    • Open Files
  3. If you choose staging, files are staged and Source Control is focused with a suggested commit message.
  4. After commit, you are prompted to create a pull request.
  5. PR creation can run through the GitHub Pull Requests extension, with default branch and draft behavior from settings.

This supports a full path from local generation to reviewable GitHub PR with minimal manual glue steps.

Configuration reference

aks.containerAssistEnabledPreview : Enable/disable the Container Assist preview entry points.

aks.containerAssist.k8sManifestFolder : Folder name for generated Kubernetes manifests. Default: k8s.

aks.containerAssist.enableGitHubIntegration : Enables Git/GitHub integration in the post-generation flow.

aks.containerAssist.promptForPullRequest : Reserved setting for PR prompting behavior.

aks.containerAssist.prDefaultBranch : Default base branch for PRs. Default: main.

aks.containerAssist.prCreateAsDraft : Create PRs as draft by default. Default: true.

aks.containerAssist.modelFamily : Default model family used by Container Assist. Default: gpt-5.2-codex.

aks.containerAssist.modelVendor : Default model vendor used by Container Assist. Default: copilot.

Screenshots

Menu entry points

Container Assist from workspace explorer menu

Container Assist from AKS cluster menu

Container Assist and GitHub integration flow

Container Assist flow step 2

Container Assist flow step 3

Container Assist flow step 4

Container Assist flow step 5

Container Assist flow step 6

Container Assist flow step 7

Container Assist flow step 8

Container Assist flow step 9

Container Assist flow step 10

Container Assist flow step 11

Container Assist flow step 12

Container Assist flow step 13

Container Assist flow step 14

Container Assist flow step 15

AKS Plugins for GitHub Copilot for Azure

Overview

The AKS plugins (or skills) for GitHub Copilot for Azure (@azure) extension enable users to perform various tasks related to Azure Kubernetes Service (AKS) directly from the GitHub Copilot Chat view. These skills include creating an AKS cluster, deploying a manifest to an AKS cluster, and generating Kubectl commands.

Features

💡 Important Note: To disable the GitHub Copilot AKS hook in VS Code, add the following line to your user settings.json file:

"aks.copilotEnabledPreview": false

You can open this file by pressing Ctrl+Shift+P (or Cmd+Shift+P on macOS), selecting Preferences: Open Settings (JSON), and adding the setting within the top-level JSON object.

Create an AKS Cluster

Users can quickly set up an AKS cluster using simple, natural language prompts. This reduces the complexity and time required to manually configure and deploy a Kubernetes cluster.

You can create an AKS cluster using the following prompts:

  • [@azure] can you help me create a Kubernetes cluster
  • [@azure] can you set up an AKS cluster for me?
  • [@azure] I have a containerized application, can you help me create an AKS cluster to host it?
  • [@azure] create AKS cluster
  • [@azure] Help me create a Kubernetes cluster to host my application

Deploy a Manifest to an AKS Cluster

Users can deploy their application manifests to an AKS cluster directly from the GitHub Copilot Chat view. This simplifies the deployment process and ensures consistency. By using predefined prompts, the risk of errors during deployment is minimized, leading to more reliable and stable deployments.

To deploy a manifest file to an AKS cluster you can use these prompts:

  • [@azure] help me deploy my manifest file
  • [@azure] can you deploy my manifest to my AKS cluster?
  • [@azure] can you deploy my manifest to my Kubernetes cluster?
  • [@azure] deploy my application manifest to an AKS cluster
  • [@azure] deploy manifest for AKS cluster

Generate Kubectl Command

Users can generate various Kubectl commands to manage their AKS clusters without needing to remember complex command syntax. This makes cluster management more accessible, especially for those who may not be Kubernetes experts. Quickly generating the necessary commands helps users perform cluster operations more efficiently, saving time and effort.

You can generate various Kubectl commands for your AKS cluster using these prompts:

  • [@azure] list all services for my AKS cluster
  • [@azure] kubectl command to get deployments with at least 2 replicas in AKS cluster
  • [@azure] get me all services in my AKS cluster with external IPs
  • [@azure] what is the kubectl command to get pod info for my AKS cluster?
  • [@azure] Can you get kubectl command for getting all API resources

Overall, these features enhance the user experience by making it easier to manage AKS clusters, deploy applications, and execute commands, all from within the GitHub Copilot Chat view. This integration promotes a more seamless and productive workflow for DevOps engineers and developers

Simplified AKS Menu Structure (Feature Flag)

This release introduces a new role-based AKS cluster context menu organization behind a feature flag.

Feature flag

{
  "aks.simplifiedMenuStructure": true
}

Default value: false

After changing this setting, reload the VS Code window.

What changes when enabled

Instead of many top-level commands, cluster actions are grouped into three submenus:

  • Develop & Deploy
  • Troubleshoot & Diagnose
  • Manage Cluster

Direct commands Show In Azure Portal and Show Properties remain available.

Develop & Deploy : Run Kubectl commands, Container Assist (preview), Attach ACR, Create GitHub Workflow, KAITO submenu, Install Azure Service Operator.

Troubleshoot & Diagnose : AKS Diagnostics submenu, Inspektor Gadget, network troubleshooting submenu, resource utilization submenu, Eraser Tool, security submenu.

Manage Cluster : Show properties, show in portal, delete cluster, rotate certificate, reconcile cluster.

Container Assist in the new menu

When both feature flags are enabled:

  • aks.simplifiedMenuStructure = true
  • aks.containerAssistEnabledPreview = true

and a workspace folder is open, AKS: Run Container Assist (Preview) appears under Develop & Deploy.

Backward compatibility

When aks.simplifiedMenuStructure is false, the previous menu organization stays active. This allows gradual rollout, internal validation, and user feedback collection without breaking existing workflows.

Suggested rollout plan

  1. Keep default false for broad compatibility.
  2. Enable in dogfood or preview cohorts.
  3. Collect feedback on discoverability and click depth.
  4. Promote to default once validated.

Screenshots

Classic AKS cluster context menu structure

Simplified AKS cluster context menu with grouped categories

Develop and Deploy submenu with Container Assist and related commands

VS Code user settings showing simplified menu feature flag

Install and Deploy KAITO models

The KAITO integration enables seamless installation of KAITO onto your clusters, empowering you to deploy AI models, manage workflows, and test deployments with ease and precision.

Install KAITO

Right click on your desired AKS cluster and select Deploy an LLM with KAITO and then click on Install KAITO to open up the KAITO installation page.

Installation Page

Once on the page, click Install KAITO and the KAITO installation process will begin. Once KAITO has been successfully installed, you will be prompted with a “Generate Workspace” button that will redirect you to the model deployment page.

Successfull Installation

Deploy a model

Right click on an AKS cluster that has KAITO successfully installed and select Deploy an LLM with KAITO and then click on Create KAITO Workspace to open the KAITO model deployment page.

Deployment Page

Once on this page, you can click any of the models to open up the side panel, which will present you with the option to either Deploy Default workspace CRD or Customize Workspace CRD.

Click Deploy Default workspace CRD to deploy the model. It will track the progress of the model and notify you once the model has been successfully deployed. It will also notify you if the model was already previously unsucessfully onto your cluster. Upon successful deployment, you will be prompted with a “View Deployed Models” button that will redirect you to the deployment management page.

Phi-2 Model Being Deployed Phi-2 Model Successfully Deployed

Click Customize Workspace CRD to open up a CRD file pre-populated with the infromation necessary to deploy the model. You can alter this file to your desires and save it locally.

Manage and Test KAITO Deployments

Actively monitor the the status of all KAITO deployments on the cluster, retrieve logs, test the inference servers, and delete/redeploy models.

Manage KAITO Deployments

Right click on your desired AKS cluster and select Deploy an LLM with KAITO and then click on Manage KAITO Models.

Manage Page

Once on this page, you will see all existing KAITO deployments on the cluster, alongside their status (ongoing, successful, or failed).

For your selected deployment, click Get Logs to access the latest logs from the KAITO workspace pods. This action will generate a new text file containing the most recent 500 lines of logs.

To delete a model, select Delete Workspace (or Cancel for ongoing deployments). For failed deployments, choose Re-deploy Default CRD to remove the current deployment and restart the model deployment process from scratch.

Test a Model

On your desired model, select Test to access the model testing page.

Test Page

Once on the testing page, you can modify the parameters and enter a prompt for submsission. Click Reset Params to reset all configurable parameters to their default values. Click Submit Prompt to submit your query.

Query Response

AKS Fleet Manager

The extension allows you to create AKS Fleet Manager resources and visualize them in the tree view.

Create an AKS Fleet Manager

  • Right-click on the subscription where you want to create a Fleet.
  • Choose Fleet Manager, then select Create Fleet.

Right-click Navigation

A loading screen will appear while resource groups and locations are being retrieved. Once loaded, an input form will be displayed.

Complete all required fields marked with an asterisk (*). If any input is invalid, an error message will indicate the issue and guide you on how to fix it.

Input Form

Once all required fields are filled with valid inputs, submit the form to create the Fleet resource. A loading screen will appear while the API processes the request.

Upon successful creation, a confirmation page will be shown, including a link to view the newly created Fleet in the Azure portal. On Success

If there is an error during creation, a failure page will be displayed with the error message from the API. On Failure

Setup AKS MCP Server

AKS: Setup AKS MCP Server

The AKS: Setup MCP Server command is now available via the Command Palette. This command provisions a lightweight Model Context Protocol (MCP) server locally for enhanced Copilot Chat integration with AKS clusters.

How to Launch

  1. Open the Command Palette (Cmd+Shift+P on macOS / Ctrl+Shift+P on Windows/Linux).
  2. Search and run: AKS: Setup MCP Server.

On Successful Setup

Upon successful installation, you’ll see a successful message like below:

aks-mcp server command

aks-mcp server success

The server will now be visible in:

  • MCP: List Servers (via Command Palette)

aks-mcp list server

aks-mcp list server list running

From there, you can:

  • Start the MCP server
  • View its status

Once started, the MCP server will appear in the Copilot Chat: Configure Tool dropdown as a custom system tool, ready to enhance contextual prompts based on your AKS environment. By default, all AKS MCP server tools are enabled. You can review the list of available tools and disable any that are not required for your specific scenario.

aks-mcp ghc configuration

aks-mcp ghc configuration

  • Begin interacting with your AKS clusters via Copilot using natural language prompts.

Troubleshooting

If the server does not appear:

  • Ensure it was started using the MCP: Start Server command.
  • Confirm it shows up in MCP: List Servers.
  • Restart VS Code if needed.

Release

Use this section to track reader-facing changes by version and maintain release process guidance.

What’s New in 1.7.0

Version 1.7.0 introduces new capabilities with explicit feature-flag control so teams can adopt changes progressively.

Release focus

This release is centered on two feature-flagged improvements:

  • Container Assist integration (preview)
  • Simplified, role-based AKS context menu

Both are opt-in and can be enabled independently.

Feature flags at a glance

{
  "aks.containerAssistEnabledPreview": true,
  "aks.simplifiedMenuStructure": true
}

Defaults:

  • aks.containerAssistEnabledPreview: false
  • aks.simplifiedMenuStructure: false

1) Container Assist integration (Preview)

Container Assist helps generate AKS deployment assets directly from your project with an optional GitHub handoff flow.

Highlights:

  • New preview commands in Explorer and AKS cluster menus
  • Guided generation for Dockerfile and Kubernetes manifests
  • Optional GitHub workflow generation for AKS deployment
  • Post-generation flow to stage changes, review in SCM, and open a PR

Read full details:

2) Simplified AKS menu structure (Feature Flag)

AKS cluster right-click actions can now be grouped by user intent under:

  • Develop & Deploy
  • Troubleshoot & Diagnose
  • Manage Cluster

This reduces top-level clutter while preserving access to existing operations.

Read full details:

Behavior and compatibility

  • Existing behavior remains the default when feature flags are not enabled.
  • Teams can trial either feature in preview environments before broader rollout.
  • No mandatory migration is required for readers who keep defaults.
  1. Enable one flag at a time in local settings.
  2. Validate expected menu visibility and command flow.
  3. Roll out to team settings after confirmation.

Screenshots

Container Assist menu entry in AKS cluster context menu

Classic AKS menu structure

Simplified AKS menu structure

Simplified menu flag in user settings

How to Release

To make a new release and publish it to the marketplace you have to follow the following steps.

  1. Create a branch publish-x.y.z
  2. Update package.json with the new version
  3. Add a section to CHANGELOG.md with the header ## [x.y.z] (N.B: make sure to write the new version in square brackets as the changelog-reader action only works if the CHANGELOG.md file follows the Keep a Changelog standard)
  4. Create a new PR, get approval and merge
  5. Run the Build & Publish workflow manually from the GH Actions tab

Build & Publish

The Build & Publish workflow allows to create a new release, package it in a VSIX file and publish to the VSCode marketplace with a single click.

The only requirement needed to run the workflow is to have a secret named VS_MARKETPLACE_TOKEN containing the Personal Access Token of the publisher. You can find more infos about how to create a publisher/token in the official documentation

Once everything is set up and you followed all first 4 steps in the previous section, you are ready to trigger the Build & Publish workflow. This is what it actually does:

  1. Install all dependencies and build the project
  2. Check if the CHANGELOG.md contains a section related to the new version
  3. Create a new release
  4. Create the VSIX file and publish it to the marketplace
  5. Attach the VSIX file to the new release

Contributing

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Telemetry

Telemetry

This extension collects telemetry data to help us build a better experience for building applications with Azure Kubernetes Service and VS Code. We only collect the following data:

  • Which commands are executed.
  • Events pertaining to GitHub Copilot for Azure (@azure) handlers
    • Which VS Code command ID was used to enable handler
    • Whether or not if a subscription was selected
    • Whether or not a manifest file was selected
    • Whether or not a cluster was selected
    • Which cluster option was selected (see SelectClusterOptions type)
    • Whether or not a manifest deployment was cancelled
    • Whether or not a manifest deployment was successful
    • Whether or not the success manifest deployment link was clicked
    • Whether or not a cluster was successfully created

We do not collect any information about image names, paths, etc. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry setting to false. Learn more in our FAQ.