本日はOpenTofuにとって大きな日です!4ヶ月にわたる作業を経て、コミュニティ主導のTerraformのオープンソースフォークである**OpenTofuの最初の安定版リリース**をリリースします。Linux FoundationプロジェクトであるOpenTofuは、本番環境に対応できるようになりました。Terraformのドロップイン置換であり、移行ガイドに従って簡単に移行できます。
Roni Frantchiは、休暇前に素晴らしい記事を執筆し、リリース候補までの道のりを説明しました。これは、私たちがどのようにして現在地に至ったかを知るための優れたリソースです。
私は今、そして近い将来私たちが何をしているのかに焦点を当てます。
新機能
リリース自体から başlayarak、OpenTofu 1.6.0には多くの新機能が搭載されています
- テスト機能を使用すると、OpenTofu構成をテストし、モジュール作成者はそれらのモジュールをテストできます。これは安定性の大幅な向上であり、OpenTofuのコアに完全に統合されました。
- S3ステートバックエンドが更新され、多くの新しい認証方法が含まれています。重要なのは、S3互換のオブジェクトストレージで引き続き動作することです。
- Homebrewのようなアーキテクチャに従い、gitリポジトリに完全に基づいた新しいプロバイダーとモジュールレジストリがあります。CloudFlare R2でホストされているため、高速で可用性が高くなっています。新しいプロバイダーまたはモジュールを公開するには、プルリクエストを送信するだけです!
その他にもたくさん!マイナーな改善、バグ修正、パフォーマンスの向上など、変更ログは膨大です!詳細を知りたい場合は、こちらをご覧ください!
オープンソースの価値
活発なコミュニティサポートがなければ、OpenTofuは現在の場所に遠く及ばなかったでしょう。OpenTofu Slackコミュニティは成長と発展を続けています。過去数か月で、60人近くの貢献者がOpenTofuの改善に協力してくれました。
オープンソースとは、コミュニティ全体で国境を越えたコラボレーションであり、すべての人々の利益のためにあるものです。
例を挙げると、OpenTofuに搭載したかった主要機能であるクライアント側状態暗号化のRFCが、コミュニティメンバーによって提出されました。これは、Terraformに長年導入しようとしていたのと同じ人物です。**数ヶ月**にわたり、彼らはPoCとRFCを磨き上げるために取り組み、多くのコミュニティメンバーを議論に参加させました。このRFCは最近承認され、RFC作成者と協力してOpenTofu 1.7に導入しています。ありがとうございます!
レジストリに取り組んでいたとき、複数のRFCが提出されました。レジストリを最初から正しく動作させるために、Homebrewなどの以前の同様のレジストリの作成者を含め、業界中の多くの人々に相談しました。これまでのところ、確かに成功しています。`tofu init`は高速で、コミュニティメンバーはすでにプロバイダーを正常に送信しており、全体の実行コストが非常に安価です。
オープンソースプロジェクトとして、OpenTofuは多くの企業やプロジェクトからのスポンサーシップの恩恵も受けています。イニシアチブを開始し、専任のフルタイムエンジニアでOpenTofuをサポートしている企業以外にも、Cloudflareはレジストリのホスティングで、BuildKiteはリリースアーティファクトのホスティングで私たちをサポートしてくれました。
これらすべて、そして他のすべての議論、問題、提案、貢献-何でも-はオープンソースの価値であり、OpenTofuを長期的に差別化するものと信じています。
次は?
この最初のリリースを出すまでに時間がかかりました。このプロジェクトを成功させるために、多くの1回限りの作業を行う必要がありました。しかし、その作業は完了し、私たちは大きな新機能を備えた新しい開発にすぐに飛び込む準備ができています!
まず、そしてこれは多くの人にとって重要であることを私たちは知っていますが、理にかなう場合はTerraformとのある程度の互換性を維持することを目指しています。大きなDSLの変更を推進するつもりはありません。プロバイダープロトコルの変更を推進するつもりもありません。当面の間、双方向の移行パスを容易に維持します。
**近日中に予定されている最大の変更**は、1.7向けに予定されているクライアント側の状態暗号化です。多くの人々から長い間求められていたこの機能により、状態ファイルとプランファイルの両方をエンドツーエンドで暗号化できます。これは、規制された環境で作業するプロジェクトや、最大のセキュリティを求めるプロジェクトにとって価値があります。追跡問題はこちらで見つけることができます。
当初は、ユーザーが提供するキーと、広く使用されている主要なキー管理サービスのいくつかをサポートします。長期的に、見られる使用状況とコミュニティの反応に応じて、任意のキー管理サービスを利用できるようにプラグインシステムを導入する可能性があります。
**パラメータ化可能なバックエンド、プロバイダー、およびモジュール**は、非常に一般的なコミュニティの要望でした。たとえば、変数を使用してモジュールバージョンをパラメータ化したり、静的な値のリストでfor_eachパラメータを使用してプロバイダーをインスタンス化したりすることです。これは私たちが調査しており、最終的には解決策を導入したいと考えていることです。
それ以外に、**新しい状態バックエンドを追加**するための多くのリクエストがありました。これは理にかなっています。結局のところ、OpenTofuは実際に統合されているエコシステムに関するものです。ただし、すべてをOpenTofuのコアに持ち込む代わりに、プロバイダーと同様に、状態バックエンドにプラグインシステム
これらは大きな改善ですが、他にも多くの小さな改善を導入する予定です。その多くはコミュニティからの提案や、本格的な貢献によるものです。OpenTofuに不足しているものがあれば、issueを提出してください。ぜひお聞かせください!
試してみましょう!
最も重要なことは、今日のリリースでOpenTofuは本番環境に対応できるようになったことです。つまり、インストールして、既存のものを移行する時が来たのです!