是否应该将 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 init
或 terragrunt 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。
Terrag运行t 文档 specifically addresses whether .terraform.lock.hcl
files should be checked into source control repos.
对于 terrag运行t 生成的 .tf
文件的建议是什么?它们是否也应该添加到源代码管理中?
如果不添加它们,它们似乎只会在下一个 init/plan/apply 期间重新生成。但是,管理 .gitignore
个文件似乎也很痛苦,这样开发人员就不必担心他们在编辑过程中没有触及的这些文件。
如果建议将它们添加到源代码管理中,那么开发人员必须确保他们至少 运行 terragrunt init
或 terragrunt 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。