HashicorpのTerraformから1年前にフォークされたInfrastructure as Code(IaC)ツールであるOpenTofuのバージョン1.9.0がリリースされた。このリリースには、複数ゾーンおよび複数リージョンのデプロイメントを簡素化するためのfor_eachを通じたプロバイダー反復機能など、いくつかの重要な機能が含まれている。
OpenTofuの「新機能」ページによると、for_eachはモジュールおよび任意のリソースタイプで使用できるメタ引数である。これは、マップまたは文字列のセット内の各アイテムに対してインスタンスを作成し、各インスタンスを個別に作成、更新、または破棄を可能にする。開発者は、この機能がOpenTofuの動作に大きな変更をもたらすため、他のデータソースやリソースから取得した変数ではなく、静的な変数やローカルでのみ使用可能だと注意を促している。
新しい-excludeフラグにより、ユーザーは計画または適用操作中に特定のリソースをスキップできる。これは既存の-targetオプションの反対の機能である。この機能は今回のリリースでもっとも高く評価された機能リクエストの一つであった。簡単な例として、tofu apply -exclude local_file.b
で実行された場合、a.txtとc.txtが作成されるが、b.txtは作成されない設定が示されている。
このリリースには他にも、初期評価機能の改善、暗号化およびAzureRMとHTTPバックエンドの更新が含まれている。また、パフォーマンスの向上も行われている。
LinkedInへの投稿で、MasterPoint社のMatt Gowie氏は新しいリリースを歓迎しつつ、新しいfor_each機能の強力さに注意を促している。
「自分が何をしているのか理解していて、自分の足を撃たないようにすれば、[for_each]はtofuのIaCツールボックスに素晴らしい追加となる可能性があります。」
- Matt Gowie氏
その投稿に対して、Datolabs社のTomas Dabašinskas氏は次のように返信している。
「for_eachは、プロバイダーレベルで狭い範囲を必要とするプロバイダーにとって救いの手となります。例えば、OpenStack(複数のプロジェクトを管理)、GitHub(複数の組織を管理)、PostgreSQL(複数のデータベースを管理)などです。OpenTofuがこれを追加してくれて本当に嬉しいです!」
Redditのユーザーは、OpenTofuプロジェクトがTerraformから独立していることに対して賛否両論の意見を持っている。あるユーザーは、Terraformにはまだない機能がOpenTofuに追加されたことを喜んでいる一方で、他のユーザーはフォーク以来Terraformに加えられた変更にOpenTofuが追いついていないことを嘆いている。ユーザー「wywywywy」は新しいfor_each機能を称賛している。
「わあ。これはterraformにはまだないですよね?これで私のコードがすごく簡単になります。」
他のユーザーは、for_eachが Terraform Stacksと同様に機能することにコメントしている。Terraform Stacksは商用のHCP Terraformで利用可能だが、オープンソースのTerraform製品にはまだない。ユーザーの「aleques-itj」は、昨年Terraformに導入されたOpenTofuのエフェメラルリソースの欠如を嘆いている。OpenTofuのメンテナーの一人である 「fooallthebar」は、AWSの機能はまだ実験的であるため、OpenTofuにはまだ追加されていないと説明している。
この投稿では、OpenTofu Searchインターフェースが、現在4,000以上のプロバイダと20,000以上のモジュールのドキュメントをインデックス化し、15-30分ごとに更新していることも説明されている。JetBrains社は2024.3リリースでOpenTofuのサポートを発表しており、OpenTofu専用のコード補完や状態暗号化検出機能が含まれている。
ニュースリリースでは、昨年TerraformからフォークされたOpenTofuの成功も強調されている。OpenTofuプロジェクトでは、レジストリリクエストが1日あたり3倍の600万件以上に増加し、データ転送は1日あたり140GBのピークに達している。GitHubのダウンロード数は約30%増加して150万件に達し、プロジェクトは現在23,000以上のGitHubスターを超えている。
コミュニティーの関与も強く、49人の貢献者がメインリポジトリに200以上のプルリクエストを提出している。150以上の新しい課題が作成されており、活発なコミュニティ参加でユーザーベースが賑わっていることを示している。
OpenTofuチームは現在、OCIプロバイダーレジストリの開発に注力しており、すでに動作するプロトタイプを開発中だ。