I deal with a 40k line Terraform codebase. I love the idea of a more expressive language for infrastructure (and unit tests, validations, etc.), and even wrote a tiny JS library a long time ago for generating TF 0.11 from JS [1]
However, the migration paths laid out in the Pulumi docs are completely intractable for a codebase this size [2]. I'd love to give Pulumi a try, but it would only work if you could auto-generate a corresponding JS project structure from the various .tf modules and .tfstate files. Right now, it looks like tf2pulumi just spits out a single stream to stdout, which won't work for large projects like mine.
If anyone from Pulumi is here, are there any plans to make tf2pulumi a more "first-class" migration method?
We’ve worked with several Pulumi users who have migrated thousands of resources (including in production) from being managed by Terraform to being managed by Pulumi - so this is definitely possible.
We’re actively working on an overhaul of the tf2pulumi tool to support more Pulumi languages and more breath of Terraform project structures. But already it should support the majority of adoption use cases.
At-scale adoption can be done in Pulumi by combining transformations [1] and imports [2]. Together, these allow programmatically importing existing resources without the need for manual steps.
If you have more detailed questions on this - feel free to reach out on the Pulumi Community Slack (I’m @luke) for a deeper discussion: https://slack.pulumi.com/
However, the migration paths laid out in the Pulumi docs are completely intractable for a codebase this size [2]. I'd love to give Pulumi a try, but it would only work if you could auto-generate a corresponding JS project structure from the various .tf modules and .tfstate files. Right now, it looks like tf2pulumi just spits out a single stream to stdout, which won't work for large projects like mine.
If anyone from Pulumi is here, are there any plans to make tf2pulumi a more "first-class" migration method?
[1] https://github.com/mayanklahiri/node-genesis-device
[2] https://www.pulumi.com/docs/guides/adopting/from_terraform/