Обычный довод за то, чтобы заменить файлы HCL языком общего назначения, это циклы и функции. Иногда он справедлив. Но вместе с ним обычно приезжает жалоба на дрейф, а дрейф не языковая проблема.
HCL это синтаксис структурированной конфигурации. Блоки, атрибуты, выражения и JSON-форма, которая ложится на ту же структуру. Что значит блок, решает инструмент, который его читает. Файл описывает, чего вы хотите. Дрейф это реальный ресурс, изменившийся за спиной у файла. Диск, увеличенный вручную в веб-консоли, тег, поправленный скриптом, о котором никто не помнит. Программа на Python, выдающая то же желаемое состояние, дрейфует точно так же.
Язык общего назначения меняет другое, а именно сколько рецензенту приходится исполнять в голове. С простыми блоками я читаю diff и вижу, какой ресурс сдвинется. С циклом по словарю, собранному вспомогательной функцией, его сначала нужно запустить.
Для файлов, которые в основном перечисляют ресурсы, оставьте скучный синтаксис и потратьте силы на поиск дрейфа. Регулярный запуск plan, который громко падает, когда реальность и файл расходятся, даёт больше любого переписывания.