shiichan

Terraform v5.13.0 登場!でも api_token を使ってる人は要注意だよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の Terraform プロバイダのアップデート情報だよ。新しいリソースが増えてうれしいニュースなんだけど、破壊的変更も入ってるから、今日は気合いを入れてお届けするね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、Terraform プロバイダの新しいバージョン v5.13.0 がリリースされたよ。今年発表された Terraform v5 プロバイダは、コミュニティから多くの Issue が報告されているのを受けて、2〜3 週間おきに安定性改善をリリースする体制を続けているんだって。今回の v5.13 もその一環なの。

今までどうだったの?

以前は Issue ひとつひとつに対応する「issue-to-issue」なやり方で修正を進めていたんだけど、今回からは特定のリソースに絞って集中的に安定化させる「resource-per-resource」なアプローチに方針転換したんだって。ただ直すだけじゃなくて、v4 から v5 へ移行しやすい形にすることも狙いに含まれているみたい。

これで何が変わるの?

今回いちばん大事なお知らせは、cloudflare_api_tokencloudflare_account_token リソースの破壊的変更だよ。Cloudflare の API 側にあったポリシーの並び順の違いが原因で、terraform plan のたびに意味のない差分(config drift)が出てしまう問題があって、それを解消するための変更なの。

変わったポイントはこんな感じだよ。

  • ポリシーが Set 型になって、並び順は無視されるようになった(これで並び順起因の drift が起きなくなる)
  • ポリシーの resources の値は jsonencode() でラップする書き方に変わった
  • ポリシーブロックから idnamemeta フィールドが削除された

コードで書くとこんなイメージだよ。

# 変更前
resources = { "com.cloudflare.api.account.ACCOUNT_ID" = "*" }

# 変更後
resources = jsonencode({ "com.cloudflare.api.account.ACCOUNT_ID" = "*" })

この 2 つのリソースを Terraform で管理している人は、アップグレード前に自分の設定を見直して、jsonencode() への書き換えが必要になるよ。細かい対応内容は、リリースノートからリンクされているリポジトリの詳細な changelog を確認するのがおすすめなの。

新しいリソース・データソースも 3 つ追加されたよ。

  • cloudflare_connectivity_directory
  • cloudflare_sso_connector
  • cloudflare_universal_ssl_setting

深く潜ってみよう

機能面では、Magic Transit Connector がセルフサーブのライセンスキーに対応したり、Worker Version が content_base64 をサポートしたりと、細かいけど実務で嬉しいアップデートが入ってるよ。cloudflare_zero_trust_access_application には proxy_endpoint 属性が追加されて、Workers Script Subdomains のインポートにも対応したんだって。

バグ修正も幅広くて、DNS レコードの適用時に矛盾したエラーが出る問題、Pages のドメイン・プロジェクトで意図しない drift が起きる問題、Workers KV のマルチパートリクエストの不具合、Zero Trust のデバイスプロファイルやトンネル設定の drift 問題などが直っているよ。ドキュメント面でも、インポート未対応のリソースはその旨を明記するように整備が進んでいるみたい。

まだ v4 から移行していない人向けには、引き続き安定化フェーズの間は無理に移行を急がなくていいという案内もあるよ。

まとめ

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

  • Terraform v5 プロバイダは 2〜3 週間おきの改善リリース体制を継続中で、v5.13.0 が最新版
  • 修正方針が issue-to-issue から resource-per-resource に転換した
  • cloudflare_api_tokencloudflare_account_token に破壊的変更あり。ポリシーが Set 型になり jsonencode() が必須に、idnamemeta は削除
  • 新リソースとして cloudflare_connectivity_directorycloudflare_sso_connectorcloudflare_universal_ssl_setting が追加
  • Magic Transit Connector のライセンスキー対応や DNS・Pages・Workers KV 周りのバグ修正も多数

API トークンや アカウントトークンを Terraform で管理している人は、アップグレード前に必ず設定を見直してね!新しいリソースを使いたい人にもチェックしてほしいリリースだよ。