Terraform Google Cloud 8.0 发布:告别“永久 Diff”,代价是破坏性升级

InfoQ AI 约 8 分钟读完

作者:Claudio Masolo

Terraform Google Cloud Provider 8.0 发布,含破坏性变更:调整两类 Compute Engine 资源默认负载均衡方案,移除已退役服务相关资源,并将多处无序属性由列表改为集合以消除计划漂移。

默认 load-balancing_scheme 变更为 EXTERNAL_MANAGED,影响 backend_service 和 forwarding_rule 行为;移除 IAP、Notebooks、ML Engine 等 7 类废弃资源;配置中无序字段改用集合类型,解决持续性计划差异。

适合 SRE、云平台工程师、IaC 实践者阅读。

HashiCorp 宣布 ,Terraform Google Cloud Provider 8.0 现已正式可用。这个大版本更新了两种 Compute Engine 资源的默认负载均衡行为,移除了与已退役 Google Cloud 服务相关的资源,并将若干不考虑顺序的属性由列表改为集合,以避免持续出现计划差异。由于这是一个包含破坏性变更的版本,HashiCorp 建议用户先升级到最新的 7.x 版本,清除弃用警告后再升级至 8.0。

最明显的行为变化涉及 google_compute_backend_service 和 google_compute_global_forwarding_rule 。它们的默认 load-balancing_scheme 已由 EXTERNAL 改为 EXTERNAL_MANAGED 。这意味着,没有设置该字段的配置将使用新的外部应用负载均衡器,而非经典负载均衡器。依赖经典行为的团队必须显式设置 load_balancing_scheme = "EXTERNAL" ,否则 Terraform 计划可能会提议修改现有负载均衡器。

此次发布还移除了一些资源和数据源,因为它们所依赖的服务已经关闭或被替代。被移除的资源包括 google_iap_brand 和 google_iap_client (IAP OAuth Admin API 关闭后),三个 google_notebooks_* 资源(用户应迁移至 google_workbench_instance )、 google_ml_engine_model ,以及 BeyondCorp 的应用连接、连接器和网关资源;这些资源由 Security Gateway 资源替代。 google_vertex_ai_schedule 则由 google_colab_schedule 替代。升级前,必须更新所有引用这些资源的配置。

在 Schema 行为方面,不具备顺序语义的属性已由列表改为集合,其中包括 Compute Service Attachments、GKE 日志和监控配置,以及 Cloud Security Compliance Frameworks 中的字段。HashiCorp 表示,这可以避免 API 返回值顺序与配置不同而产生永久性差异。部分 Google Cloud API 的验证规则也变得更加严格。例如, google_workflows_workflow 现在必须提供 source_contents ;创建 Workforce Identity Pool Provider SCIM 租户时,也必须提供 claim_mapping 。某些状态变化,例如部分整数到字符串的转换,会自动迁移,但其他变化则需要修改配置。

公告还总结了 8.0 建立其上的一些 7.x 时代功能。该 Provider 现在支持 Terraform 列表资源,这些资源可以配合 terraform query 工作流使用。用户能够搜索状态之外的现有基础设施,并选择生成资源配置和导入配置。目前覆盖 Compute Engine、IAM、BigQuery、Pub/Sub、Secret Manager、Migration Center 和 Network Services。Resource Identity 支持也有所扩展,为 Provider 提供了一种清晰表示远程对象的方式,可与传统 ID 一样用于导入。只写属性可以将敏感值发送给 API,而不将其保存下来,目前已覆盖证书私钥、AlloyDB 密码和 IAP 凭证。

该 Provider 由 Google Cloud 工程团队、HashiCorp 和 Terraform 社区共同开发,8.0 版本现已在 Terraform Registry 中提供。官方文章没有提供基准测试或采用数据,也没有列出所有被移除的资源,因此升级指南和 GitHub 变更日志才是权威参考。

一种可行的升级方案如下:

固定 Provider 版本,先升级到最新的 7.x 版本。解决所有弃用警告后,再在非生产环境中升级至 8.0。

在代码中搜索上述已移除资源,以及未设置 load_balancing_scheme 的负载均衡器资源。显式设置该字段,避免意外迁移至 EXTERNAL_MANAGED 。

仔细检查 terraform plan ,重点关注被标记为销毁或替换的资源。尤其要留意列表到集合的转换,以及类型发生变化或改为必填的只写版本属性。

使用 OpenTofu 的团队可以采用该版本的大部分功能,但并非全部。该 Provider 的破坏性变更包括默认值改为 EXTERNAL_MANAGED 、资源移除以及列表到集合的转换。这些变化都发生在 Provider 中,因此无论使用哪种 CLI 都会生效。只写属性需要 OpenTofu 1.11 或更高版本,因为该版本才引入了这项功能。

使用 Terraform 查询和列出资源的发现工作流在 OpenTofu 中尚无对应功能。关于 tofu query 的功能请求( issue #3787 )仍处于待处理状态。因此,这些团队仍需使用 import 块和生成的配置来管理现有基础设施。

截至本文撰写时,OpenTofu 是否支持 Resource Identity 尚未得到确认,因此计划使用基于身份导入的团队应先查看 OpenTofu 变更日志。固定版本前,团队还应确认 OpenTofu Registry 中是否已经提供 8.0 Provider 构建版本。

原文链接:

https://www.infoq.com/news/2026/10/terraform-google-cloud-provider/

促进软件开发及相关领域知识与创新的传播

关于我们 我要投稿 合作伙伴 加入我们 关注我们

联系我们 内容投稿:editors@geekbang.com 业务合作:hezuo@geekbang.com 反馈投诉:feedback@geekbang.com 加入我们:zhaopin@geekbang.com 联系电话:010-64738142 地址:北京市朝阳区望京北路9号2幢7层A701

InfoQ 近期会议 上海 · QCon 全球软件开发大会 2026.10.22-24 北京 · AICon 全球人工智能开发与应用大会 2026.12.18-19

全球 InfoQ InfoQ En InfoQ Jp InfoQ Fr InfoQ Br

Copyright © 2026, Geekbang Technology Ltd. All rights reserved. 极客邦控股(北京)有限公司 | 京 ICP 备 16027448 号 - 5 京公网安备 11010502039052号 | 产品资质

原文标题 Terraform Google Cloud 8.0 发布:告别“永久 Diff”,代价是破坏性升级
引用来源 InfoQ AI
本地存档 2026-10-28 15:42
引用格式 作者:Claudio Masolo. Terraform Google Cloud 8.0 发布:告别“永久 Diff”,代价是破坏性升级. 2026-10-26. https://www.ai007.site/news/36328

本文内容由 ai007 从公开渠道聚合,版权归原作者所有。若原文已删除或变更, 以原文站为准;本站存档仅为便于查阅而保留。