DevOps

OpenTofu

OpenTofu це відкритий форк Terraform під ліцензією MPL-2.0, що розвивається під егідою Linux Foundation.

Що це

OpenTofu зʼявився у 2023 році як відповідь на перехід Terraform на BSL 1.1. Спершу проєкт мав назву OpenTF, потім його прийняв Linux Foundation, а пізніше він увійшов до CNCF. Форк зроблено з останньої версії Terraform під MPL-2.0.

Конфігурація, мова HCL, state та провайдери сумісні з Terraform 1.5 і 1.6, тому міграція зазвичай зводиться до заміни бінарника terraform на tofu. Далі проєкт розвивається самостійно, наприклад додав вбудоване шифрування state.

Проєкт керується спільнотою та компаніями, які його підтримують, а не однією компанією, і має публічний процес RFC для нових можливостей.

Коли брати

  • Потрібен Terraform-сумісний інструмент із відкритою ліцензією.
  • Політика компанії забороняє BSL.
  • Хочете нейтральне управління проєктом.

Коли не варто

  • Залежите від комерційних сервісів HashiCorp, як HCP Terraform, і вам потрібна повна сумісність із ними.
  • Використовуєте функції Terraform, доданих після форку, яких в OpenTofu немає.

Ключові поняття

Fork of Terraform
Спільна база коду до версії 1.5, далі окремий розвиток.
tofu CLI
Команди ті самі: init, plan, apply, destroy, лише бінарник називається tofu.
State encryption
Вбудоване шифрування state та plan-файлів, яке з'явилося в OpenTofu.
Registry
Власний реєстр провайдерів і модулів, сумісний із форматом Terraform.

Приклад

Той самий цикл, що в Terraform, але командою tofu.

Питання на співбесіді

  1. 1. Чому зʼявився OpenTofu?

    У серпні 2023 року HashiCorp змінила ліцензію Terraform з MPL-2.0 на BSL 1.1. Спільнота створила форк під відкритою ліцензією й передала його Linux Foundation.

  2. 2. Чи можна перейти з Terraform на OpenTofu?

    Для конфігурацій, сумісних із Terraform до 1.5 і 1.6, це зазвичай проста заміна бінарника та init. Перед міграцією треба перевірити сумісність версій і провайдерів та зробити резервну копію state.

  3. 3. Чим OpenTofu відрізняється вже зараз?

    Він додає власні можливості, наприклад шифрування state, і розвивається за відкритим процесом RFC. Terraform розвивається окремо, тому набори функцій поступово розходяться.

Питання з банку співбесід

Порівняння з цією технологією

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи