shiichan

Cloudflare の Terraform v5 プロバイダー、たまった不具合を v5.4.0 で一気に解消!

みんな、しぃちゃんだよ! 今日は Cloudflare の Terraform プロバイダーまわりのニュースだよ。ちょっと地味に見えるけど、実際に IaC で Cloudflare を運用してる人にはかなり嬉しいアップデートなの。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Terraform v5 プロバイダーの v5.4.0 リリースが発表されたよ。今年の初めに登場した v5 プロバイダー向けに、たまっていたバグをまとめて直した「バグ修正リリース」なんだ。

今までどうだったの?

v5 プロバイダーは、これまでの手書きプロバイダーと違って、Cloudflare の REST API の OpenAPI スキーマから自動生成される仕組みに変わったの。でもリリース後、想定より多くの不具合が報告されちゃって、なんと全リソースの約 15% にあたる範囲で問題が起きてたんだって。Cloudflare は社内のあちこちのチームを巻き込んで、地道に直し続けてきたみたい。

これで何が変わるの?

v5.4.0 では、報告されていた不具合がまとめて修正されたよ。主な変更はこんな感じ。

  • worker_platforms_script_secret リソースを廃止(Workers / Workers for Platforms 向けの移行ガイドを用意)
  • cloudflare_cloud_connector_rules の重複フィールドを削除
  • cloudflare_workers_route の ID 周りの不具合を修正(GitHub の Issue #5134、#5501 に対応)
  • cloudflare_workers_kv の状態リフレッシュの不具合を修正
  • cloudflare_workers_script で Assets 使用時に落ちてしまう不具合を修正
  • cloudflare_workers_script の Workers Logpush 設定が誤って読み取り専用になっていた不具合を修正
  • cloudflare_pages_projectsource 使用時に壊れる不具合を修正

すでに v5 を使っていて不具合に悩まされてた人は、プロバイダーを上げるだけで解消するケースが多そうだね。

深く潜ってみよう

今回の修正の中でもボリュームが大きいのが、「サポートされていないレスポンス型を持つリソースをリフレッシュすると失敗する」不具合と、「computed が付いていないネストしたプロパティを設定できない」不具合の 2 つ。

レスポンス型のリフレッシュ不具合が直ったのはこのリソースたち。

  • cloudflare_certificate_pack
  • cloudflare_registrar_domain
  • cloudflare_stream_download
  • cloudflare_stream_webhook
  • cloudflare_user
  • cloudflare_workers_kv
  • cloudflare_workers_script

そしてネストしたプロパティの設定不可バグは、なんと 33 個のリソースにまたがって直されたよ。

  • cloudflare_account
  • cloudflare_account_dns_settings
  • cloudflare_account_token
  • cloudflare_api_token
  • cloudflare_cloud_connector_rules
  • cloudflare_custom_ssl
  • cloudflare_d1_database
  • cloudflare_dns_record
  • email_security_trusted_domains
  • cloudflare_hyperdrive_config
  • cloudflare_keyless_certificate
  • cloudflare_list_item
  • cloudflare_load_balancer
  • cloudflare_logpush_dataset_job
  • cloudflare_magic_network_monitoring_configuration
  • cloudflare_magic_transit_site
  • cloudflare_magic_transit_site_lan
  • cloudflare_magic_transit_site_wan
  • cloudflare_magic_wan_static_route
  • cloudflare_notification_policy
  • cloudflare_pages_project
  • cloudflare_queue
  • cloudflare_queue_consumer
  • cloudflare_r2_bucket_cors
  • cloudflare_r2_bucket_event_notification
  • cloudflare_r2_bucket_lifecycle
  • cloudflare_r2_bucket_lock
  • cloudflare_r2_bucket_sippy
  • cloudflare_ruleset
  • cloudflare_snippet_rules
  • cloudflare_snippets
  • cloudflare_spectrum_application
  • cloudflare_workers_deployment
  • cloudflare_zero_trust_access_application
  • cloudflare_zero_trust_access_group

DNS レコードやロードバランサー、R2 バケット、Zero Trust 関連まで、かなり広い範囲のリソースが対象になってるのがわかるね。詳しい変更点は GitHub の v5.4.0 リリースノート にまとまってるよ。

なお v4 から v5 への移行を検討中の人向けには、移行ガイド と、Grit を使った自動移行スクリプトが用意されてるんだって。ただし Terraform モジュールを使っている構成には対応してないから、モジュール利用者は手動での移行が必要になるよ。あと terraform plan で事前に差分を確認してから適用するのが推奨されてるの。

まとめ

  • Cloudflare Terraform v5 プロバイダーの v5.4.0 がリリースされ、報告されていたバグがまとめて修正されたよ
  • worker_platforms_script_secret リソースは廃止、cloudflare_workers_route の ID 不具合や cloudflare_workers_kv の状態リフレッシュ問題なども解消
  • レスポンス型のリフレッシュ不具合(7 リソース)と、ネストプロパティの設定不可バグ(33 リソース)がまとめて直った
  • v4 から v5 への移行組には移行ガイドと Grit の自動移行スクリプトも用意されてる(ただしモジュール利用時は手動対応が必要)

すでに Cloudflare を Terraform で運用してる人には、プロバイダーを v5.4.0 に上げる価値があるアップデートだね!