Skip to content

[Aks] Add AzureContainerLinux OS SKU support; regen Management.Sdk to…#29719

Merged
VeryEarly merged 6 commits into
Azure:mainfrom
aadhar-agarwal:aadagarwal/add-acl-support
Jun 11, 2026
Merged

[Aks] Add AzureContainerLinux OS SKU support; regen Management.Sdk to…#29719
VeryEarly merged 6 commits into
Azure:mainfrom
aadhar-agarwal:aadagarwal/add-acl-support

Conversation

@aadhar-agarwal

@aadhar-agarwal aadhar-agarwal commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Problem

AzureContainerLinux is missing from PowerShell's tab-completion for -OsSku on New-AzAksCluster / New-AzAksNodePool, even though it is a supported AKS node OS. The cmdlets pass OsSku through as a string, but the value is undiscoverable.

Fix

  • Add AzureContainerLinux to the PSArgumentCompleter on New-AzAksCluster and New-AzAksNodePool -OsSku.
  • Bump the Aks.Management.Sdk spec pin from 2025-08-01 (c1a0abc) to 2026-03-01 (0e3000d) so the api-version accepts the new SKU server-side. Matches the pin used in [AKS] upgrade api to 2026-03-01 #29661.
  • The regen flips several SDK enums to model-as-string (e.g. ManagedClusterIdentity.Type). PS-side models still expose typed enums (PSResourceIdentityType?), which crashed AdapterHelper.AdaptEnum and silently defaulted the reverse direction. AdaptEnum + dispatcher now handle enum→string / string→enum / enum→enum / null.
  • Refresh scenario-test recordings (RequestUri + matching EncodedRequestUri) to 2026-03-01.
  • Add Test_AKS_AzureContainerLinux live test + ChangeLog entry.

Verification

  • All PR checks green (build + analyze + scenario tests, PS 5.1 / 7, Linux/macOS/Windows).
  • Test_AKS_AzureContainerLinux covers the new SKU in Live mode.
  • TestManagedIdentity + TestAzureKubernetesAddonsEnableAndDisable exercise both AdapterHelper enum↔string paths.

Related

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

Copilot AI review requested due to automatic review settings June 4, 2026 00:05
@azure-client-tools-bot-prd

Copy link
Copy Markdown
Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status.

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.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates the AKS PowerShell module and regenerated management SDK to align with the Microsoft.ContainerService/aks/stable/2026-03-01 API version, including new OS SKU options and newly generated model/operation types.

Changes:

  • Added AzureContainerLinux as a supported OS SKU argument completer for cluster and node pool creation cmdlets.
  • Regenerated Aks.Management.Sdk against the 2026-03-01 swagger (new models, paging changes, new headers types, various signature changes).
  • Updated changelog and SDK generator README to reflect the new spec commit/version.

Reviewed changes

Copilot reviewed 4 out of 135 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Aks/Aks/Commands/NewAzureRmAksNodePool.cs Adds AzureContainerLinux to -OsSKU argument completer.
src/Aks/Aks/Commands/NewAzureRmAks.cs Adds AzureContainerLinux to -NodeOsSKU argument completer.
src/Aks/Aks/ChangeLog.md Documents new OS SKU support and SDK regeneration.
src/Aks/Aks.Management.Sdk/README.md Updates swagger commit and input-file to 2026-03-01.
src/Aks/Aks.Management.Sdk/Generated/TrustedAccessRolesOperations.cs Switches paging deserialization from Page1<T> to Page<T>.
src/Aks/Aks.Management.Sdk/Generated/TrustedAccessRoleBindingsOperations.cs Updates paging type and long-running response/header typing for create/update.
src/Aks/Aks.Management.Sdk/Generated/SnapshotsOperations.cs Switches paging deserialization from Page1<T> to Page<T>.
src/Aks/Aks.Management.Sdk/Generated/PrivateEndpointConnectionsOperationsExtensions.cs Changes delete extension methods to return typed headers.
src/Aks/Aks.Management.Sdk/Generated/PrivateEndpointConnectionsOperations.cs Changes delete operations to return typed header responses.
src/Aks/Aks.Management.Sdk/Generated/OperationsExtensions.cs Changes list return type to IPage<T> and adds ListNext* helpers.
src/Aks/Aks.Management.Sdk/Generated/Operations.cs Implements paged List and new ListNext HTTP operation.
src/Aks/Aks.Management.Sdk/Generated/Models/WorkloadRuntime.cs Adds KataVmIsolation workload runtime constant.
src/Aks/Aks.Management.Sdk/Generated/Models/WeekDay.cs Adds doc comments for weekday constants.
src/Aks/Aks.Management.Sdk/Generated/Models/TrustedAccessRoleBindingsDeleteHeaders.cs Adds async-operation and retry-after header fields.
src/Aks/Aks.Management.Sdk/Generated/Models/TrustedAccessRoleBindingsCreateOrUpdateHeaders.cs Adds new typed create/update headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/TrustedAccessRoleBindingProvisioningState.cs Adds doc comments for provisioning state constants.
src/Aks/Aks.Management.Sdk/Generated/Models/TrustedAccessRoleBinding.cs Changes base type to ProxyResource.
src/Aks/Aks.Management.Sdk/Generated/Models/TransitEncryptionType.cs Adds new transit encryption type constants.
src/Aks/Aks.Management.Sdk/Generated/Models/SubResource.cs Removes generated SubResource model.
src/Aks/Aks.Management.Sdk/Generated/Models/SnapshotProperties.cs Updates OS SKU documentation (new SKUs).
src/Aks/Aks.Management.Sdk/Generated/Models/Snapshot.cs Updates OS SKU documentation (new SKUs).
src/Aks/Aks.Management.Sdk/Generated/Models/RestrictionLevel.cs Updates/escapes doc comment text.
src/Aks/Aks.Management.Sdk/Generated/Models/ResourceQuota.cs Adds new ResourceQuota model.
src/Aks/Aks.Management.Sdk/Generated/Models/ResourceIdentityType.cs Replaces enum with string-constant static class.
src/Aks/Aks.Management.Sdk/Generated/Models/PublicNetworkAccess.cs Adds doc comments for public network access constants.
src/Aks/Aks.Management.Sdk/Generated/Models/ProxyRedirectionMechanism.cs Adds proxy redirection mechanism constants.
src/Aks/Aks.Management.Sdk/Generated/Models/PrivateLinkResource.cs Improves documentation for naming rules.
src/Aks/Aks.Management.Sdk/Generated/Models/PrivateEndpointConnectionsDeleteHeaders.cs Adds new typed delete headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/PrivateEndpointConnectionProvisioningState.cs Adds doc comments for provisioning state constants.
src/Aks/Aks.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs Changes base type to ProxyResource and adds SystemData.
src/Aks/Aks.Management.Sdk/Generated/Models/PolicyRule.cs Adds new policy rule constants.
src/Aks/Aks.Management.Sdk/Generated/Models/Page1.cs Removes Page1<T> paging model.
src/Aks/Aks.Management.Sdk/Generated/Models/Page.cs Fixes nextLink JSON property mapping.
src/Aks/Aks.Management.Sdk/Generated/Models/OSSKU.cs Adds new OS SKU constants including AzureContainerLinux.
src/Aks/Aks.Management.Sdk/Generated/Models/NetworkPolicies.cs Adds new NetworkPolicies model.
src/Aks/Aks.Management.Sdk/Generated/Models/NamespaceProvisioningState.cs Adds new namespace provisioning state constants.
src/Aks/Aks.Management.Sdk/Generated/Models/NamespaceProperties.cs Adds new managed namespace properties model.
src/Aks/Aks.Management.Sdk/Generated/Models/MeshRevisionProfileProperties.cs Improves mesh revision docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedServiceIdentityUserAssignedIdentitiesValue.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedNamespacesDeleteHeaders.cs Adds new typed delete headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedNamespacesCreateOrUpdateHeaders.cs Adds new typed create/update headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedNamespace.cs Adds new ManagedNamespace resource model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedGatewayType.cs Adds managed gateway type constants.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersUpdateTagsHeaders.cs Adds new typed update-tags headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersStopHeaders.cs Adds retry-after to stop headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersStartHeaders.cs Adds retry-after to start headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersRunCommandHeaders.cs Adds retry-after to run-command headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersRotateServiceAccountSigningKeysHeaders.cs Adds retry-after to rotate signing keys headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersRotateClusterCertificatesHeaders.cs Adds retry-after to rotate cert headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersResetServicePrincipalProfileHeaders.cs Adds retry-after to reset SP headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersResetAADProfileHeaders.cs Adds retry-after to reset AAD headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersGetCommandResultHeaders.cs Changes header JSON property name to location.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersDeleteHeaders.cs Adds async-operation and retry-after fields.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersCreateOrUpdateHeaders.cs Adds new typed create/update headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClustersAbortLatestOperationHeaders.cs Reorders fields and adds retry-after; updates header JSON property names.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterWebAppRoutingGatewayAPIImplementations.cs Adds app-routing gateway API implementations model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterUpgradeProfile.cs Changes base type to ProxyResource and adds SystemData.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterProperties.cs Adds hosted system profile to cluster properties.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterPoolUpgradeProfileUpgradesItem.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterPodIdentityProvisioningState.cs Adds doc comments for pod identity state constants.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterPodIdentityProvisioningInfo.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterPodIdentity.cs Improves provisioning info docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterNodeProvisioningProfile.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterIngressProfileWebAppRouting.cs Adds gateway API implementation config for app routing.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterIngressProfileNginx.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterIngressProfileGatewayConfiguration.cs Adds managed gateway API install configuration model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterIngressProfile.cs Adds gateway API settings to ingress profile.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterIdentity.cs Changes identity Type from enum to string representation.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterHostedSystemProfile.cs Adds hosted system addons profile model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterHTTPProxyConfig.cs Adds enabled flag for HTTP proxy config.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAzureMonitorProfileAppMonitoringAutoInstrumentation.cs Adds app monitoring auto-instrumentation model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAzureMonitorProfileAppMonitoring.cs Adds app monitoring profile model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAzureMonitorProfile.cs Adds appMonitoring to Azure Monitor profile.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAppRoutingIstio.cs Adds app-routing Istio configuration model.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAgentPoolProfileProperties.cs Adds new agent pool properties (artifact streaming, local DNS, etc.).
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedClusterAgentPoolProfile.cs Wires new agent pool properties into derived model constructor.
src/Aks/Aks.Management.Sdk/Generated/Models/ManagedCluster.cs Adds hosted system profile; updates eTag documentation.
src/Aks/Aks.Management.Sdk/Generated/Models/MaintenanceConfiguration.cs Changes base type to ProxyResource and updates constructor.
src/Aks/Aks.Management.Sdk/Generated/Models/Machine.cs Changes base type to ProxyResource and adjusts constructor/property semantics.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSState.cs Adds localDNS state constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSServeStale.cs Adds localDNS serve-stale policy constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSQueryLogging.cs Adds localDNS query logging constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSProtocol.cs Adds localDNS protocol constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSProfile.cs Adds localDNS profile model.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSOverride.cs Adds localDNS override model.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSMode.cs Adds localDNS enablement mode constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSForwardPolicy.cs Adds localDNS forward policy constants.
src/Aks/Aks.Management.Sdk/Generated/Models/LocalDNSForwardDestination.cs Adds localDNS forward destination constants.
src/Aks/Aks.Management.Sdk/Generated/Models/KubernetesVersionCapabilities.cs Improves support plan docs.
src/Aks/Aks.Management.Sdk/Generated/Models/KeyVaultNetworkAccessTypes.cs Adds doc comments for KV access type constants.
src/Aks/Aks.Management.Sdk/Generated/Models/IstioEgressGateway.cs Adds new fields/validation for Istio egress gateway.
src/Aks/Aks.Management.Sdk/Generated/Models/IstioComponents.cs Adds proxy redirection mechanism configuration.
src/Aks/Aks.Management.Sdk/Generated/Models/IpFamily.cs Renames type to IPFamily and updates docs.
src/Aks/Aks.Management.Sdk/Generated/Models/GatewayAPIIstioEnabled.cs Adds Gateway API Istio enable/disable constants.
src/Aks/Aks.Management.Sdk/Generated/Models/GPUInstanceProfile.cs Adds doc comments for MIG GPU profile constants.
src/Aks/Aks.Management.Sdk/Generated/Models/ExtendedLocationTypes.cs Adds doc comment for EdgeZone type.
src/Aks/Aks.Management.Sdk/Generated/Models/DeletePolicy.cs Adds delete policy constants.
src/Aks/Aks.Management.Sdk/Generated/Models/ConnectionStatus.cs Adds doc comments for connection status constants.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolsUpgradeNodeImageVersionHeaders.cs Adds async-operation, location, retry-after fields.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolsDeleteMachinesHeaders.cs Adds async-operation and retry-after fields.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolsDeleteHeaders.cs Adds async-operation and retry-after fields.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolsCreateOrUpdateHeaders.cs Adds new typed create/update headers model.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolsAbortLatestOperationHeaders.cs Reorders fields and adds retry-after; updates header JSON property names.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolUpgradeProfilePropertiesUpgradesItem.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolUpgradeProfile.cs Changes base type to ProxyResource and adds SystemData.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem.cs Adds class-level docs.
src/Aks/Aks.Management.Sdk/Generated/Models/AgentPoolArtifactStreamingProfile.cs Adds artifact streaming profile model.
src/Aks/Aks.Management.Sdk/Generated/Models/AdvancedNetworkingSecurityTransitEncryption.cs Adds transit encryption model.
src/Aks/Aks.Management.Sdk/Generated/Models/AdvancedNetworkingSecurity.cs Adds transit encryption to advanced networking security model.
src/Aks/Aks.Management.Sdk/Generated/Models/AdvancedNetworkingPerformance.cs Adds performance profile model.
src/Aks/Aks.Management.Sdk/Generated/Models/AdvancedNetworking.cs Adds performance profile to advanced networking model.
src/Aks/Aks.Management.Sdk/Generated/Models/AdoptionPolicy.cs Adds adoption policy constants.
src/Aks/Aks.Management.Sdk/Generated/Models/AccelerationMode.cs Adds acceleration mode constants.
src/Aks/Aks.Management.Sdk/Generated/MaintenanceConfigurationsOperationsExtensions.cs Improves maintenance config name docs.
src/Aks/Aks.Management.Sdk/Generated/MaintenanceConfigurationsOperations.cs Switches paging type and improves config docs.
src/Aks/Aks.Management.Sdk/Generated/MachinesOperationsExtensions.cs Fixes capitalization/punctuation in docs.
src/Aks/Aks.Management.Sdk/Generated/MachinesOperations.cs Switches paging type and updates machineName validation regex.
src/Aks/Aks.Management.Sdk/Generated/ITrustedAccessRoleBindingsOperations.cs Updates create/update return type to include typed headers.
src/Aks/Aks.Management.Sdk/Generated/IPrivateEndpointConnectionsOperations.cs Updates delete return type to typed header response.
src/Aks/Aks.Management.Sdk/Generated/IOperations.cs Changes list response type to IPage<T> and adds ListNext.
src/Aks/Aks.Management.Sdk/Generated/IManagedNamespacesOperations.cs Adds managed namespaces operations surface.
src/Aks/Aks.Management.Sdk/Generated/IMaintenanceConfigurationsOperations.cs Improves maintenance config name docs.
src/Aks/Aks.Management.Sdk/Generated/IMachinesOperations.cs Fixes capitalization/punctuation in docs.
src/Aks/Aks.Management.Sdk/Generated/IContainerServiceClient.cs Reorders/expands client operation properties (incl. ManagedNamespaces).
src/Aks/Aks.Management.Sdk/Generated/IAgentPoolsOperations.cs Adjusts operation signatures and adds typed headers for create/update.
src/Aks/Aks.Management.Sdk/Generated/ContainerServiceClient.cs Reorders initialization and bumps ApiVersion to 2026-03-01.

