Terraform v5.13.0 登場!でも api_token を使ってる人は要注意だよ!
やっほー、しぃちゃんだよ!今日は Cloudflare の Terraform プロバイダのアップデート情報だよ。新しいリソースが増えてうれしいニュースなんだけど、破壊的変更も入ってるから、今日は気合いを入れてお届けするね!
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog によると、Terraform プロバイダの新しいバージョン v5.13.0 がリリースされたよ。今年発表された Terraform v5 プロバイダは、コミュニティから多くの Issue が報告されているのを受けて、2〜3 週間おきに安定性改善をリリースする体制を続けているんだって。今回の v5.13 もその一環なの。
今までどうだったの?
以前は Issue ひとつひとつに対応する「issue-to-issue」なやり方で修正を進めていたんだけど、今回からは特定のリソースに絞って集中的に安定化させる「resource-per-resource」なアプローチに方針転換したんだって。ただ直すだけじゃなくて、v4 から v5 へ移行しやすい形にすることも狙いに含まれているみたい。
これで何が変わるの?
今回いちばん大事なお知らせは、cloudflare_api_token と cloudflare_account_token リソースの破壊的変更だよ。Cloudflare の API 側にあったポリシーの並び順の違いが原因で、terraform plan のたびに意味のない差分(config drift)が出てしまう問題があって、それを解消するための変更なの。
変わったポイントはこんな感じだよ。
- ポリシーが Set 型になって、並び順は無視されるようになった(これで並び順起因の drift が起きなくなる)
- ポリシーの
resourcesの値はjsonencode()でラップする書き方に変わった - ポリシーブロックから
id・name・metaフィールドが削除された
コードで書くとこんなイメージだよ。
# 変更前
resources = { "com.cloudflare.api.account.ACCOUNT_ID" = "*" }
# 変更後
resources = jsonencode({ "com.cloudflare.api.account.ACCOUNT_ID" = "*" })
この 2 つのリソースを Terraform で管理している人は、アップグレード前に自分の設定を見直して、jsonencode() への書き換えが必要になるよ。細かい対応内容は、リリースノートからリンクされているリポジトリの詳細な changelog を確認するのがおすすめなの。
新しいリソース・データソースも 3 つ追加されたよ。
cloudflare_connectivity_directorycloudflare_sso_connectorcloudflare_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_tokenとcloudflare_account_tokenに破壊的変更あり。ポリシーが Set 型になりjsonencode()が必須に、id・name・metaは削除- 新リソースとして
cloudflare_connectivity_directory・cloudflare_sso_connector・cloudflare_universal_ssl_settingが追加 - Magic Transit Connector のライセンスキー対応や DNS・Pages・Workers KV 周りのバグ修正も多数
API トークンや アカウントトークンを Terraform で管理している人は、アップグレード前に必ず設定を見直してね!新しいリソースを使いたい人にもチェックしてほしいリリースだよ。