Azure / terraform-azurerm-avm-ptn-alz

Terraform module to deploy Azure Landing Zones
https://registry.terraform.io/modules/Azure/avm-ptn-alz/azurerm
MIT License
71 stars 16 forks source link

[AVM Question/Feedback]: version constraint `~> 1.9` kick out OpenTofu #119

Closed c-baumgartner closed 1 month ago

c-baumgartner commented 1 month ago

Check for previous/existing GitHub issues

Description

Hi,

I am just trying to get avm modules used in a project with OpenTofu. Making progress but now the latest 0.9.0-beta version of this module is not OpenTofu compatible because of the version constraint `~> 1.9'

OpenTofu is discussing this issue internally how to avoid situation, like this that an required module is pointing the a version string, OpenTofu does not fulfill. Currently there is no way to work around this to my knowledge :-(

Is there a reason why this module depents on terraform 1.9+?

matt-FFFFFF commented 1 month ago

Hi this was not a deliberate choice to penalise tofu, but we currently do not test against opentofu and want to make use of the features in 1.9, especially the cross variable validation.

Up until this point we've been reliant on opentofu's compatibility promises but this is a bit of an issue. I expect the same issue with ephemeral values once these are released in 1.10. Happy to consider alternatives?

c-baumgartner commented 1 month ago

Thank you for your response! First and foremost, I want to clarify that I didn’t mean to imply you were intentionally excluding OpenTofu 😃.

After a quick review of the latest release, I couldn’t find an explanation for the version jump from 1.6 to 1.9. I am always happy to consider alternatives, but the only feasible solution I see for this is OpenTofu needs to implement all changes made to the Terraform API more quickly. Otherwise, this totally feels like playing the lottery 😄

Until a resolution is available, I’ll continue using version 0.8.1 of your fantastic module.

matt-FFFFFF commented 1 month ago

I can see two resolutions, as you say we do not use the cross-var validation features of 1.9 at the moment.

Therefore is a move back to ~> 1.8 workable for you?

Either that or a _override.tofu file

c-baumgartner commented 1 month ago

I was not aware of this override "feature" in OpenTofu 🙈. In my opionion, using override would sound as the cleanest solution but a little bit more maintenance for you. But with that you could override the variable blocks using cross-referencing input validation and also the terraform block / the required_version constraint. Someone using terraform is not affected by this quirk.

I created a fork and will create a PR with this change and can keep an eye on the override.tofu files, ok?

matt-FFFFFF commented 1 month ago

fixed by #123