Skip to content

Remove legacy Azure.ResourceManager.Resources reference - #20203

Merged
Eric Erhardt (eerhardt) merged 1 commit into
mainfrom
FixUpAzureDeployments
Sep 17, 2026
Merged

Eric Erhardt (eerhardt) merged 1 commit into
mainfrom
FixUpAzureDeployments

Conversation

@eerhardt

Copy link
Copy Markdown
Member

This library was spilt into separate libraries. We just need to reference Azure.ResourceManager.Resources.Deployments.

Follow up to #20046

This library was spilt into separate libraries. We just need to reference Azure.ResourceManager.Resources.Deployments.

Follow up to #20046
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20203

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20203"

@github-actions github-actions Bot added the area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication label Sep 17, 2026
@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot September 17, 2026 17:19
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'Directory.Packages.props' selects ALL


Selection computed for commit 51d9f02.

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

The changes consistently complete the mechanical package migration without altering behavior.

Pull request overview

Removes the obsolete Azure Resources dependency after deployment APIs moved to their dedicated SDK.

Changes:

  • Removes the legacy package reference and centralized version.
  • Uses deployment-package extension methods directly.
File summaries
File Description
Directory.Packages.props Removes the legacy package version.
src/Aspire.Hosting.Azure/Aspire.Hosting.Azure.csproj Removes the legacy package reference.
DefaultSubscriptionResource.cs Updates subscription deployment lookup.
DefaultResourceGroupResource.cs Updates resource-group deployment lookup.
DefaultArmClientProvider.cs Updates deployment resource and collection lookups.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 0
  • Review effort level: Balanced

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

@eerhardt
Eric Erhardt (eerhardt) merged commit 85cb3bd into main Sep 17, 2026
815 of 818 checks passed
@eerhardt
Eric Erhardt (eerhardt) deleted the FixUpAzureDeployments branch September 17, 2026 21:19
@github-actions github-actions Bot added this to the 13.6 milestone Sep 17, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Step 5 branch taken: docs_optional → internal_refactor

Triggered signals: no signals triggered (signal_count == 0; .pr-docs-check/signals.json recommendation was docs_optional).

Why this is internal_refactor: All 5 changed files are internal implementation details with no user-facing or public API surface:

  • Directory.Packages.props – removes the now-unused Azure.ResourceManager.Resources package version pin (pure dependency cleanup, no version bump).
  • src/Aspire.Hosting.Azure/Aspire.Hosting.Azure.csproj – removes the corresponding <PackageReference>.
  • src/Aspire.Hosting.Azure/Provisioning/Internal/DefaultArmClientProvider.cs – confirmed via GitHub file read: the class is declared internal sealed class DefaultArmClientProvider : IArmClientProvider; the diff only swaps which ARM SDK namespace/type is used internally (Azure.ResourceManager.ResourcesAzure.ResourceManager.Resources.Deployments), with no change to any public method signature.
  • src/Aspire.Hosting.Azure/Provisioning/Internal/DefaultResourceGroupResource.cs and DefaultSubscriptionResource.cs – both live under the same Provisioning/Internal namespace and are internal ARM SDK adapter classes; the changes are import/type substitutions only.

The PR body itself states this is a follow-up to #20046 that consolidates a legacy Azure SDK package reference into its successor package — an internal dependency/implementation detail with zero effect on any documented Aspire API, CLI, resource builder method, or configuration surface. Nothing in microsoft/aspire.dev documents Azure.ResourceManager.Resources or these internal provisioning classes, so there is no gap to close.

No create_pull_request was emitted for this change.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ CI Failure Analysis: Possible Flaky Test(s)

The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests.

