docs: add Azure provider ecosystem guide#18568
Conversation
Add a holistic guide covering the full Pulumi Azure provider ecosystem,
explaining when to use each provider and how they compose together.
New files:
- content/docs/iac/clouds/azure/guides/_index.md
- Guides landing page for the Azure docs section
- content/docs/iac/clouds/azure/guides/providers.md
- Comprehensive guide covering azure-native, azure-classic, azuread,
azuredevops, and the community azapi package
- Explains the underlying API each targets (ARM, Microsoft Graph, DevOps REST)
- Notes the Microsoft Entra ID rebrand (Azure AD -> Entra ID)
- Covers azure-native versioning (v1, v2, v3)
- Provides a decision table and combined multi-provider code examples
- static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/
- Example programs demonstrating azure-native + azuread together
Closes #17745
Docs Review — PR #18568Scope: All 19 new files (2 content docs, 17 static program files across 6 languages). This is a well-structured guide that fills a real gap in the Azure documentation. The content is accurate, clearly written, and follows the established pattern from the GCP provider guide. A few items to address: Issues1. Stale time reference in the AzAPI section —
This is nearly two years old and may no longer be accurate. Consider rephrasing to avoid a point-in-time reference that will age: Or verify the current maintenance status and update accordingly. 2. Likely incorrect .NET package casing for Azure DevOps — The table lists Please verify the actual NuGet package name and correct the casing. 3. Go module uses azure-native-sdk v2 while text says v3 is current — The guide text at Minor suggestions4. Since Microsoft completed the rebrand to "Entra ID" in 2023, consider leading with the current name: This would be consistent with the note in 5. The "Packages at a glance" table is extremely wide — The five-column table with full Go import paths will likely overflow or require horizontal scrolling on smaller viewports. This is a minor presentation concern — no action required, but worth confirming it renders acceptably on the live site. What looks good
Mention @claude if you'd like additional reviews or help fixing any of the above items. |
CamSoper
left a comment
There was a problem hiding this comment.
Thanks for the guide, Joe -- the prose and structure are solid. A handful of concrete fixes before merge, mostly around the failing CI:
CI failures
Lint -- trailing blank line at EOF in both content files:
content/docs/iac/clouds/azure/guides/_index.md:37content/docs/iac/clouds/azure/guides/providers.md:261
Go program won't compile -- pulumi-azuread/sdk/v4 uses the legacy ApplicationId field name, but the program code uses ClientId. The cleanest fix is to bump both Azure module versions in static/programs/azure-providers-go/go.mod to match the current ecosystem and the v3 recommendation in the guide:
github.com/pulumi/pulumi-azure-native-sdk/resources/v3 v3.16.0
github.com/pulumi/pulumi-azuread/sdk/v6 v6.9.0
Then update the import in main.go from sdk/v4/go/azuread to sdk/v6/go/azuread. That also resolves the v2-vs-v3 inconsistency noted in the earlier review.
Java program won't run -- static/programs/azure-providers-java/pom.xml declares <mainClass> under <properties> but doesn't wire it to the exec-maven-plugin that the test harness invokes via mvn exec:java. Copy the org.codehaus.mojo:exec-maven-plugin block from static/programs/aws-providers-combine-java/pom.xml (or gcp-providers-classic-java/pom.xml).
From the earlier review, still unaddressed
providers.md:40-- the table listsPulumi.Azuredevops; the canonical NuGet package id isPulumi.AzureDevOps.providers.md:217-- "As of mid-2024, the package has had little maintenance activity." -- the azapi repo's most recent commit is 2025-07-01, so the mid-2024 framing is stale. Consider a non-dated phrasing: "The package has historically seen limited maintenance activity."
- Remove trailing blank lines at EOF in both content files (lint fix) - Upgrade Go azuread sdk/v4 to sdk/v6 (ClientId field compatibility, v3 alignment) - Upgrade Go azure-native-sdk resources/v2 to resources/v3 (match guide recommendation) - Update Go azuread import path in table from sdk/v4 to sdk/v6 - Add exec-maven-plugin to Java pom.xml for test harness compatibility - Fix .NET package casing: Pulumi.Azuredevops -> Pulumi.AzureDevOps - Replace stale mid-2024 date reference with non-dated azapi maintenance note
|
Thanks for the thorough review, @CamSoper. All items addressed in the latest push (579050d):
|
|
Your site preview for commit 097213b is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-18568-097213b9.s3-website.us-west-2.amazonaws.com |
|
CI is now green on both checks. All review feedback from @CamSoper has been addressed — requesting a re-review when you have a moment. |
The existing warning described limited maintenance; the repo was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Tightens the wording to reflect current state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CamSoper
left a comment
There was a problem hiding this comment.
Thanks for the quick turn on the prior feedback, Joe -- CI is green, the Go module bump to v3/v6 resolved both the build failure and the version consistency, and the Java pom now wires exec-maven-plugin. Casing and the stale date reference are fixed.
One small accuracy follow-up landed directly on the branch: the AzAPI warning block called out "limited maintenance activity," but a fact-check turned up that dirien/pulumi-azapi was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Swapped the phrasing to say that outright.
Optional nit (not blocking, feel free to ignore): the inline AKS example at providers.md:118-154 still uses servicePrincipalProfile with clientId/secret. That's valid in azure-native v3, but Microsoft's current guidance for new AKS clusters is managed identity. Since the example's whole point is to motivate azuread as a companion provider, swapping to managed identity would undercut that -- so no action needed unless you want to add a one-liner noting managed identity is the modern default.
Approving with auto-merge on squash.
* docs: add Azure provider ecosystem guide (pulumi#17745) Add a holistic guide covering the full Pulumi Azure provider ecosystem, explaining when to use each provider and how they compose together. New files: - content/docs/iac/clouds/azure/guides/_index.md - Guides landing page for the Azure docs section - content/docs/iac/clouds/azure/guides/providers.md - Comprehensive guide covering azure-native, azure-classic, azuread, azuredevops, and the community azapi package - Explains the underlying API each targets (ARM, Microsoft Graph, DevOps REST) - Notes the Microsoft Entra ID rebrand (Azure AD -> Entra ID) - Covers azure-native versioning (v1, v2, v3) - Provides a decision table and combined multi-provider code examples - static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/ - Example programs demonstrating azure-native + azuread together Closes pulumi#17745 * fix: address CI failures and review feedback on Azure provider guide - Remove trailing blank lines at EOF in both content files (lint fix) - Upgrade Go azuread sdk/v4 to sdk/v6 (ClientId field compatibility, v3 alignment) - Upgrade Go azure-native-sdk resources/v2 to resources/v3 (match guide recommendation) - Update Go azuread import path in table from sdk/v4 to sdk/v6 - Add exec-maven-plugin to Java pom.xml for test harness compatibility - Fix .NET package casing: Pulumi.Azuredevops -> Pulumi.AzureDevOps - Replace stale mid-2024 date reference with non-dated azapi maintenance note * docs: disclose AzAPI repo archival in warning block The existing warning described limited maintenance; the repo was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Tightens the wording to reflect current state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: workprenticebot <257153108+workprenticebot@users.noreply.github.com> Co-authored-by: Cam <csoper@pulumi.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add Azure provider ecosystem guide (pulumi#17745) Add a holistic guide covering the full Pulumi Azure provider ecosystem, explaining when to use each provider and how they compose together. New files: - content/docs/iac/clouds/azure/guides/_index.md - Guides landing page for the Azure docs section - content/docs/iac/clouds/azure/guides/providers.md - Comprehensive guide covering azure-native, azure-classic, azuread, azuredevops, and the community azapi package - Explains the underlying API each targets (ARM, Microsoft Graph, DevOps REST) - Notes the Microsoft Entra ID rebrand (Azure AD -> Entra ID) - Covers azure-native versioning (v1, v2, v3) - Provides a decision table and combined multi-provider code examples - static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/ - Example programs demonstrating azure-native + azuread together Closes pulumi#17745 * fix: address CI failures and review feedback on Azure provider guide - Remove trailing blank lines at EOF in both content files (lint fix) - Upgrade Go azuread sdk/v4 to sdk/v6 (ClientId field compatibility, v3 alignment) - Upgrade Go azure-native-sdk resources/v2 to resources/v3 (match guide recommendation) - Update Go azuread import path in table from sdk/v4 to sdk/v6 - Add exec-maven-plugin to Java pom.xml for test harness compatibility - Fix .NET package casing: Pulumi.Azuredevops -> Pulumi.AzureDevOps - Replace stale mid-2024 date reference with non-dated azapi maintenance note * docs: disclose AzAPI repo archival in warning block The existing warning described limited maintenance; the repo was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Tightens the wording to reflect current state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: workprenticebot <257153108+workprenticebot@users.noreply.github.com> Co-authored-by: Cam <csoper@pulumi.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add Azure provider ecosystem guide (pulumi#17745) Add a holistic guide covering the full Pulumi Azure provider ecosystem, explaining when to use each provider and how they compose together. New files: - content/docs/iac/clouds/azure/guides/_index.md - Guides landing page for the Azure docs section - content/docs/iac/clouds/azure/guides/providers.md - Comprehensive guide covering azure-native, azure-classic, azuread, azuredevops, and the community azapi package - Explains the underlying API each targets (ARM, Microsoft Graph, DevOps REST) - Notes the Microsoft Entra ID rebrand (Azure AD -> Entra ID) - Covers azure-native versioning (v1, v2, v3) - Provides a decision table and combined multi-provider code examples - static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/ - Example programs demonstrating azure-native + azuread together Closes pulumi#17745 * fix: address CI failures and review feedback on Azure provider guide - Remove trailing blank lines at EOF in both content files (lint fix) - Upgrade Go azuread sdk/v4 to sdk/v6 (ClientId field compatibility, v3 alignment) - Upgrade Go azure-native-sdk resources/v2 to resources/v3 (match guide recommendation) - Update Go azuread import path in table from sdk/v4 to sdk/v6 - Add exec-maven-plugin to Java pom.xml for test harness compatibility - Fix .NET package casing: Pulumi.Azuredevops -> Pulumi.AzureDevOps - Replace stale mid-2024 date reference with non-dated azapi maintenance note * docs: disclose AzAPI repo archival in warning block The existing warning described limited maintenance; the repo was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Tightens the wording to reflect current state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: workprenticebot <257153108+workprenticebot@users.noreply.github.com> Co-authored-by: Cam <csoper@pulumi.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add Azure provider ecosystem guide (pulumi#17745) Add a holistic guide covering the full Pulumi Azure provider ecosystem, explaining when to use each provider and how they compose together. New files: - content/docs/iac/clouds/azure/guides/_index.md - Guides landing page for the Azure docs section - content/docs/iac/clouds/azure/guides/providers.md - Comprehensive guide covering azure-native, azure-classic, azuread, azuredevops, and the community azapi package - Explains the underlying API each targets (ARM, Microsoft Graph, DevOps REST) - Notes the Microsoft Entra ID rebrand (Azure AD -> Entra ID) - Covers azure-native versioning (v1, v2, v3) - Provides a decision table and combined multi-provider code examples - static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/ - Example programs demonstrating azure-native + azuread together Closes pulumi#17745 * fix: address CI failures and review feedback on Azure provider guide - Remove trailing blank lines at EOF in both content files (lint fix) - Upgrade Go azuread sdk/v4 to sdk/v6 (ClientId field compatibility, v3 alignment) - Upgrade Go azure-native-sdk resources/v2 to resources/v3 (match guide recommendation) - Update Go azuread import path in table from sdk/v4 to sdk/v6 - Add exec-maven-plugin to Java pom.xml for test harness compatibility - Fix .NET package casing: Pulumi.Azuredevops -> Pulumi.AzureDevOps - Replace stale mid-2024 date reference with non-dated azapi maintenance note * docs: disclose AzAPI repo archival in warning block The existing warning described limited maintenance; the repo was archived on 2025-07-01 with a README caution redirecting users to the Azure Native provider. Tightens the wording to reflect current state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: workprenticebot <257153108+workprenticebot@users.noreply.github.com> Co-authored-by: Cam <csoper@pulumi.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Adds a holistic guide covering the full Pulumi Azure provider ecosystem, addressing issue #17745. Users often don't understand why multiple Azure providers exist, which API surface each targets, or how they compose together in real deployments.
Changes
New content files:
content/docs/iac/clouds/azure/guides/_index.md— Guides section landing page for the Azure docs, matching the pattern established for Google Cloudcontent/docs/iac/clouds/azure/guides/providers.md— Comprehensive provider ecosystem guide covering:New static programs (all 6 languages):
static/programs/azure-providers-{typescript,python,go,csharp,java,yaml}/Notes
Closes #17745
🧠 This PR was created by workprentice on behalf of @joeduffy.