Короткий ответ
При review инфраструктурного кода нужно сопоставить изменение файлов с итоговым terraform plan, helm diff или результатом CI. Главный вопрос — не только что изменено в репозитории, а что произойдёт с реальными ресурсами и пользователями.
Как это работает подробнее
Код приложения обычно меняет поведение после отдельного деплоя, а IaC описывает состояние уже существующих окружений. Небольшая правка имени или параметра может вызвать пересоздание ресурса, потерю данных или простой.
- Область воздействия. Проверяют production, shared-модули, зависимые сервисы и команды.
- Результат применения. Ищут create, update, destroy и forced replacement, а не ограничиваются строками PR.
- Безопасность. Отдельно проверяют IAM, сетевые правила, секреты и соответствие политикам.
Пример кода
terraform-plan.txt
# aws_db_instance.main must be replaced
-/+ resource "aws_db_instance" "main" {
~ identifier = "prod-orders-db" -> "prod-orders-database" # forces replacement
engine = "postgres"
}Что использовать на практике
- Проверка. Требовать воспроизводимый plan или diff из CI для конкретного окружения.
- Контекст. Указывать владельца, окно изменений, ожидаемый downtime и способ проверки после применения.
- Откат. До approve понимать, обратима ли операция и где находится проверенный backup.
Подводные камни
- Частая ошибка. Одобрить косметический diff, не заметив
forces replacementв plan. - Скрытый риск. Изменение общего модуля может затронуть больше ресурсов, чем перечислено в PR.