shiichan

Terraform v5 プロバイダ、バグ祭りにひと区切り!v5.5.0 が来たよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の Terraform プロバイダのアップデート情報を持ってきたよ。地味に見えるけど、IaC で Cloudflare を運用しているエンジニアさんにはうれしいニュースなの!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、Terraform プロバイダの新しいバージョン v5.5.0 がリリースされたよ。今回の目玉は新機能じゃなくて、v5 プロバイダで報告されていた既知バグのまとめての修正なの。

今までどうだったの?

今年の頭に、新しい Terraform v5 プロバイダが発表されていたんだよ。それまでのプロバイダとは作り方が違っていて、v5 は Cloudflare の REST API の OpenAPI スキーマから自動生成されているのが特徴なの。

でも、リリースしてからユーザーから予想以上に多くの問題が報告されていて、原文によると 約 15 %のリソースに影響が出ていたんだって。Cloudflare は社内のいろんなチームを巻き込んで、この問題の解消に取り組んできたみたい。

これで何が変わるの?

v5.5.0 では、繰り返し差分(terraform plan を実行するたびに変更が検知されてしまう問題)が出ていたリソースを中心に、広範な修正が入ったよ。対象になったのはこのリソースたちだよ!

  • cloudflare_zero_trust_gateway_policy
  • cloudflare_zero_trust_access_application
  • cloudflare_zero_trust_tunnel_cloudflared_route
  • cloudflare_zone_setting
  • cloudflare_ruleset
  • cloudflare_page_rule

これらを Terraform で管理している人は、意味のない差分に悩まされずに済むようになるはずだよ。ゾーン設定を再適用したときのクライアントエラーや、ページルールの変換エラーも解消されているの。

深く潜ってみよう

今回クローズされた GitHub の Issue も具体的に紹介するね!

  • Zero Trust ゲートウェイポリシーをインポートするときに属性フィルタの値でエラーになる問題(#5304)
  • ページルールをインポートしても Terraform のステートに全フィールドが反映されない問題(#5303)
  • ページルール作成時にリダイレクトが失敗する問題(#5178)
  • Turnstile ウィジェットが更新できない問題(#5336)
  • クラウドコネクタルールを適用した後、結果オブジェクトが無効になる問題(#5418)
  • ゾーン設定の always_use_https で無効な値エラーが出る問題(#5423)

まだ v4 から v5 に移行していない人向けの案内もあるよ。公式のマイグレーションガイドと、Grit を使った自動マイグレーションスクリプトが用意されているんだって。ただし、Terraform モジュールを使っている環境は自動化の対象外だから、その部分は手動での移行が必要になるみたい。アップグレードする前には terraform plan で差分を確認してから適用するのがおすすめだよ。

まとめ

今回のポイントはこんな感じだよ!

  • Terraform v5 プロバイダは OpenAPI スキーマからの自動生成で作られている
  • リリース後、約 15 %のリソースで問題が報告されていた
  • v5.5.0 でゲートウェイポリシーやページルールなど複数リソースの繰り返し差分・エラーを修正
  • 関連する GitHub Issue が 6 件クローズ
  • v4 から v5 への移行にはマイグレーションガイドと自動化スクリプトが用意されている(モジュール利用環境は手動対応)

Cloudflare を Terraform で運用していて、v5 プロバイダの差分に悩まされていた人はぜひアップグレードしてみてね!