Terragrunt 文档 专门解决了
.terraform.lock.hcl
文件是否应签入源代码控制存储库。
对 terragrunt 生成的
.tf
文件有何建议?它们也应该添加到源代码管理中吗?
如果不添加它们,它们似乎只会在下一次初始化/计划/应用期间重新生成。但是,管理
.gitignore
文件似乎也很痛苦,这样开发人员就不必担心他们在编辑过程中没有触及的这些文件。
如果建议将它们添加到源代码管理中,那么开发人员必须确保它们至少运行
terragrunt init
或 terragrunt plan
,以便 terragrunt 创建/更新它负责的文件。这似乎也不理想。
处理这些文件的“正确”方法是什么?
请勿将生成的
.tf
文件添加到存储库中。正如您所说,它们将在每次运行时重新生成,因此保留陈旧的文件是没有意义的。只需将 *.tf
添加到存储库根目录中的 .gitignore
。
有关锁定文件的进一步说明:您可以提交锁定文件,但请注意,这可能会损害跨平台兼容性。因此,如果您在多个平台(例如 MacOS 和 Linux)上运行 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 了解更多信息。
我建议不要将
*.tf
添加到您的 .gitignore
,因为您可能希望/需要存储库中的一些本机 Terraform 功能。
默认情况下,从 Terragrunt 生成的文件应在
.terragrunt-cache
内创建(除非在 path
属性中另有指定),除非在实时调用中未使用 Terraform 块(如此处所述),其中如果它们将与实时通话本身一起创建。
只需将
.terragrunt-cache
添加到 .gitignore
,同时使用 Terraform 块就足够了(如官方 Terragrunt 示例存储库中所示)。