Sort of. You can use Pulumi for free as an individual. As a team you'd have to use a backend for your state other than Pulumi cloud, and your responsible for your own concurrency control [1]. In a team environment that's such a big foot gun I don't really consider it usable.
That limitation makes Pulumi a nonstarter for me. Even if I am paying for it, this is super sensitive data and I want control over how it's stored. I'm sure Pulumi cloud is excellent, but I hate it's the only real option.
That’s wrong, you can use Pulumi as a team for free so long as you stay under the 150k free credit limit. You don’t have to manage your own state backend.
I’m using the free Pulumi tier at work, we have three EKS clusters, 3 RDS instances, about 6 ECRs, probably 10-12 EC2 instances, various k8s resources, VPCs etc and aren’t paying anything yet.
I do love the product and will be happy to pay when we reach that level.
I've not pushed the concurrency at all but I think it creates a lock file in storage which gives basic concurrency management.
The self hosted backend does have plenty of wringles though like not supporting the same stack name across different projects with the same backend URL contrary to how the hosted backend works.
Nonetheless it has been perfectly usable for us without paying for their hosting.
> The self hosted backend does have plenty of wringles though like not supporting the same stack name across different projects with the same backend URL contrary to how the hosted backend works.
Just a note that we did add support for projects to the self-hosted backend a few months ago, which does bring the self-hosted and managed backends into alignment here.
The Terraform equivalent is pretty good. You can just use DynamoDB for concurrency control, S3 for state control, and it's very easy to set up. I imagine Pulumi is not very different on this front. Very little boiler plate and you're off to the races.