Я немного озадачен вопросом о том, следует ли передавать .tfstate
файлам Git или нет. В документе Terraform documentation указано:Должен ли я передавать файлы .tfstate в Git?
Terraform также поместил некоторое состояние в файл
terraform.tfstate
по умолчанию. Этот файл состояния чрезвычайно важен; он сопоставляет различные метаданные ресурсов с фактическими идентификаторами ресурсов, чтобы Terraform знал, что он управляет. Этот файл должен быть сохранен и распространен среди всех, кто может использовать Terraform. Мы рекомендуем просто вставить его в контроль версий, поскольку он обычно не слишком велик.
Теперь, с другой стороны, принятый и upvoted ответ на Best practices when using Terraform состояниях:
Terraform конфигурации может использоваться для предоставления многих ящиков на разных инфраструктуры, каждый из которых может иметь другое состояние. Так как он также может управляться несколькими людьми, это состояние должно находиться в централизованном месте (например, S3), но не git.
(Выделено первоначальным автором, не мной)
Кто прав, и если да, то почему?
Вот еще одна причина/способ взглянуть на это: рассмотрите TF + Git как разработку программного обеспечения, используя управление версиями. В этом случае вы не будете хранить артефакты сборки (например, файлы состояния) в своем репозитории VC, а вместо этого в центральном хранилище артефактов (например, ведро S3). – KJH
Вам больше не нужен Terragrunt, чтобы обеспечить блокировку.Теперь он встроен в Terraform: https://www.terraform.io/docs/state/locking.html –