Skip to content

Add blog post: Filling the Gaps in Terraform-to-Pulumi Migration - #21132

Draft
jdavredbeard wants to merge 7 commits into
masterfrom
blog/terraform-migration-import-tool
Draft

Add blog post: Filling the Gaps in Terraform-to-Pulumi Migration#21132
jdavredbeard wants to merge 7 commits into
masterfrom
blog/terraform-migration-import-tool

Conversation

@jdavredbeard

@jdavredbeard jdavredbeard commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

New engineering blog post introducing pulumi-tool-import and its agent skills for Terraform → Pulumi (AWS Classic) migration.

  • Walks the digest → resolve → import → patch-state → zero-diff preview pipeline and the migration pain points each stage addresses: in-memory secret handling with encryption to stack config, reproducible import files via the mappings file, batched failure-isolating imports, state patching for fields the cloud API doesn't return, and state injection for non-importable resources.
  • Covers the agent skills' validated workflow (zero-diff gated, value tracing, deployed-state-as-source-of-truth, module→component authoring).
  • Includes a proof point: a recent Professional Services customer has migrated 4,000+ resources on their own with the tool.
  • Adds a new author profile: data/team/team/jonathan-davenport.toml.
  • Feature image generated with /blog-feature-image (feature-logo-2: Terraform + Pulumi).

Before ready-for-review

  • Publish date set: 2026-08-31
  • Social copy added (passed critique review)
  • Confirmed: repo is public; post clarifies the tool is a ProServ-maintained CLI plugin, not core product

🤖 Generated with Claude Code

Introduces pulumi-tool-import and its agent skills: the digest → resolve →
import → patch-state pipeline for migrating Terraform (and CDK/CFN)
workspaces onto the AWS Classic provider, with secrets handled via
encrypted stack config, batched failure-isolating imports, state patching
for fields the cloud API doesn't return, and state injection for
non-importable resources. Adds author profile for jonathan-davenport.

Date is a 2099-01-01 placeholder until a publish date is chosen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Publish date 2026-08-31; social copy for X/LinkedIn/Bluesky (passed
critique review); clarify the tool is a ProServ-maintained Pulumi CLI
tool plugin using the Automation API, not part of the core product.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Social Media Review

content/blog/filling-the-gaps-in-terraform-to-pulumi-migration/index.md

X — PASS

LinkedIn — PASS

Bluesky — PASS


Updated for commit cbc580a47d73dfb508043427479a788de30fea72 (short: cbc580a) at 2026-08-25 19:32 UTC.

…ulty

Reframe the intro and gaps section: migration is doable and the gaps are
mechanical/automatable, with the 4,000-resource self-service customer as
the proof point up front.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Intro concedes migrations are hard but frames the gaps as mechanical and
largely upstream of Pulumi (AWS write-only API design, Terraform
providers shipping without importers), per the root-cause taxonomy in
the tool repo's aws-import-diff-fields.md. Social copy recast so the
customer's 4,000-resource migration reads as enabled by the tool, not
endured despite the gaps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pulumi-bot

pulumi-bot commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…digest

The command requires --state-file and extracts explicitly mapped values
from Terraform state via the same config-writing helpers as the digest's
automatic pass — it is not for secrets outside state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The CFN front end is less built out; keep the post focused on the
Terraform workflow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants