kb/refactoring
Перенести ресурс в модуль без пересоздания, `moved` блок. Убрать из state но не из облака, `removed`. Захватить уже существующий ресурс под управление, `import` блок. Декларативный рефакторинг без `state mv` руками и без destroy/recreate.
`moved { from = ..., to = ... }` в HCL декларативно говорит Terraform: «этот ресурс раньше был по одному адресу, теперь по другому, в облаке тот же». Plan покажет «move», не «destroy + create». Появился в TF 1.1. Замена ручному `terraform state mv`, оставляет след в git, повторяется у всех в команде, видно в diff.
Большие конфиги превращаются в спагетти. Базовые рефакторинги: count→for_each (стабильные ключи), разделение на файлы по доменам (network/compute/storage), вынос повторяющегося блока в модуль, объединение мелких ресурсов в составной, удаление мёртвых импортов. Каждый, пошагово, с проверкой `plan` на каждом шагу.