I joined Pulumi because I believe that using the abstraction and tooling that a proper language allows is the way to go, but anything that's not config: CDK, Bicep, TF CDK, etc – is to me a step in the right direction.
It's not that HCL is bad, and I get that it's dominant. It's just the same complaint I have with yaml and yaml templating: You will want something more than a config file at some point. Start today.
Coming from my Haskell background, I’ll say it like Gabriella Gonzalez once put it [1]: _worst practices should be hard_, and this is where and why I think Terraform/Tofu shine and succeeded.
[1]: https://www.haskellforall.com/2016/04/worst-practices-should...
So now you have DSL-generating script & DSL to version control.
The use case of "people who are computer literate enough to operate within an DSL but not literate enough to program code" is always smaller than people think. And probably not who you want to hire.
Comparing to yalm and such, I'm assuming it is using a templating tool that presents a "not programming" front? If so, I think I'm 100% in agreement.
It is complicated, I think, because declarative is nice. But the idea that you have to forego all execution to get declarative code is frustrating, in the extreme.
It's basically a DSL used by a bunch of Hashicorp products.
It's sort of a programming language. Someone I worked with implemented 1 or 2 advent of code exercises with it a couple of years ago, but it's far from a general purpose language.
It's that weird declarative language used in terraform configuration files
Pulumi Cloud (the SaaS offering) is (mostly) not free. There is a free tier for individuals/companies with minimal needs.
You may happily use Pulumi and manage your own state files, for free, and open source.
I just pay the AWS costs under my own account and nothing else.
There’s a good discussion here: https://news.ycombinator.com/item?id=42663231
Now is a good time to make the switch!
They also implemented the proprietary Terraform Stacks, which only work in their overpriced product now rebranded to the ridiculous HCP Terraform!
So, kudos to OpenTofu, not only is it free and fast-moving, but it now has unique features, which we were begging HashiCorp for during the years and they neglected even requests from paying customers!
Another unique OpenTofu feature is that you can use variables in places you couldn't with Terraform, for example, in the backend config. Of course, HashiCorp didn't care about that, because you don't need that if you use their paid product!
I totally understand that HashiCorp needs to make money, but they switch to BUSL, because their competitors such as Spacelift, Scalr, env0, and others were offering better and sometimes cheaper offering. Yeah, "sometimes", because some of them came out to be more expensive than even HCP Terraform, unfortunately.
The switch to "terraforming under influence (of RUM)" that HashiCorp made is a sign of disoriented greed! Basically, it pushes you NOT to use Terraform. For example, I terraformed GitHub repos. So, after their switch of pricing model, I had to pay for every GitHub repository label, for thousands and thousands of niceties, which with the RUM (Resource Under Management) turned every label to costs us money, which easily accumulated to tens of thousands of dollars!
[0]: https://github.com/opentofu/opentofu/releases/tag/v1.9.0
- End-to-End State Encryption - lets you encrypt your state-file end-to-end, either with a key management system like AWS KMS, or static keys.
- Early Evaluation - the ability to parameterize initialiation-time values, like module versions and sources, backend configuration parameters, etc. and keep them DRY.
- Provider Iteration - lets you use for_each with providers, e.g. create one provider per region, something that currently requires a bunch of copy-paste, or tools like Terragrunt
- -exclude flag - the opposite of the -target flag, letting you skip planning/applying certain resources.
Probably the best way to see a summary is to check out the release blog posts for 1.7[0], 1.8[1], and 1.9[2], as well as TFA itself. If you'd like to learn more, I recommend taking a look at the related docs, too.
[0]: https://opentofu.org/blog/opentofu-1-7-0/
[1]: https://opentofu.org/blog/opentofu-1-8-0/
[2]: https://opentofu.org/blog/opentofu-1-9-0/
Disclaimer: involved in opentofu
Open source does not work as I envisioned, I guess.
Everything is political, being "apolitical" is a political choice. You can't escape politics.
Maybe. Maybe not. Maybe hashicorp would have agreed to sell a license to them with terms that allowed their usage of terraform in their products. But it is also quite likely that they would have refused to grant such a license to their competitors.