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.
Приклад
Питання на співбесіді
1. Чому зʼявився OpenTofu?
У серпні 2023 року HashiCorp змінила ліцензію Terraform з MPL-2.0 на BSL 1.1. Спільнота створила форк під відкритою ліцензією й передала його Linux Foundation.
2. Чи можна перейти з Terraform на OpenTofu?
Для конфігурацій, сумісних із Terraform до 1.5 і 1.6, це зазвичай проста заміна бінарника та init. Перед міграцією треба перевірити сумісність версій і провайдерів та зробити резервну копію state.
3. Чим OpenTofu відрізняється вже зараз?
Він додає власні можливості, наприклад шифрування state, і розвивається за відкритим процесом RFC. Terraform розвивається окремо, тому набори функцій поступово розходяться.
Питання з банку співбесід
Порівняння з цією технологією
Схожі технології
- TerraformTerraform це інструмент інфраструктури як коду: ви описуєте ресурси хмари в конфігурації, а він створює та змінює їх.
- AnsibleAnsible це інструмент автоматизації без агентів: плейбуки на YAML налаштовують сервери та розгортають ПЗ через SSH.
- KubernetesKubernetes це система оркестрації контейнерів: розгортає, масштабує та лікує застосунки на кластері серверів.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).