Подход “Инфраструктура как Код” (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://timurbatyrshin.medium.com/a2df631c5aaa
https://www.facebook.com/tbatyrshin/posts/4708317799204114