Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
Рейтинг: 54.8% · 15 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
Почти два года сидели на Terraform 1.5.7 — последней версии под MPL. Официальный реестр провайдеров для российских IP давно отдаёт 403, жили через прокси-зеркало на собственном Nexus. Но провайдеры стареют: в AWS-провайдере перестали приезжать фиксы под новые ресурсы, и терпение кончилось. За два спринта перевели на OpenTofu 1.10 все 140 воркспейсов.
Что понравилось: шифрование стейта из коробки (pbkdf2, passphrase тянем из Vault), провайдеры теперь можно зеркалировать в OCI-реестр — подняли локальный Harbor и складываем туда, плюс флаг -exclude для точечных применений.
Сам переезд проще, чем казалось: tofu init на существующем стейте проходит без миграции, формат совместимый. Теперь грабли:
1. .terraform.lock.hcl — хэши провайдеров из реестра OpenTofu другие. Перегенерировали: tofu providers lock -platform=linux_amd64 -platform=darwin_arm64.
2. Пара модулей жёстко указывала source с адресом реестра HashiCorp — переписали на git-источники.
3. В CI заменили tfenv на tenv, он умеет и terraform, и tofu, переезд пайплайнов почти бесплатный.
4. Самое важное: однажды включённое шифрование стейта — дорога в один конец. Обратно в plaintext только через явно описанный unencrypted fallback, без него tofu просто откажется писать стейт.
Спрашивайте, если что-то упустил.
Что понравилось: шифрование стейта из коробки (pbkdf2, passphrase тянем из Vault), провайдеры теперь можно зеркалировать в OCI-реестр — подняли локальный Harbor и складываем туда, плюс флаг -exclude для точечных применений.
Сам переезд проще, чем казалось: tofu init на существующем стейте проходит без миграции, формат совместимый. Теперь грабли:
1. .terraform.lock.hcl — хэши провайдеров из реестра OpenTofu другие. Перегенерировали: tofu providers lock -platform=linux_amd64 -platform=darwin_arm64.
2. Пара модулей жёстко указывала source с адресом реестра HashiCorp — переписали на git-источники.
3. В CI заменили tfenv на tenv, он умеет и terraform, и tofu, переезд пайплайнов почти бесплатный.
4. Самое важное: однажды включённое шифрование стейта — дорога в один конец. Обратно в plaintext только через явно описанный unencrypted fallback, без него tofu просто откажется писать стейт.
Спрашивайте, если что-то упустил.
✔ Лучший ответ сформирован автоматически — sneeke
Смысл появляется, когда упираешься в провайдеры. AWS-провайдер 6.x уже толком не тестируется на старых ядрах — мы на 1.5.7 ловили panic при plan на свежем провайдере, и это был последний звонок. Плюс в OpenTofu с 1.9 есть for_each по провайдерам: у нас мультирегион, и раньше это была простыня из копипасты алиасов, теперь один блок. Ну и шифрование стейта — безопасники два года ныли, что стейт с с…
Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
✔ Лучший ответ — сформирован автоматически
Смысл появляется, когда упираешься в провайдеры. AWS-провайдер 6.x уже толком не тестируется на старых ядрах — мы на 1.5.7 ловили panic при plan на свежем провайдере, и это был последний звонок. Плюс в OpenTofu с 1.9 есть for_each по провайдерам: у нас мультирегион, и раньше это была простыня из копипасты алиасов, теперь один блок. Ну и шифрование стейта — безопасники два года ныли, что стейт с секретами лежит в бакете плейнтекстом, тут вопрос закрылся сам собой.
Так что если инфраструктура живая и растёт — переезд окупается за квартал. Если у вас три стенда и десяток ресурсов, то да, можно сидеть на 1.5.7 до пенсии.
Так что если инфраструктура живая и растёт — переезд окупается за квартал. Если у вас три стенда и десяток ресурсов, то да, можно сидеть на 1.5.7 до пенсии.
Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
Подтверждаю историю про lock-файл, тоже наступили. У нас связка с Terragrunt 0.77 — прописали путь к бинарю tofu через переменную окружения, полёт нормальный. Единственное, Atlantis пришлось обновить до версии с поддержкой tofu и явно указать дефолтный бинарь в конфиге, иначе он упорно искал terraform.
- sleepyraccoon
- Сообщения: 35
- Зарегистрирован: 13 май 2026, 11:17
Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
Вы всё спорите про terraform против tofu, а мы в прошлом году выкинули и то и другое — вся инфраструктура декларативно в Crossplane, ресурсы реконсилятся сами, никакого стейта в бакетах и ритуала plan/apply. Ощущение, что спор про лучшую лошадь в эпоху автомобилей.
Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост
Crossplane для команды из трёх девопсов — из пушки по воробьям: вам же кто-то должен сопровождать сам кластер с control plane и писать composition'ы. К тому же у нас половина ресурсов в Yandex Cloud, а провайдер под него для Crossplane сырой и развивается по остаточному принципу. Tofu тут банально предсказуемее: провайдер яндекса обновляется, комьюнити живое. Каждому инструменту своя весовая категория.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Переехали с Kubernetes на docker-compose и сэкономили кучу времени — кто ещё так делал?
16 ответов · 1187 просмотров
-
-
- Вскрыли свой terraform.tfstate на 22 МБ — там призраки уволенных стажёров
12 ответов · 850 просмотров
-
- Команда из 8 человек тратила 60 часов в неделю на k8s. Переехали на docker-compose и выдохнули
9 ответов · 624 просмотров
-
-
- CUDA out of memory — собрал список того, что реально помогает (а не магия)
9 ответов · 486 просмотров
Похожие запросы:
что такое terraform и как начать
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость