👏

Snowflake Terraform ProviderがV1リリース!

2024/12/13に公開

https://github.com/Snowflake-Labs/terraform-provider-snowflake
v1が正式にリリースされました👏👏👏

Snowflake Terraform Providerは2024年中大規模な設計の見直しを行なってきました。
v0.xxのリリースが長い間続いてついにv0.100.0に到達しましたが、再設計がある程度落ち着きV1としてリリースされました。
私は12月の初めからこのV1のEarly Adopter Programに参加し、V1が問題なく動作するかを試し、状況を開発チームに共有してきました。

V1で何が変わるのか、今度どういう方向に向かっていくか、最後にEarly Adopter Programの感想をまとめました。

V1で何が変わるのか

リソースの扱い

リソースが正式にサポートしているリソースとプレビュー中のリソースに分かれます。
正式にサポートしているリソースは今まで通り使えますが、プレビュー中のリソースはこれから破壊的な変更が加わる可能性があるので、注意が必要です。

2024/12/13現在の状況です
サポートされているリソース一覧
https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/main/v1-preparations/LIST_OF_STABLE_RESOURCES_FOR_V1.md

プレビュー中のリソース一覧
https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/main/v1-preparations/LIST_OF_PREVIEW_FEATURES_FOR_V1.md

プレビュー中のリソースはprovider.tfで明示的にプレビュー中のリソースを有効化する必要があります。

provider "snowflake" {
	preview_features_enabled = ["snowflake_current_account_datasource", "snowflake_alert_resource"]
}

現状ではプレビュー中のリソースが多くあるため、PREVIEW_FEATURE_ENABLEDの記述箇所は多くなります。

Deprecated resourceの削除

DeprecatedとなっていたリソースがV1で一気に削除されました。

削除されたリソースのリスト
https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/main/MIGRATION_GUIDE.md#removed-deprecated-objects

V1にあげるためにはこれらのリソースの移行が必要になります

移行の際はこちらの記事を参考にしてみてください!
https://zenn.dev/fap/articles/5272be5b55dc11

V1リリース後の動き

Right after V1, we would like to focus on helping all of you with the migration. We will prioritize it so we encourage you to approach us with any issues you might have.
In the meantime, if we have enough time, we want to prioritize redesigning the object marked as preview features. Currently, stages and shares open the list.

V1リリース後はユーザーがV1に移行することを助け、余力があればプレビュー中のリソースの開発を行うと書かれています。
GithubのissueでV1リリース後に発見されたバグなどの対応に集中するということだと私は解釈しています。

2025年のロードマップ

2025年は以下の内容に取り組む予定であることが発表されています。

その中で特に自分が注目している内容について紹介します。

  • Graduate out of Snowflake-Labs into the official snowflakedb organization
  • GA of the Snowflake Terraform Provider
  • Research performance improvements (optimize Snowflake invocations)
  • Grants improvements
  • Redesign remaining GA objects
  • Design transition to the plugin framework
  • Introduce Terraform modules

ProviderのGA

現在のProviderのリポジトリはSnowflake-Labsにありますが、これをsnowflakedbに移行するとのことです。
そして、ProviderをSnowflakeとしてGAにすることが発表されています。
今後もどんどん開発していく意気込みが感じられてユーザーとしてはありがたいです。

Moduleの導入

module経由でリソースを作成することがほとんどなので、公式としてmoduleを提供してくれるのはかなり嬉しいです。

Early Adopter Programへの参加

Early Adopter Programとは

リリース前のV1のバイナリー版をSnowflakeチームから提供してもらい、それが期待通り動作するかをユーザーの環境で試すというものでした。
このProgramにCARTA MARKETING FIRMとして参加し、SnowflakeチームとSlackで情報を共有しながら行いました。

https://github.com/Snowflake-Labs/terraform-provider-snowflake/blob/main/ROADMAP.md#run-a-closed-early-adopter-program

参加中の流れ

  • まず、v0.99.0にあげました。
    • 色々問題に遭遇したのでissueを作りチームに共有しました。すぐに対応してくれたので助かりました。
  • V1のバイナリー版を使ってみて、期待通り動作することを確認できたので、チームに共有しました。
  • 要望や気になっていることをチームと話しました。
    • 私はリソースごとに使うロールを指定できるようにすることを2025年のロードマップに加えて欲しいという要望を伝えました。

感想

今回のEarly Adopter Programは直接チームの人とやりとりしながら、考えなどを聞けていい経験になりました。
Snowflake Terraform Providerは開発スピードが早いので、今後も定期的にチェックしつつ、ROADMAPの内容が実現することに期待したいです。

Discussion