cloudformation-to-pulumi

Convert AWS CloudFormation stacks and templates into Pulumi TypeScript programs with automated resource import.

Updated Apr 30, 2026
One-click install
npx skills add https://github.com/AdityaBorkar/igbot-fork --skill cloudformation-to-pulumi-adityaborkar
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cloudformation-to-pulumi
Source: https://github.com/AdityaBorkar/igbot-fork/tree/main/.agents/skills/cloudformation-to-pulumi
Command: npx skills add https://github.com/AdityaBorkar/igbot-fork --skill cloudformation-to-pulumi-adityaborkar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Migrating AWS CloudFormation infrastructure to Pulumi requires manually rewriting every resource, mapping intrinsic functions, and importing existing resources without drift. This Skill provides a structured workflow that converts CloudFormation templates to Pulumi TypeScript, preserves Logical IDs for automated import, and validates a zero-diff preview. ## Core Features & Use Cases - Template Conversion: Maps CloudFormation resources, parameters, mappings, conditions, and intrinsic functions (Ref, GetAtt, Sub, Join) to Pulumi aws-native TypeScript equivalents. - Automated Import: Uses the cdk-importer tool to bulk-import existing stack resources by matching CloudFormation Logical IDs, with manual fallback via the cdk2pulumi ID lookup tool. - Zero-Diff Validation: Requires a clean pulumi preview after import and produces a PR-ready migration report with a full resource mapping table. - Use Case: A platform engineer needs to move a production CloudFormation stack under Pulumi management. The Skill fetches the template from AWS, converts all resources to aws-native code, imports them with cdk-importer, and delivers a migration report confirming no drift. ## Quick Start Ask the AI to migrate your CloudFormation stack to Pulumi by providing the stack name, AWS region, and Pulumi ESC environment.

Frequently Asked Questions about cloudformation-to-pulumi

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a CloudFormation stack to Pulumi?▼

Fetch the template with aws cloudformation get-template, convert each resource to Pulumi aws-native TypeScript using the CloudFormation Logical ID as the resource name, then run the cdk-importer tool to import existing resources. Finish by verifying pulumi preview shows no changes.

How do I import existing CloudFormation resources into Pulumi?▼

Use the cdk-importer plugin with the program import command, pointing it at your Pulumi program directory and stack name. Resources named with CloudFormation Logical IDs are matched automatically; failures can be imported manually with pulumi import using IDs from the cdk2pulumi ids tool.

Should I use the aws or aws-native provider for CloudFormation migration?▼

Use aws-native by default because CloudFormation resource types map one-to-one to aws-native, which the cdk-importer relies on for matching. Only use the classic aws provider when aws-native lacks a required feature, and document the exception.

How are CloudFormation intrinsic functions converted to Pulumi?▼

Ref maps to resource outputs or Pulumi config, GetAtt maps to resource property outputs, Sub and Join map to pulumi.interpolate, and conditions become TypeScript ternary or if logic. Parameters become pulumi.Config values and mappings become TypeScript objects.

What are the limitations of the cdk-importer tool?▼

The cdk-importer cannot import CloudFormation Custom Resources and may fail on resources with composite identifiers, leaving placeholder entries in the import file. Failed resources must be imported manually using pulumi import with IDs found via the cdk2pulumi ids lookup.