@thomas-temby

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

Copilot AI review requested due to automatic review settings June 4, 2026 00:20

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.

Pull request overview

Copilot reviewed 9 out of 140 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1

  • This live test generates an SSH key named id_rsa in the current working directory and uses a hard-coded passphrase that appears to include literal quotes (\"123456\"). This risks overwriting an existing id_rsa on the test runner and leaves private key material behind. Use a uniquely named temp path (e.g., within $env:TEMP / a test-specific folder) and avoid hard-coded passphrases (prefer empty or randomly generated), then delete the key files in a finally/cleanup block.
    src/Aks/Aks.Test/ScenarioTests/KubernetesTests.ps1:1
  • Assert-AreEqualArray is likely mismatched with the RHS shape here: (...).OsSKU will typically be a single string (or potentially an array if multiple matches), which can lead to flaky/incorrect assertions depending on PowerShell's enumeration behavior. Prefer asserting a scalar equality (e.g., compare to a single selected pool's OsSKU) or wrap both sides explicitly as arrays with @(...) to make the intent unambiguous.

Copilot AI review requested due to automatic review settings June 4, 2026 00:28

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.

Pull request overview

Copilot reviewed 5 out of 136 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1

  • $cluster.AgentPoolProfiles is the list of agent pools, so .Count is the number of pools (expected to remain 1 here), not the node count. If the intent is to validate the pool scaled to 4 nodes after Set-AzAksCluster -NodeCount 4, assert against the agent pool's node count property (e.g., AgentPoolProfiles.Count/NodeCount depending on the returned model), rather than the number of pool profiles.
    src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1
  • Assert-AreEqual is being called with only one argument; this will either fail at runtime or not assert what you intend. Given the earlier cluster-profile assertions use Assert-Null for system pool labels/tags, these likely should be Assert-Null $sysPool.NodeLabels and Assert-Null $sysPool.Tags (or provide explicit expected values).
    src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1
  • This creates a private key (id_rsa) in the working directory with a hard-coded passphrase and no cleanup. For live tests, generate keys in a per-scenario temp directory, use an empty passphrase (or a randomized secret if the test requires one), and ensure both private/public key files are deleted in a finally block to avoid leaking credentials in CI agents.

