[Aks] Add AzureContainerLinux OS SKU support; regen Management.Sdk to…#29719
Conversation
| Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status. |
There was a problem hiding this comment.
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
AzureContainerLinuxas a supported OS SKU argument completer for cluster and node pool creation cmdlets. - Regenerated
Aks.Management.Sdkagainst the2026-03-01swagger (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. |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
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_rsain the current working directory and uses a hard-coded passphrase that appears to include literal quotes (\"123456\"). This risks overwriting an existingid_rsaon 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 afinally/cleanup block.
src/Aks/Aks.Test/ScenarioTests/KubernetesTests.ps1:1 Assert-AreEqualArrayis likely mismatched with the RHS shape here:(...).OsSKUwill 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'sOsSKU) or wrap both sides explicitly as arrays with@(...)to make the intent unambiguous.
There was a problem hiding this comment.
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.AgentPoolProfilesis the list of agent pools, so.Countis 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 afterSet-AzAksCluster -NodeCount 4, assert against the agent pool's node count property (e.g.,AgentPoolProfiles.Count/NodeCountdepending on the returned model), rather than the number of pool profiles.
src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1Assert-AreEqualis being called with only one argument; this will either fail at runtime or not assert what you intend. Given the earlier cluster-profile assertions useAssert-Nullfor system pool labels/tags, these likely should beAssert-Null $sysPool.NodeLabelsandAssert-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 afinallyblock 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.
bf7f457 to
ce793d1
Compare
There was a problem hiding this comment.
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).Countis 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'sCount) and should also index/select the system pool when checkingEnableAutoScaling, sinceAgentPoolProfilesis a collection.
src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1$($cluster.AgentPoolProfiles).Countis 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'sCount) and should also index/select the system pool when checkingEnableAutoScaling, sinceAgentPoolProfilesis a collection.
src/Aks/LiveTests/Aks/TestLiveScenarios.ps1:1Assert-AreEqualis 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, useAssert-Null $sysPool.NodeLabels/Assert-Null $sysPool.Tags; if the intent is presence, useAssert-NotNullfor 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 afinallyblock to avoid leaking credentials/artifacts across runs.
src/Aks/Aks/Commands/NewAzureRmAks.cs:1 - The argument completer now includes
AzureContainerLinux, but theHelpMessageis 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 fromGet-Help.
|
/azp run |
|
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>
|
/azp run |
|
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>
|
/azp run |
|
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>
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
| var srcRuntimeValue = sourceProp.GetValue(source); | ||
| var targetUnderlying = Nullable.GetUnderlyingType(targetProp.PropertyType) ?? targetProp.PropertyType; | ||
| if (srcRuntimeValue is IList) |
| [Newtonsoft.Json.JsonProperty(PropertyName = "location")] | ||
| public string Location {get; set; } |
Problem
AzureContainerLinuxis missing from PowerShell's tab-completion for-OsSkuonNew-AzAksCluster/New-AzAksNodePool, even though it is a supported AKS node OS. The cmdlets passOsSkuthrough as a string, but the value is undiscoverable.Fix
AzureContainerLinuxto thePSArgumentCompleteronNew-AzAksClusterandNew-AzAksNodePool -OsSku.Aks.Management.Sdkspec 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.model-as-string(e.g.ManagedClusterIdentity.Type). PS-side models still expose typed enums (PSResourceIdentityType?), which crashedAdapterHelper.AdaptEnumand silently defaulted the reverse direction.AdaptEnum+ dispatcher now handle enum→string / string→enum / enum→enum / null.RequestUri+ matchingEncodedRequestUri) to 2026-03-01.Test_AKS_AzureContainerLinuxlive test + ChangeLog entry.Verification
Test_AKS_AzureContainerLinuxcovers the new SKU in Live mode.TestManagedIdentity+TestAzureKubernetesAddonsEnableAndDisableexercise both AdapterHelper enum↔string paths.Related
0e3000d).Mandatory Checklist
Please choose the target release of Azure PowerShell. (⚠️ Target release is a different concept from API readiness. Please click below links for details.)
Check this box to confirm: I have read the Submitting Changes section of
CONTRIBUTING.mdand reviewed the following information:ChangeLog.mdfile(s) appropriatelysrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.## Upcoming Releaseheader in the past tense.ChangeLog.mdif no new release is required, such as fixing test case only.