Live data from Hacker News

It's Time to Switch to OpenTofu

blog.gruntwork.io

11–20 of 27 posts

Re: It's Time to Switch to OpenTofu

#11
post #4

Or use code instead of HCL. 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…

What is HCL? 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.

HCL is Hashicorp Configuration Language: https://github.com/hashicorp/hcl.

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.

Re: It's Time to Switch to OpenTofu

#12
post #10

Or use code instead of HCL. 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…

I’ve come to appreciate power-limited DSLs. The problem is, they are very tricky to design: too simple and users will start templating, or even worse: programming in them (e.g. Yaml+Sh); too powerful and you’ve got yourself another full programming language (e.g. Dhall). I found HCL, although frequently complaining its type system is clearly designed by Go people, to be pretty close to the sweet spot. For each if-loo…

Had a guy invent a DSL for his Greenfield project as an abstraction layer on top of Python. Within a few months he was asking people to write scripts to programmatically generate the DSL.

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.

Re: It's Time to Switch to OpenTofu

#14
post #6

I've been waiting for https://github.com/opentofu/registry/pull/824 ("Revert commit that removed Russian providers") to be resolved, but it seems to have stalled. Open source does not work as I envisioned, I guess.

"Code is cheap, show me your nationality" approach to opensource is an absolute disgrace to the world. Surely sharing knowledge and volunteer work in software is one place where nationality and politics should have no place

Re: It's Time to Switch to OpenTofu

#15

Or use code instead of HCL. 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…

Pulumi is not free. You can still use Code with Terraform/OpenTofu using CDKTF [0]!

[0]: https://developer.hashicorp.com/terraform/cdktf

Re: It's Time to Switch to OpenTofu

#16
post #8

Just to include this in the discussion, here's some major features that have been added over the last year (but there's a huge amount of small ones too): - 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 confi…

[deleted]

Re: It's Time to Switch to OpenTofu

#17
post #6

I've been waiting for https://github.com/opentofu/registry/pull/824 ("Revert commit that removed Russian providers") to be resolved, but it seems to have stalled. Open source does not work as I envisioned, I guess.

"Code is cheap, show me your nationality" approach to opensource is an absolute disgrace to the world. Surely sharing knowledge and volunteer work in software is one place where nationality and politics should have no place

That's not about nationality though. That PR is about (re)enabling OpenTofu to work more smoothly with Russian SaaSes, which are either already sanctioned or are likely to be sanctioned.

Everything is political, being "apolitical" is a political choice. You can't escape politics.

Re: It's Time to Switch to OpenTofu

#18
post #15

Or use code instead of HCL. 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…

Pulumi is not free. You can still use Code with Terraform/OpenTofu using CDKTF [0]! [0]: https://developer.hashicorp.com/terraform/cdktf

It is possible to self-host it on GCS, S3, etc. We used to pay for their cloud offering, but using GCS as a backend was much more performant than using their backend and extremely cheap (a few cents to dollars per month).

Re: It's Time to Switch to OpenTofu

#19

OpenTofu is now more secure (state encryption), maintainable (early variable evaluation), and powerful (provider iteration) than Terraform. This is the advantage of being truly open source, foundation-managed, and community-driven. Now is a good time to make the switch!

OpenTofu with v1.9 [0] has for_each for providers, something that HashiCorp blocked me on their GitHub, because I kept insisting for them to implement it and they kept giving excuses! One of my points there they didn't like is that instead of improving Terraform and Terraform Cloud so that it can AT LEAST run their own CDKTF, they invested time in GUI development and other useless stuff.

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

Re: It's Time to Switch to OpenTofu

#20
post #15

Or use code instead of HCL. 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…

Pulumi is not free. You can still use Code with Terraform/OpenTofu using CDKTF [0]! [0]: https://developer.hashicorp.com/terraform/cdktf

Pulumi is free: "Pulumi is true open source, uses the Apache 2.0 license, and does not and never will depend on BSL-licensed software in any way, HashiCorp owned or otherwise." (https://www.pulumi.com/blog/pulumi-hearts-opensource/)

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.

Post reply on HN