KazDevOps
5.36K subscribers
1.15K photos
25 videos
18 files
1.17K links
Канал о DevOps во всех проявлениях: K8s, CI/CD, AppSec, AI/ML, Cloud, Linux
Поможем с DevOps: https://core247.kz/
По рекламе @UlKonovalova
Download Telegram
Forwarded from DevOps FM
👩‍💻 Всем 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍82😎2