1.7リリース以降、OpenTofuコミュニティとコアチームは、多くの要望のあった機能に懸命に取り組んできました。.tf
コードをより簡単に記述できるようにし、不要なボイラープレートを削減し、パフォーマンスを向上させるなどを行いました。この度、OpenTofu 1.8の即時利用可能を発表します。主な機能は以下のとおりです。
- モジュールソース、バックエンド構成、状態暗号化など、これまで利用できなかった場所で変数とローカルを使用できるようになりました。変数をより動的に割り当てることができるようになると、コードの重複とボイラープレートが排除され、プロジェクトの保守が容易になります。しかし、私たちはここで止まりません。将来のリリースでは、動的なプロバイダー構成割り当てなどが実現するでしょう。
- Terraformはこれらの新しい言語機能をサポートしていないため、OpenTofuは
.tofu
ファイル拡張子をサポートするようになりました。.tofu
拡張子を持つファイルが存在する場合、OpenTofuは同じ名前の.tf
ファイルを無視します。この新しいファイル拡張子を使用することで、モジュール作成者はOpenTofuの新機能を使用しつつ、互換性のために古いコードを維持することができます。 tofu test
でプロバイダーモックとリソースオーバーライドを使用できるようになりました。これにより、従来のソフトウェアテスト手法と同様に、より柔軟なテストが可能になります。
改善点と変更点の完全なリストは、OpenTofu 1.8の新機能ページで確認できます。
成長は続く:レジストリトラフィックが約30%増加
私たちはユーザーを追跡することを信じておらず、OpenTofuにはホームテレメトリ機能はありませんが、レジストリの使用状況に基づいて軌跡を観察することができます。前回のリリース投稿で3か月前に、レジストリへの1日のリクエスト数が約140万件に達したことを記録しました。この数は約30%増加し、1日のピークリクエスト数がほぼ180万件に達したことを嬉しく思います。
以前と同様に、OpenTofuコミュニティは、問題の報告と投票、バグの修正、テストの支援に非常に活発です。GitHubのスター数は約10%増加してほぼ22,000になり、最も投票された問題は数百票の投票とディスカッションでかなりの数のコメントを受け取りました。このリリースでは、コアチーム以外からの貢献も大幅に増加しており、小さな修正から大規模なパフォーマンスオーバーホールPRまで多岐にわたります。合計で、前回のリリース以降、100以上の問題と150以上のプルリクエストがオープンされました。メインリポジトリだけでも26人がこのリリースに貢献し、他のリポジトリにもいくつかの重要な貢献が追加されました。
最後に、Awesome OpenTofuに注目していただきたいと思います。これはOpenTofuのツール、プラットフォーム、レジストリ実装、学習教材が掲載されているコミュニティページです。
未来のためのより良いドキュメント:新しいRFCプロセス
コミュニティがコアチームと協力して作業を進めるにつれて、GitHub Issuesに基づいた以前のRFCプロセスでは詳細が不十分であることが明らかになりました。問題のコメントの線形的な性質は、RFCの特定の部分について議論することを促進せず、RFC自体には、数か月後または数年後に変更が必要だった理由を完全に理解するための十分なコンテキストが含まれていませんでした。
私たちの新しいプルリクエストベースのRFCプロセスは、PRレビューを使用してドキュメントの一部を議論し、ドキュメント自体が履歴レコードを作成することを推奨することで、このギャップを埋めています。このプロセスは、早期(静的)評価機能と、今後の動的プロバイダー割り当て機能の開発中に試用しました。これらのドキュメントが、OpenTofuに搭載される新機能への理解を深め、エンジニアリング上の決定がなぜそのように行われたかの履歴レコードの作成にも役立つことを願っています。
近日公開:OpenTofuレジストリUI
このリリースと並行して、OpenTofuレジストリ用のWebベースのユーザーインターフェースの開発に懸命に取り組んできました。このユーザーインターフェースを使用すると、プロバイダー、リソース、モジュールを閲覧および検索し、ドキュメントを便利な形式で読むことができます。このユーザーインターフェースは、数週間以内にリリースすることを目指しています。
約束を果たす:最初のGoライブラリ
OpenTofuは、オープン性とモジュール化の原則に基づいて設立されました。長い歴史を持つコードベースをモジュール化することは必ずしも容易ではありませんが、相互運用性のために最初のGoライブラリをリリースしました。
TofuDLは、OpenTofuの最新バージョンの取得、署名の検証、ローカルで使用するためのバイナリの抽出プロセスを、使いやすいGoライブラリにまとめたものです。ツール開発者はこのライブラリを使用することで、必要に応じてTofuバイナリをダウンロードする複雑さを軽減できます。さらに、このライブラリには完全なリリースミラーリングツールが含まれており、TofuDLベースのツールがミラーリングされたバイナリを取得するために使用できる、OpenTofuリリースを搭載したリリースサーバーを構築できます。
現在実験段階のlibregistryは、メタデータAPIを使用してOpenTofuレジストリに保存されたデータへの構造化されたアクセスを提供します。将来的には、現在GitHub Actions向けに作成されているプロセスをこのライブラリに移行し、GitHubに依存せずにすべてのレジストリプロセスを実行できるようにします。このライブラリを独自のレジストリを作成するための基礎として使用できますが、必要な機能はすべて含まれているわけではありません。
ぜひこれらのライブラリを試して(しゃれです)、どのような機能が欲しいかをお知らせください。
今後の展望:より動的な機能、さらにコミュニティ重視の開発
優先度の高い課題リストを作成して以来、コミュニティからの新しい投票が殺到し、OpenTofuをどのように進化させてほしいかについて、明確なシグナルを受け取っています。最も要望が多かった課題は、変数とローカル変数の早期評価を導入することで、今回のリリースで部分的に解決した課題でした。しかし、これはほんの第一歩に過ぎません。このリリースの初期アルファ版およびベータ版のテストにご協力いただいた際、最もよく寄せられた質問の1つは、「プロバイダーを動的に構成するために早期評価を使用できるようになるのはいつですか?」というものでした。
最も投票数の多かった機能拡張も同様の感情を反映しています。1.9以降では、動的なプロバイダー割り当てと、不要なコードの繰り返しをさらに削減できる早期評価機能を導入することを目指しています。このトピックに興味がある場合は、関連するRFCをお読みください。
ご協力のお願い:プロバイダーのGPGキーについて
最後に、お願いがあります。OpenTofuレジストリには現在、少数のプロバイダーのGPG署名キーしか含まれていません。これらのキーはGitHubで公開されていないためです。プロバイダーの作成者の方は、こちらから署名キーを送信してください。数分で完了し、法的な文書に署名したり、GitHub組織へのアクセスを許可する必要はありません。OpenTofuユーザーで、ご自身のプロバイダーが署名されていない場合は、プロバイダーの作成者にキーを送信してOpenTofuエコシステムを保護するのに協力してくれるようお知らせください。
署名キーがない場合は、tofu init
を実行し、次のメッセージが表示されるかどうかを確認することで識別できます。
このプロバイダーのGPGキーがレジストリに含まれていないため、署名検証はスキップされました
ご協力ありがとうございます!