- Home
- Skills
- Pulumi
- Agent Skills
- Pulumi Arm To Pulumi
pulumi-arm-to-pulumi_skill
25
GitHub Stars
2
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill pulumi/agent-skills --skill pulumi-arm-to-pulumi- arm-import.md13.4 KB
- SKILL.md22.3 KB
Overview
This skill converts Azure ARM templates, Bicep templates, or ARM/Bicep code into Pulumi programs and assists with importing existing Azure resources into Pulumi stacks. It enforces a rigorous migration workflow, ensures complete resource coverage, and produces a formal migration report suitable for a pull request. Use it when you need accurate, production-ready Pulumi code or validated imports with zero-diff assurance.
How this skill works
The skill guides you through a strict workflow: verify Azure credentials, analyze ARM/Bicep template structure, inventory deployed resources when importing, and manually translate each resource into Pulumi code. It recommends provider choices (azure-native first, azure classic as fallback), shows patterns for parameters/variables/loops/conditionals/dependencies, and requires a final migration report that maps ARM → Pulumi artifacts and validation steps. If information is missing or ambiguous, it prompts targeted questions before changing code.
When to use it
- Migrating ARM templates or Bicep templates to Pulumi programs
- Converting ARM/Bicep code into TypeScript, Python, Go, C#, Java, or YAML Pulumi
- Importing existing Azure resources into a Pulumi stack with zero-diff validation
- Preparing a pull request with a formal migration report and resource mapping
- Assessing provider choice between @pulumi/azure-native and @pulumi/azure
Best practices
- Always validate Azure credentials via Azure CLI before inventory or import
- Prefer @pulumi/azure-native for full ARM parity; use classic provider only when necessary
- Preserve parameter defaults, conditionals, copy loops, and dependsOn semantics in Pulumi
- Require a pulumi preview that succeeds and, for imports, shows zero diffs before finishing
- Produce a final migration report with mappings, provider decisions, differences, and validation steps
Example use cases
- Translate a deployed ARM template for a resource group (VNets, subnets, storage accounts) into a Pulumi TypeScript program
- Import existing production resources into a new Pulumi stack and confirm zero-diff via pulumi preview
- Break nested ARM deployments into Pulumi ComponentResources to improve reusability and testing
- Convert ARM parameters and securestring secrets into Pulumi Config and requireSecret usage
- Replace ARM copy loops and conditions with explicit Pulumi loops and conditional resource creation
FAQ
Default to @pulumi/azure-native for ARM parity. Use @pulumi/azure (classic) only for unsupported features or simplified abstractions.
What if the ARM template is missing information or uses ambiguous expressions?
The skill will prompt targeted questions. Do not proceed with code changes until required details (parameters, properties, or intent) are clarified.
How do you validate imports?
After import, run pulumi preview. The preview must show no creates/updates/replaces/deletes. Any diffs must be resolved using the preview resolution workflow.