Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Рейтинг: 54.8% · 15 голосов
Docker, Kubernetes, Helm, Terraform, Ansible, GitLab CI, GitHub Actions: автоматизация деплоя, инфраструктура как код, мониторинг и observability.
Ответить
Аватара пользователя
docker13
Сообщения: 23
Зарегистрирован: 12 май 2026, 16:43

Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение docker13 »

Почти два года сидели на 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 просто откажется писать стейт.

Спрашивайте, если что-то упустил.
👍 ❤️2 🔥1 😄 🤔1
✔ Лучший ответ сформирован автоматически — sneeke
Смысл появляется, когда упираешься в провайдеры. AWS-провайдер 6.x уже толком не тестируется на старых ядрах — мы на 1.5.7 ловили panic при plan на свежем провайдере, и это был последний звонок. Плюс в OpenTofu с 1.9 есть for_each по провайдерам: у нас мультирегион, и раньше это была простыня из копипасты алиасов, теперь один блок. Ну и шифрование стейта — безопасники два года ныли, что стейт с с…
Перейти к ответу →
Аватара пользователя
rabbit8
Сообщения: 41
Зарегистрирован: 13 май 2026, 08:48

Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение rabbit8 »

А смысл дёргаться? Мы так и живём на 1.5.7 плюс зеркало провайдеров на своём Nexus. Терраформ нужен раз в неделю стенд поднять. Что такого в 1.10, ради чего перелопачивать 140 воркспейсов?
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
sneeke
Сообщения: 29
Зарегистрирован: 11 май 2026, 03:15

Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение sneeke »

✔ Лучший ответ — сформирован автоматически
Смысл появляется, когда упираешься в провайдеры. AWS-провайдер 6.x уже толком не тестируется на старых ядрах — мы на 1.5.7 ловили panic при plan на свежем провайдере, и это был последний звонок. Плюс в OpenTofu с 1.9 есть for_each по провайдерам: у нас мультирегион, и раньше это была простыня из копипасты алиасов, теперь один блок. Ну и шифрование стейта — безопасники два года ныли, что стейт с секретами лежит в бакете плейнтекстом, тут вопрос закрылся сам собой.

Так что если инфраструктура живая и растёт — переезд окупается за квартал. Если у вас три стенда и десяток ресурсов, то да, можно сидеть на 1.5.7 до пенсии.
👍2 ❤️1 🔥 😄1 🤔
Аватара пользователя
rawmonk
Сообщения: 7
Зарегистрирован: 11 май 2026, 04:08

Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение rawmonk »

Подтверждаю историю про lock-файл, тоже наступили. У нас связка с Terragrunt 0.77 — прописали путь к бинарю tofu через переменную окружения, полёт нормальный. Единственное, Atlantis пришлось обновить до версии с поддержкой tofu и явно указать дефолтный бинарь в конфиге, иначе он упорно искал terraform.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
sleepyraccoon
Сообщения: 35
Зарегистрирован: 13 май 2026, 11:17

Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение sleepyraccoon »

Вы всё спорите про terraform против tofu, а мы в прошлом году выкинули и то и другое — вся инфраструктура декларативно в Crossplane, ресурсы реконсилятся сами, никакого стейта в бакетах и ритуала plan/apply. Ощущение, что спор про лучшую лошадь в эпоху автомобилей.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
Bowden
Сообщения: 80
Зарегистрирован: 12 май 2026, 09:21

Re: Переехали с Terraform 1.5.7 на OpenTofu 1.10 в проде — собрал все грабли в один пост

Сообщение Bowden »

Crossplane для команды из трёх девопсов — из пушки по воробьям: вам же кто-то должен сопровождать сам кластер с control plane и писать composition'ы. К тому же у нас половина ресурсов в Yandex Cloud, а провайдер под него для Crossplane сырой и развивается по остаточному принципу. Tofu тут банально предсказуемее: провайдер яндекса обновляется, комьюнити живое. Каждому инструменту своя весовая категория.
👍1 ❤️1 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: что такое terraform и как начать

Вернуться в «DevOps и CI/CD»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей