是否应该将 terragrunt 生成的文件添加到源代码管理中?

Should terragrunt-generated files be added to source control?

Terrag运行t 文档 specifically addresses whether .terraform.lock.hcl files should be checked into source control repos.

对于 terrag运行t 生成的 .tf 文件的建议是什么?它们是否也应该添加到源代码管理中?

如果不添加它们,它们似乎只会在下一个 init/plan/apply 期间重新生成。但是,管理 .gitignore 个文件似乎也很痛苦,这样开发人员就不必担心他们在编辑过程中没有触及的这些文件。

如果建议将它们添加到源代码管理中,那么开发人员必须确保他们至少 运行 terragrunt initterragrunt plan 以便 terrag运行t creates/updates 它负责的文件。这似乎也不理想。

处理这些文件的“正确”方式是什么?

不要将生成的 .tf 文件添加到存储库中。正如您所说,它们将在每个 运行 上重新生成,因此放置陈旧文件是没有意义的。只需将 *.tf 添加到 repo 根目录中的 .gitignore

关于锁定文件的进一步说明:您可以提交锁定文件,但请注意,这可能会损害跨平台兼容性。因此,如果您在多个平台(例如 MacOS 和 Linux)上 运行ning terragrunt/terraform,您可能不想签入锁定文件。或者,您可以使用 providers lock 命令生成适用于多个平台的锁定文件。例如,要生成与基于 Intel 的 MacBook 和 Linux:

兼容的锁定文件
terragrunt run-all providers lock -platform=darwin_amd64 -platform=linux_amd64

有关详细信息,请参阅 https://www.terraform.io/docs/cli/commands/providers/lock.html