Из ClickOps в код: как я оживил Terraformer и научил его говорить с провайдерами напрямую
Почти у каждой команды есть «накликанная» инфраструктура. Кто-то когда-то создал VPC в консоли, кто-то вручную настроил бакет, DNS-зоны живут отдельно, а в Terraform описана только половина. Чтобы взять это под управление, нужно две вещи: найти всё, что существует, и написать для каждого объекта конфиг, который совпадает с реальностью. Для этого был Terraformer от Waze SRE: 14,5 тысячи звёзд на GitHub, около 800 тысяч скачиваний релизов, 44 провайдера, от AWS и Google Cloud до Datadog, Cloudflare и Yandex Cloud. Одна команда, и у вас папка с .tf -файлами. 16 марта 2026 года репозиторий перевели в архив. Полноценной замены не появилось. Есть форк chenrui333/terraformer , который продолжает выпускать релизы, но он сохранил прежний подход: HCL плюс tfstate . Встроенные import -блоки генерируют конфиг, но ID каждого ресурса нужно найти самому. В Terraform 1.14 появилась команда query для поиска ресурсов, но она есть только в Terraform и работает только с провайдерами, которые это поддерживают. В OpenTofu поиска нет вовсе: запрос висит со статусом «решение не принято». Я взялся продолжить проект. Получился Unclick ( GitHub , Apache-2.0). В статье расскажу, почему Terraformer перестал работать с современными провайдерами, как устроен протокол плагинов Terraform изнутри и как сделать так, чтобы сгенерированный конфиг проходил plan без ручной правки. Как это устроено
