Skip to content

Add Fleet support to k8s-extension - #10342

Merged
Ethan Yang (necusjz) merged 5 commits into
Azure:mainfrom
britaniar:britaniar-add-fleet-cli-support
Sep 25, 2026
Merged

Ethan Yang (necusjz) merged 5 commits into
Azure:mainfrom
britaniar:britaniar-add-fleet-cli-support

Conversation

@britaniar

@britaniar Britania Rodriguez Reyes (britaniar) commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

🤖 PR Validation — ⚠️ Review suggested

Breaking Changes
⚠️ None
⚠️Azure CLI Extensions Breaking Change Test
⚠️k8s-extension
rule cmd_name rule_message suggest_message
⚠️ 1010 - ParaPropUpdate k8s-extension create cmd k8s-extension create update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters', 'provisionedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters', 'provisionedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension delete cmd k8s-extension delete update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters', 'provisionedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters', 'provisionedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list cmd k8s-extension extension-types list update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list-by-cluster cmd k8s-extension extension-types list-by-cluster update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list-by-location cmd k8s-extension extension-types list-by-location update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list-versions cmd k8s-extension extension-types list-versions update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list-versions-by-cluster cmd k8s-extension extension-types list-versions-by-cluster update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types list-versions-by-location cmd k8s-extension extension-types list-versions-by-location update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types show-by-cluster cmd k8s-extension extension-types show-by-cluster update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension extension-types show-version-by-cluster cmd k8s-extension extension-types show-version-by-cluster update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension list cmd k8s-extension list update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters', 'provisionedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters', 'provisionedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension show cmd k8s-extension show update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters', 'provisionedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters', 'provisionedClusters']
⚠️ 1010 - ParaPropUpdate k8s-extension update cmd k8s-extension update update parameter cluster_type: updated property choices from ['appliances', 'connectedClusters', 'managedClusters', 'provisionedClusters'] to ['appliances', 'connectedClusters', 'fleets', 'managedClusters', 'provisionedClusters']

Motivation

Enable Kubernetes extensions to target Azure Kubernetes Fleet resources through Microsoft.KubernetesConfiguration. Extension Type Registration now supports extension types such as microsoft.flux on cluster type fleets.

Command example

az k8s-extension create \
  --resource-group my-resource-group \
  --cluster-name fleet-1 \
  --cluster-type fleets \
  --name flux \
  --extension-type microsoft.flux \
  --scope cluster

The resulting extension resource is nested under:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/fleets/{fleetName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}

Implementation

  • Adds fleets to the cluster type enums for extension CRUD and extension-types commands.
  • Maps Fleet resources to provider Microsoft.ContainerService, resource type fleets, and the latest stable parent API version 2026-06-01.
  • Reuses the shared provider mapping across create, show, list, update, delete, identity lookup, and cluster-scoped extension-types operations.
  • Adds Fleet-specific CLI help and bumps the extension package version/changelog to 1.8.1.
  • Adds focused unit coverage for enum acceptance, nested Fleet resource IDs, CRUD client arguments, and extension-types client arguments.
  • Adds a recorded ARM scenario covering create, show, list, and delete against a hubful Fleet using microsoft.flux.

Tests

Focused unit tests: 16 passed, 1 skipped
Fleet scenario recording run: 1 passed
Fleet scenario replay: 1 passed
azdev linter k8s-extension: passed
azdev style k8s-extension: pylint and flake8 passed
Python compile check: passed
Git diff whitespace check: passed

Service registration

The target subscription and environment must be registered with the Extension RP, and the service-side extension type registration must list fleets as a supported cluster type for the requested extension type.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 15, 2026 23:31
@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi Britania Rodriguez Reyes (@britaniar),
Please write the description of changes which can be perceived by customers into HISTORY.rst.
If you want to release a new extension version, please update the version in pyproject.toml (or setup.py, if the extension has not migrated yet) as well.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No unresolved blocking issues were identified.

Pull request overview

Adds Azure Kubernetes Fleet support to k8s-extension, including resource mapping, CLI support, tests, and documentation.

Changes:

  • Adds Fleet provider and API-version mappings.
  • Supports Fleet CRUD and extension-type operations.
  • Adds CLI help, tests, changelog, and version 1.8.1.
File summaries
File Summary
src/k8s-extension/setup.py Bumps package version to 1.8.1.
src/k8s-extension/HISTORY.rst Documents Fleet support.
src/k8s-extension/azext_k8s_extension/utils.py Maps Fleet resources to the provider and API version.
src/k8s-extension/azext_k8s_extension/tests/latest/test_fleet_support.py Adds focused Fleet coverage.
src/k8s-extension/azext_k8s_extension/consts.py Defines Fleet constants.
src/k8s-extension/azext_k8s_extension/_params.py Accepts fleets as a cluster type.
src/k8s-extension/azext_k8s_extension/_help.py Adds Fleet usage help.
Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 2 pipeline(s).

Comment thread src/k8s-extension/azext_k8s_extension/consts.py Outdated
Comment thread src/k8s-extension/azext_k8s_extension/_params.py Outdated
Use the 2026-06-01 Fleet ARM API for parent resource lookup per review feedback.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the existing or-separated wording while adding Fleet resources.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Record create, show, list, and delete requests against a hubful staging Fleet.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 2 pipeline(s).

Preserve the upstream 1.9.0 release and publish Fleet support as 1.9.1.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 2 pipeline(s).

@necusjz
Ethan Yang (necusjz) merged commit a7e6658 into Azure:main Sep 25, 2026
24 checks passed
@azclibot

Copy link
Copy Markdown
Collaborator

[Release] Update index.json for extension [ k8s-extension-1.9.1 ] : https://dev.azure.com/msazure/One/_build/results?buildId=182788387&view=results

@britaniar
Britania Rodriguez Reyes (britaniar) deleted the britaniar-add-fleet-cli-support branch September 28, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Auto-Assign Auto assign by bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants