1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Aiven Terraform Provider v4:新機能

Posted at

Aiven Terraform Provider v4: What's newの翻訳です。

2023年4月6日

Aiven Terraform Provider v4: What's new

Aiven Terraform Provider 4.xは新しいTerraformプラグインフレームワークへの移行における重要なステップであり、より良いタイプチェックを提供します。詳細はこちらをご覧ください。

Terraformは、開発者や運用者がインフラをソフトウェアのように管理することを可能にする、強力なInfrastructure as Code (IaC)ツールです。Terraformの重要性は、組織がインフラストラクチャを大規模に自動化・管理し、ヒューマンエラーのリスクを減らし、環境間の一貫性を確保することを支援する能力にある。最近、AivenはAiven Terraform Providerのバージョン4.0.0をリリースし、Terraformを使ったデータインフラの管理をこれまで以上に簡単にする重要な変更がいくつかあります。このブログポストでは、Aiven Terraform Providerバージョン4.Xの新機能を詳しく見ていきます。

Terraform SDKv2 から Terraform Plugin Framework へのパス

Terraformは古いTerraform Plugin SDKv2の代替として新しいTerraform Plugin Frameworkをリリースしました。

Aiven Terraform Provider 4.Xでは、SDKv2から新しいフレームワークへの移行を開始しました。この移行を促進するために、Terraform Plugin SDKv2のポータビリティラッパーを利用して、Terraform Plugin Frameworkのサポートを追加しています。

文字列の代わりに厳密な型を使う

今回のリリースで最も大きな変更点は、スキーマフィールドで文字列の代わりに厳密型を使うようになったことです。Aiven Terraform Providerの以前のバージョンでは、フィールドの実際の型が何であれ、文字列インターフェースを提供していました。

例えば、public_access.prometheus は以前は 1 (string) でしたが、現在は true (boolean) です。リソース(またはデータソース)の型に関する最新情報は、Aiven Terraform Provider docsをご確認ください。

既存のTerraform状態の自動アップグレード

今回のリリースでは、リソースをv3.xからv4.0.0にアップグレードするための機能(Aiven stateupgraderパッケージ)を追加しました。Aiven Terraform Provider v3.5.0から、新しい値のフィールドやドキュメントなどを含むユーザー設定タイプを生成しています。これらのユーザー設定には、お気に入りのコードエディターでの自動補完サポートが付属しています。

しかし、以前のバージョンのプロバイダを使用して生成された状態ファイルの既存の値はどうなるのでしょうか?バージョン3.Xでは、この変更を導入することはできませんでした。

これらの値はすべて文字列でしたが、バージョン4.0.0からAiven Terraform Providerはすべてのフィールド値が実際のAPI型を持つことを期待しています。stateupgrader`パッケージはTerraformプログラムの状態をシームレスにアップグレードし、文字列型をこれらの型に変換します。

ip_filternamespaces (M3DB 用) およびその他の廃止予定事項

Terraformはあらゆるリソースを段階的に非推奨にしていく。リソースを非推奨にするには、次のメジャーリリースで deprecated としてマークする必要があります。例えば、aiven_databaseリソースはバージョン3.Xでdeprecatedとマークされ、バージョン4.Xで廃止されました。

スキーマフィールドを使用して厳格な型を使用する一環として、v4.X では ip_filternamespaces (M3DB 用) を deprecated とマークし、それぞれ ip_filter_stringnamespaces_string というエイリアスを作成した。v5.X では ip_filternamespaces フィールドを完全に削除する予定である。

この変更は、これらのフィールドが長い間我々のAPIで複数の型を受け入れていたにもかかわらず、Terraformが厳格な型を強制するため、我々の側ではまだサポートしていなかったためである。代わりに ip_filter_objectnamespaces_object が使えるようになり、リソースをより細かくカスタマイズできるようになりました。古いフィールドは非推奨としてマークされていますが、まだ存在しており、Aiven Terraform Providerのバージョン5.Xでのみ完全に置き換えられます。非推奨とマークされたリソースを使用しようとすると、ユーザーに警告が表示されます。

以下のデータソースとリソースはバージョン3.Xで非推奨とマークされ、現在は削除されています:

  • aiven_databaseaiven_service_useraiven_vpc_peering_connection`。
  • aiven_flink_tableおよびaiven_flink_job` 。

これは顧客にとって何を意味するのか?

Aiven Terraform Providerは最新のプロトコルバージョンであるProtocol Version 6に対応しました。この変更はお客様には透過的ですが、長期的な安定性を提供し、より迅速なバグ修正サイクルを可能にします。

| Aiven Terraform Providerのバージョン|Terraform Protocolのバージョン互換性|Terraform SDKv2またはTerraform Plugin Framework|で検出されたタイプエラー
| --- | --- | --- | --- |
| 3.X|4|Terraform SDKv2|Aiven バックエンド
| 4.X | 6 | Terraform SDKv2とプラグインフレームワークのように動作するラッパー | Aivenバックエンド
| 5.X|6|Terraformプラグインフレームワーク|Terraformクライアント

次の例を見てみましょう。Aiven Terraform Provider 3.Xでは、整数のUSER CONFIGオプションフィールドに"foo"(文字列)を代入することができました。そのマニフェストを適用した結果、Aiven Terraform Providerバックエンドからエラーが発生すると、TerraformクライアントはAivenプラットフォームにAPIコールを行う必要があります。5.Xになれば、Terraformクライアント自身がエラーを出せるようになります。

これらの変更に伴い、Aiven Terraform Providerのバージョンを最新に保つことが重要です; 少なくともメジャーリリースについては。例えば、Aiven Terraform Provider v3.Xからv5.Xへの直接アップグレードを待っていた場合、移行がスムーズにいかなかったり、最悪の場合、全く動作しなかったりするかもしれません。Aiven Terraform Providerは常に最新版にアップデートしておくことをお忘れなく。)

What's next?

現在、私たちのエンジニアはAiven Terraform Providerの次のバージョンに向けて、新しいTerraformプラグインフレームワークを利用できるようにリソースを更新しています。これにより、Terraform Plugin SDKからの移行が完了します。Terraform Plugin SDKの世界では、リソースは null 値を持つことができません - リソースが値を持っているか、空であるかのどちらかです - つまり、リソースの正しい状態を判断するために多くのカスタムチェックを行う必要があります。将来的に、Terraform Plugin Frameworkを使用してAiven Terraform Providerを構築する際には、リソースのパラメータにnull値を定義できるようになります。

Aiven Terraform Providerを使ったデータインフラの構築と管理が待ち遠しいです。まずはTerraform public registryにアクセスし、よく使われるソリューションについてはAiven Terraform Cookbookをご覧ください。質問やフィードバックがあれば、遠慮なく連絡してください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?