Remix.run Logo
smithcoin 3 days ago

We use OpenTofu it’s pretty seamless

benatkin 3 days ago | parent | next [-]

Now more will be using a combination of OpenTofu and Terraform, and there will probably be some tacit endorsement of OpenTofu by Hashicorp folks in their communication with those who are using both. Good to see!

Hamuko 3 days ago | parent | prev [-]

Does it do ephemeral values yet?

cube2222 3 days ago | parent [-]

Yep, as of yesterday’s 1.11 release it’s supported!

That also includes a new “enabled” meta argument, so you don’t have to hack around conditional resources with count = 0.

[0]: https://opentofu.org/blog/opentofu-1-11-0/

Disclaimer: affiliated with the project

lijok 3 days ago | parent | next [-]

How do you migrate from count/for_each to `enabled` ?

cube2222 3 days ago | parent [-]

You can just switch from `count = 1` to `enabled = true` (or vice-versa, works back-and-forth) for a resource and tofu will automatically move it next time you apply.

It's pretty seamless.

joombaga 3 days ago | parent | next [-]

That's cool! We'll still need to change all of the references to `resource[0]`, right? Or does tofu obviate that need as well?

cube2222 3 days ago | parent [-]

I’m not sure I understand. You refer to the conditional resource fields normally - without list indices. You just have to make sure the object isn’t null.

There’s some samples in the docs[0] on safe access patterns!

[0]: https://opentofu.org/docs/language/meta-arguments/enabled/

darkwater 2 days ago | parent | prev | next [-]

And you don't get the annoying array form for the resulting resource with the `enabled` syntax, right?

EDIT: Oh just realized the sibling asked the same, but the doc doesn't state that clearly, although it seems to me that the doc implies that yeah, it doesn't use the array form anymore.

cube2222 2 days ago | parent [-]

Yes indeed! It does not use the annoying array form.

darkwater a day ago | parent [-]

Worth switching to Opentofu only for this, then! I fuckin hate the count pattern for conditional present/not present that leads to an array of size == 1.

lijok 3 days ago | parent | prev [-]

Amazing. Good work !

Hamuko 3 days ago | parent | prev [-]

Damn, might finally be able to use it. The lack of ephemeral values was a major blocker.