Pulumi now allows developers to use Terraform modules directly, without converting them first. This preview feature allows Pulumi programs written in TypeScript, Python, Go, C# or Java to consume Terraform modules as-is, removing one of the key barriers to adoption.
Writing in the announcement post, Pulumi engineer Anton Tayanovskyy said the feature “addresses one of the most significant challenges our users face when migrating from Terraform to Pulumi” particularly for teams with deep investments in Terraform modules. He explained that it “gives you the best of both worlds: the ability to start new projects in Pulumi immediately while preserving your existing Terraform modules until you’re ready to migrate them”.
Support is provided through the pulumi package add terraform-module command, available from CLI version 3.178.0. Under the hood, Pulumi wraps Terraform’s execution engine using the terraform-module provider. This allows infrastructure defined in .tf modules to behave like native Pulumi components, while still integrating with Pulumi’s state backend, secrets management and automation workflows.
Enterprise accounts lead Dipali Patel described the announcement as a turning point, writing on LinkedIn that “Pulumi just made your Terraform life way easier,” and calling it “the ultimate ‘no excuses’ moment to start modernising your Infra as Code, without the pain of a full rewrite.” Her comments highlight a recognition among teams of the value in tooling that supports gradual transitions over all-or-nothing migrations.
The official Pulumi LinkedIn account echoed that message, stating the new functionality solves “one of the biggest challenges in migrating complex infrastructure.” Pulumi has positioned itself as a platform that allows developers to work in general-purpose languages without giving up compatibility with existing tools and ecosystems.
The feature remains in preview, and Pulumi has been clear about its limitations. The GitHub documentation notes that “Terraform modules have insufficient metadata to precisely identify the type of every module output,” and recommends overriding inferred types manually where needed. Feedback is actively encouraged as the company works to improve compatibility and stability.
Pulumi’s support for Terraform modules mirrors similar features in other widely used tools. CDK for Terraform allows infrastructure to be defined in TypeScript, Python, Java, C# or Go while using existing Terraform modules from the Terraform Registry. Terragrunt also supports referencing remote Terraform modules, helping teams manage shared infrastructure configurations more easily. By enabling direct module support, Pulumi aligns with this broader trend of integrating with Terraform ecosystems rather than replacing them.
The feature allows Pulumi to interoperate more easily with existing Terraform code, offering teams a way to incorporate familiar modules while exploring Pulumi’s language-based approach. It is intended to support gradual adoption without requiring full migration up front.