Suspected flaky test(s):

  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationCreatesThePrincipalWithTheIdentityObjectIdAsItsSid in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at Docker.DotNet.DockerClient.MakeRequestAsync[T](IEnumerable`1 errorHandlers, HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers, TimeSpan timeout, CancellationToken token) in /_/src/Docker.DotNet/DockerClient.cs:line 246
   at Docker.DotNet.ContainerOperations.StartContainerAsync(String id, ContainerStartParameters parameters, CancellationToken cancellationToken) in /_/src/Docker.DotNet/Endpoints/ContainerOperations.cs:line 201
   at DotNet.Testcontainers.Clients.TestcontainersClient.StartAsync(String id, CancellationToken ct) in /_/src/Testcontainers/Clients/TestcontainersClient.cs:line 129
   at DotNet.Testcontainers.Containers.DockerContainer.UnsafeStartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 544
  • Why likely flaky: Docker port 1433 contention on shared CI runner is a known recurring environmental issue, unrelated to PR changes in Azure ARM client provisioning code.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationHandlesPrincipalNamesRequiringEscaping in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at Docker.DotNet.DockerClient.MakeRequestAsync[T](IEnumerable`1 errorHandlers, HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers, TimeSpan timeout, CancellationToken token) in /_/src/Docker.DotNet/DockerClient.cs:line 246
   at Docker.DotNet.ContainerOperations.StartContainerAsync(String id, ContainerStartParameters parameters, CancellationToken cancellationToken) in /_/src/Docker.DotNet/Endpoints/ContainerOperations.cs:line 201
   at DotNet.Testcontainers.Clients.TestcontainersClient.StartAsync(String id, CancellationToken ct) in /_/src/Testcontainers/Clients/TestcontainersClient.cs:line 129
   at DotNet.Testcontainers.Containers.DockerContainer.UnsafeStartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 544
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationIsANoOpWhenTheScriptRunsAgain in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 340
   at Aspire.Hosting.Azure.Tests.SqlServerContainerFixture.InitializeAsync() in /home/runner/work/aspire/aspire/tests/Aspire.Hosting.Azure.Tests/SqlServerContainerFixture.cs:line 28
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationReplacesThePrincipalWhenTheIdentityObjectIdChanges in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 340
   at Aspire.Hosting.Azure.Tests.SqlServerContainerFixture.InitializeAsync() in /home/runner/work/aspire/aspire/tests/Aspire.Hosting.Azure.Tests/SqlServerContainerFixture.cs:line 28
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationLeavesPrincipalsItDidNotCreateIntact in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 340
   at Aspire.Hosting.Azure.Tests.SqlServerContainerFixture.InitializeAsync() in /home/runner/work/aspire/aspire/tests/Aspire.Hosting.Azure.Tests/SqlServerContainerFixture.cs:line 28
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationRollsBackWhenTheUserCannotBeRecreated in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 340
   at Aspire.Hosting.Azure.Tests.SqlServerContainerFixture.InitializeAsync() in /home/runner/work/aspire/aspire/tests/Aspire.Hosting.Azure.Tests/SqlServerContainerFixture.cs:line 28
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire.Hosting.Azure.Tests.AzureSqlPrincipalReconciliationTests.ReconciliationFailsWithoutDamageWhenThePrincipalOwnsASchema in job Tests / No-package tests (regular, Aspire.Hosting.Azure.Tests, Hosting.Azure, Hosting.Azure, tests/Aspire... / Hosting.Azure (ubuntu-latest)
    • Error: Class fixture type 'Aspire.Hosting.Azure.Tests.SqlServerContainerFixture' threw in InitializeAsync
      ---- Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"failed to set up container networking: driver failed programming external connectivity on endpoint wonderful_cannon (3a2b6f6f6142cfa4b154cd6188030c231ecfd33906f881fee0bc1032b8f2e30f): failed to bind host port for 0.0.0.0::172.17.0.3:1433/tcp: address already in use"}
    • Stack Trace (first frames):
at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers) in /_/src/Docker.DotNet/DockerClient.cs:line 494
   at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 340
   at Aspire.Hosting.Azure.Tests.SqlServerContainerFixture.InitializeAsync() in /home/runner/work/aspire/aspire/tests/Aspire.Hosting.Azure.Tests/SqlServerContainerFixture.cs:line 28
  • Why likely flaky: Same shared SqlServerContainerFixture Docker port 1433 contention as the other AzureSqlPrincipalReconciliationTests failures in this job; unrelated to PR changes.
  • Aspire Blazor browser debugger E2E hits a managed breakpoint for standalone in job Tests / Run VS Code extension E2E tests / VS Code extension E2E (Windows, browser-debugger)
    • Error: Failed to apply E2E control revision 1789681983878: Error: Timed out after 294705ms waiting for pwa-msedge child session for Blazor WASM root 'ec0bbebf-c77c-4099-b4aa-9ba82e08a272'. Last error: .
    • Stack Trace (first frames):
Error: Failed to apply E2E control revision 1789681983878: Error: Timed out after 294705ms waiting for pwa-msedge child session for Blazor WASM root 'ec0bbebf-c77c-4099-b4aa-9ba82e08a272'.
  • Why likely flaky: This is a known recurring flaky-timeout pattern for the Blazor WASM browser debugger E2E test (cause 'vscode-extension-e2e-unrelated-logs-unavailable', 19 prior occurrences), unrelated to the PR's Azure ARM client changes.
  • Aspire extension edge case E2E keeps CLI-independent settings commands available when the CLI is unavailable in job Tests / Run VS Code extension E2E tests / VS Code extension E2E (Windows, edge-cases)
    • Error: Timed out after 10000ms waiting for E2E control revision 1789682081579.
    • Stack Trace (first frames):
at waitForExtensionState (out\test-e2e\test-e2e\helpers\assertions.js:276:11)
    at async applyE2eControl (out\test-e2e\test-e2e\helpers\assertions.js:353:23)
    at async executeE2eControlCommand (out\test-e2e\test-e2e\helpers\fixtures.js:167:12)
    at async Context.<anonymous> (out\test-e2e\test-e2e\edgeCases.e2e.test.js:90:9)
  • Why likely flaky: This is a known recurring flaky-timeout pattern for the VS Code extension edge-cases E2E shard (cause 'vscode-e2e-windows-edge-cases-flaky', 27 prior occurrences), unrelated to the PR's Azure ARM client changes.

Suggested actions:

  • Re-run the failed CI jobs to confirm if the failure is intermittent
  • If the test continues to fail, consider quarantining it using /quarantine-test <test name> <issue URL>
  • Search existing issues to see if this test is already known to be flaky

You can re-run the failed jobs from the workflow run page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants