Тестирование в подходе Infrastructure as Code

Подход “Инфраструктура как Код” (IaC) противопоставляется подходу “Infrastructure as Scripts” в том, что к коду (в отличие от скриптов) начинают применять практики обычные для программирования, например тестирование.

Вот что имеет смысл тестировать в IaC:
- контракты (входы и выходы) модулей
- мутации параметров ( `”${env}-${name}”` или `if env=prod then https should be enabled` )
- внешние ограничения (“не должно быть security group с полностью открытыми портами”)

Сами ресурсы, которые мы создаем внутри модуля тестировать, конечно же, смысла не имеет — эта часть декларативна и уже протестирована провайдером ресурса.

Кросспост:
https://timurb.ru/kb/testing-the-iac/
https://t.me/devops_architecture/4
https://www.facebook.com/tbatyrshin/posts/4708317799204114