Представлен выпуск проекта OpenTofu 1.7, продолжающего развитие открытой кодовой базы платформы управления конфигурацией и автоматизации поддержания инфраструктуры Terraform. Разработка OpenTofu ведётся под покровительством организации Linux Foundation с использованием открытой модели управления при участии сообщества, сформированного из заинтересованных в проекте компаний и энтузиастов (о поддержке проекта объявили 161 компания и 792 индивидуальных разработчика). Код проекта написан на языке Go и распространяется под лицензией MPL 2.0.
Форк создан в ответ на перевод компанией HashiCorp своих продуктов на проприетарную лицензию BSL 1.1, ограничивающую использование кода в облачных системах, конкурирующих с продуктами и сервисами HashiCorp. Cмена лицензии объясняется желанием сохранить финансирование своих разработок в условиях неспособности классических моделей лицензирования противостоять паразитированию компаний, использующих готовые открытые исходные тексты разработок HashiCorp для создания собственных коммерческих облачных продуктов без участия в совместной разработке.
Платформа может использоваться для построения, изменения и версионирования инфраструктуры в соответствии с концепцией инфраструктура как код, при которой конфигурация систем описывается на высокоуровневом предметно-ориентированном языке и обрабатывается по аналогии с кодом. OpenTofu позволяет на основании заданной конфигурации генерировать план исполнения (Execution Plan), позволяющий оценить действия с инфраструктурой до их фактического применения к инфраструктуре.
OpenTofu также поддерживает построение графа ресурсов, определяющего все связи между ресурсами для эффективного распараллеливания операций над ресурсами и внесения изменений с учётом зависимостей. Сложные изменения в инфраструктуру могут вноситься автоматизированно, при минимальном участии администратора, что позволяет избежать многих ошибок, вызванных человеческим фактором. При этом используя предоставленные план исполнения и граф ресурсов, администратор может полностью отслеживать, что именно будет изменено и в каком порядке.
Среди изменений в версии OpenTofu 1.7:
- Возможность защиты важных файлов состояния с использованием сквозного шифрования, что позволяет исключить доступ посторонних к данным файлам, при использовании бэкендов хранения, не заслуживающих доверия. Пароль для шифрования может задаваться с использованием переменных окружений или систем управления ключами, такими как AWS KMS, GCP KMS и OpenBao.
- Поддержка динамических функций, определяемых провайдером. Указанная возможность позволяет провайдеру предоставлять не только ресурсы, но и функции для использования в коде OpenTofu. Более того, функции могут определяться провайдером динамически, в зависимости от конфигурации пользователя. Поддержка динамических функций уже добавлена в экспериментальные провайдеры Lua и Go.
- Реализованы декларативные операции удаления, позволяющие пометить ресурс для удаления из файла состояния, но сохранить его в созданной инфраструктуре.
- Возможность применения циклов “for_each” в блоках, осуществляющих импорт, для упрощения импортирования нескольких типовых ресурсов.