$ terraform plan -target=brain
Troubleshooting Garden.
Сломанная конфигурация → починить.
Сэндбокс поднимается с заведомо сломанным HCL. Твоя задача: найти что не так, починить, и доказать verify-проверкой что решение работает.
Это не курс по фичам Terraform, а пять реальных инцидентов, которые случаются на проде. TTL: 30 минут на каждый.
Пять садов
Порядок не обязателен, каждый урок самодостаточен. Но 01 → 05 по нарастанию сложности.
- Garden 01~18 мин
Cycle Error
random_id.keepers ссылается на ресурс, который зависит от того же random_id. Граф рекурсивный, plan не строится. Найди цикл, перепиши без обратной ссылки.
- Garden 02~20 мин
State и облако разъехались
Кто-то отключил versioning через AWS CLI; параллельно завёлся orphan-бакет. Plan молчит. Покажи drift через refresh-only, прими решение по каждому случаю.
- Garden 03~16 мин
Import показывает на пустоту
Два import-блока с опечатками в id. В облаке ресурсы есть, но с другими именами. Plan валится с «Cannot import non-existent remote object».
- Garden 04~18 мин
Checkov fail в pipeline
CI красный: CKV_AWS_53 и CKV_AWS_21. Бакет реально публичный (продукт сказал), versioning suspended. Решай где чинить, где суппрессить с обоснованием.
- Garden 05~20 мин
Модуль протух, провайдер обновился
Root на AWS provider v5, child-модуль написан под v3 (inline acl, versioning {}, encryption {}). init валится конфликтом версий. Перепиши под современный стиль.
Как устроен Garden-урок
Init-скрипт кладёт в sandbox готовый HCL с заложенной поломкой, что-то совпадающее с реальным production-инцидентом.
Первый шаг: воспроизвести ошибку через terraform CLI, чтобы убедиться что её точно видишь. Дальше идёт анализ (граф, refresh-only, AWS CLI), исправление и финальный verify.
Verify использует те же типы что в обычных уроках: terraform_state_resource, terraform_plan_clean, file_content, command_with_output_regex. Никаких specialised garden-проверок нет, методика одинаковая.
$ назад к полному списку /lessons