… 2026-03-01

- Bump Aks.Management.Sdk spec pin to commit 0e3000d (matching the pin
  used by Aks.Autorest in PR Azure#29661) and the input path from
  stable/2025-08-01 to stable/2026-03-01; regenerate via
  autorest @autorest/powershell@4.x. Verified Aks/Aks.csproj builds
  cleanly against the new SDK.
- Add 'AzureContainerLinux' to the PSArgumentCompleter on
  New-AzAksCluster -NodeOsSKU and New-AzAksNodePool -OsSKU so the value
  is discoverable via tab completion. The cmdlets are already string
  pass-throughs, so the API call already worked before this change.
- Add Test_AKS_AzureContainerLinux to LiveTests/Aks/TestLiveScenarios.ps1
  as a 1:1 mirror of Test_AKS_CRUD. Only deltas: AzureLinux ->
  AzureContainerLinux on the system pool (incl. asserts), and
  Standard_D2_v3 -> Standard_D2s_v5 (AzureContainerLinux requires a
  Trusted Launch capable VM size). Scoped to mirror the only place
  AzureLinux is exercised in tests today.
- Update ChangeLog under Upcoming Release.
@aadhar-agarwal aadhar-agarwal force-pushed the aadagarwal/add-acl-support branch from bf7f457 to ce793d1 Compare June 4, 2026 00:31
@aadhar-agarwal aadhar-agarwal marked this pull request as ready for review June 4, 2026 00:36
Copilot AI review requested due to automatic review settings June 4, 2026 00:36

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.

Pull request overview

Copilot reviewed 5 out of 136 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (5)

src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1

  • $($cluster.AgentPoolProfiles).Count is the number of agent pool profiles, not the node count. After -NodeCount 4, the correct assertion should target the system pool's node count property (e.g., the matching pool profile's Count) and should also index/select the system pool when checking EnableAutoScaling, since AgentPoolProfiles is a collection.
    src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1
  • $($cluster.AgentPoolProfiles).Count is the number of agent pool profiles, not the node count. After -NodeCount 4, the correct assertion should target the system pool's node count property (e.g., the matching pool profile's Count) and should also index/select the system pool when checking EnableAutoScaling, since AgentPoolProfiles is a collection.
    src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1
  • Assert-AreEqual is called with a single argument here, which will either fail or assert against an implicit/incorrect expected value. If the intent is to validate that system pool labels/tags are absent, use Assert-Null $sysPool.NodeLabels / Assert-Null $sysPool.Tags; if the intent is presence, use Assert-NotNull for each.
    src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1
  • This writes a private key (id_rsa) into the working directory and leaves it behind, and the passphrase is hard-coded and likely includes literal quotes due to -N '\"123456\"'. Consider generating keys in a per-test temp directory, using an empty passphrase for automation (-N \"\"), and deleting both key files in a finally block to avoid leaking credentials/artifacts across runs.
    src/Aks/Aks/Commands/NewAzureRmAks.cs:1
  • The argument completer now includes AzureContainerLinux, but the HelpMessage is still generic and doesn't mention the new option (and any constraints such as being Linux-only). Updating the help text to list or reference the supported OS SKU values (including AzureContainerLinux) would make the new capability discoverable from Get-Help.

@thomas-temby

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

…-03-01

The Aks.Management.Sdk regen pinned to spec commit 0e3000d uses API
version 2026-03-01. Cmdlets now issue requests like:
  /subscriptions/.../managedClusters/foo?api-version=2026-03-01
but the recorded HTTP playback files were keyed on the previous
2025-08-01 version, so the mock server raised KeyNotFoundException for
every recorded test (TestEnableUltraSSD, TestEnableFIPS, TestAadProfile,
TestUpgradeKubernetesVersion, TestEnableOidcIssuer, TestEnableAHUB,
TestAzureKubernetesAddonsEnableAndDisable, etc.).

Bulk-replace the api-version query string across all 32 recordings
that referenced 2025-08-01 (402 occurrences). Response bodies are
unchanged - the 2026-03-01 model is additive over 2025-08-01, so
existing recorded responses deserialize fine into the regenerated
client models.

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

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

The PermissiveRecordMatcherWithApiExclusion matcher used by Aks tests
does NOT rewrite api-version for Microsoft.ContainerService URIs
(only Microsoft.Resources / Features / Authorization are in its
ignore list in AksTestRunner.cs:57). For all other providers it uses
the pre-stored EncodedRequestUri field directly as the lookup key
(PermissiveRecordMatcherWithApiExclusion.cs:80-103, `if (!changed)
encodedPath = recordEntry.EncodedRequestUri`).

The prior commit only updated RequestUri text. EncodedRequestUri
remained the base64 of the original ?api-version=2025-08-01 URL,
so request keys (built from the live request URL with 2026-03-01)
never matched recording keys (still base64 of 2025-08-01).

Recompute EncodedRequestUri = base64(UTF8(RequestUri)) for every
entry where the RequestUri was bumped. 376 swaps across the same
32 files. Diff is one line per entry; no other fields touched.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 4, 2026 02:44

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.

Pull request overview

Copilot reviewed 27 out of 168 changed files in this pull request and generated no new comments.

@thomas-temby

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

…cordings

Spec 2026-03-01 regen of Aks.Management.Sdk flips several property types
from typed enums (e.g. ResourceIdentityType) to plain strings (model-as-string).
The hand-written PS-side models still expose typed enums (e.g.
PSResourceIdentityType?), so AdapterHelper now has to bridge both directions.

Changes in AdapterHelper:
- AdaptEnum: handle null, enum->string, string->enum (Nullable<enum> aware),
  and the legacy enum->enum path. Replaces the GetUninitializedObject call
  that crashed for Target=string with "Uninitialized Strings cannot be
  created".
- Adapt dispatcher: also route string->enum and enum->string properties to
  AdaptEnum (previously only enum source values were dispatched, so
  string->enum silently fell through to the property-walking Adapt path
  and returned default(Target)).

NodePool recordings: update RequestUri api-version and recompute the
matching EncodedRequestUri base64 keys so playback hits the recorded
entries (2025-08-01 -> 2026-03-01).

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

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

Copilot AI review requested due to automatic review settings June 11, 2026 02:13
@NoriZC

NoriZC commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines successfully started running 3 pipeline(s).

@VeryEarly VeryEarly enabled auto-merge (squash) June 11, 2026 02:20

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.

Pull request overview

Copilot reviewed 27 out of 171 changed files in this pull request and generated 2 comments.

Comment on lines +53 to +55
var srcRuntimeValue = sourceProp.GetValue(source);
var targetUnderlying = Nullable.GetUnderlyingType(targetProp.PropertyType) ?? targetProp.PropertyType;
if (srcRuntimeValue is IList)
Comment on lines +42 to 43
[Newtonsoft.Json.JsonProperty(PropertyName = "location")]
public string Location {get; set; }
@VeryEarly VeryEarly merged commit 5e5a2ae into Azure:main Jun 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants