option
HomeHome Skill Cloud Infrastructure pulumi-arm-to-pulumi

pulumi-arm-to-pulumi

pulumi/agent-skills pulumi/agent-skills

Convert or migrate Azure ARM (Azure Resource Manager) templates, Bicep templates, or code to Pulumi, including importing existing Azure resources. This skill MUST be loaded whenever a user requests migration, conversion, or import of ARM templates, Bicep templates, ARM code, Bicep code, or Azure resources to Pulumi.

...Expand all
12
Updated time August 24, 2026

About pulumi-arm-to-pulumi

A structured workflow for converting or migrating Azure ARM (Azure Resource Manager) templates, Bicep, or Azure code to Pulumi, including importing existing Azure resources into Pulumi management. It is meant to be loaded whenever such a migration, conversion, or import is requested, and it will revise any migration plan already drafted before the skill was loaded to align with its requirements.

The success criteria are strict: every ARM resource must either appear in the Pulumi program or be explicitly justified in the report; the output must be structurally valid and capable of a successful pulumi preview; and when importing existing resources, preview must show zero diffs (no creates, updates, replaces, or deletes), with any differences resolved through a Preview Resolution Workflow. A formal migration report suitable for a pull request is always produced, covering the ARM-to-Pulumi resource mapping, provider decisions, behavioral differences, and manual steps.

The workflow proceeds in order. Information gathering verifies Azure credentials (using an ESC environment and az login) and analyzes the ARM template with jq to extract resource types, parameters, variables, dependsOn arrays, copy loops, and conditionals, optionally building a resource inventory with az resource list and show. Code conversion is manual, as there is no automated ARM converter, defaulting to the azure-native provider with the classic azure provider as a fallback, preserving all conditionals, loops, and dependencies, in the user's chosen language. Optional resource import uses the inline import resource option with Azure Resource IDs that follow a predictable subscription, resource-group, and provider path, then validates for zero diffs. Finally, stack configuration is set to match ARM parameters. Companion references arm-conversion-patterns.md and arm-import.md provide the detailed mapping patterns and import and zero-diff debugging procedures.

FAQ

Is there an automated tool to convert ARM templates?

No. The skill states ARM-to-Pulumi conversion requires manual translation and that you are responsible for the complete conversion, though reference patterns guide the mapping.

Which Pulumi provider should I use?

Default to @pulumi/azure-native for full Azure Resource Manager API coverage, and fall back to the classic @pulumi/azure provider when azure-native lacks a feature or a simpler abstraction is needed.

What does zero-diff import validation mean?

After importing existing resources, pulumi preview must show no creates, updates, replaces, or deletes. Any diffs are resolved with the Preview Resolution Workflow described in arm-import.md.

How are Azure credentials set up?

Through an ESC environment that provides credentials, using pulumi env run with az login (service principal and federated token), then verifying with az account show. The skill asks which ESC environment to use if none is given.

What is delivered at the end of a migration?

A formal migration report suitable for a pull request, including the ARM-to-Pulumi resource mapping, provider decisions, behavioral differences, any missing or manual steps, and validation instructions.

All Files

5 filesagents/openai.yaml0.2 KBViewarm-conversion-patterns.md12.4 KBViewarm-import.md13.4 KBViewuse_cases.yaml0.7 KBViewSKILL.md10.1 KBView

All Files

0 files

Install pulumi-arm-to-pulumi

Download and extract the skill files to your .claude/skills/ directory.

Download ZIP

Clone the repository and copy the skill files to your project.

git clone https://github.com/pulumi/agent-skills/blob/main/migration/skills/pulumi-arm-to-pulumi/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Copy Copy
Quick Setup: Copy the skill folder to .claude/skills/Claude will automatically detect and use the skill
Repository pulumi/agent-skills

Related Skills

Cloudflare Manager
Updated time June 29, 2026
pinecone
Updated time June 29, 2026
sentry-architecture-variants
Updated time June 29, 2026
azure-setup-guide
Updated time June 29, 2026
OR