TGViewer
DevOps FM DevOps FM @devops_fm · 5.28K subscribers
Post #717 4.24K
👩‍💻 Всем DevOps! Начнём неделю с подборки лучших практик по Terraform:

1. Разделяйте файлы конфигураций. Вместо того чтобы помещать весь код в main.tf, лучше распределите его по нескольким файлам:
• main.tf: вызывает модули, локальные файлы и источники данных для создания всех ресурсов.
• variables.tf: содержит объявления переменных, используемых в main.tf. Чтобы улучшить читаемость кода, размещайте обязательные переменные вверху, а необязательные — внизу, разделяя их строкой комментария;
• outputs.tf: содержит выходные данные ресурсов, созданных в main.tf;
• versions.tf: содержит требования к версиям Terraform и поставщиков;
• data.tf: содержит импорт ресурсов;
• resource.tf: содержит объявление конкретного ресурса;
• terraform.tfvars: содержит значения переменных. Нигде не должен использоваться.

2. Упорядочьте ключи в блоке переменных variables.tf следующим образом: description, type, default, validation.

3. Используйте динамические блоки. Они позволяют создавать конфигурации с более высокой степенью гибкости и автоматизации. Их используют для генерирования повторяющихся блоков кода на основе входных данных, что упрощает управление инфраструктурой и уменьшает объём дублирующегося кода.

4. Старайтесь делать ваши модули ресурсов максимально простыми.

5. Указывайте версии ваших модулей, иначе вы можете столкнуться с неожиданными проблемами при очередном развертывании. Для обновления ваших модулей используйте семантическое версионирование.

6. Если ваши модули тесно связаны — объедините их в один. Такие модули можно хранить в одном репозитории и использовать их в качестве подмодулей. Так вы сможете версионировать их как единое целое, и управлять ими станет проще.

7. Используйте map вместо list для описания группы объектов. Если требуется создать группу идентичных объектов, то лучше использовать map, так ресурсы будут обновляться. При использовании list ресурсы пересоздаются. Для некоторых сценариев это критично.

#bestpractices #devops #terraform
  • 🔥 20
  • 👍 8
  • ❤ 5
More from @devops_fm
  1. Sep 28, 2026Почему Kubernetes API server может съесть память на обычном LIST 👀 Получить список объект…
  2. Sep 25, 2026Redis Streams vs Kafka 📝 Что выбрать для системы обработки событий: Redis Streams или Kaf…
  3. Sep 23, 2026Новостной дайджест от DevOps FM! Делимся свежими новостями и важными изменениями в мире De…
  4. Sep 21, 2026Nxs-anomaly — инструмент для алертинга и дежурств Когда алертов становится много, сама отп…
  5. Sep 18, 2026👩‍💻 Что нового в Kubernetes 1.37? Бодрый DevOps! В эту пятницу разбираем свежие материал…
  6. Sep 16, 2026В эфире DevOps FM – срединедельный дайджест новостей! ⏺В Forgejo обнаружили критическую уя…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →