OpenTofu 1.13 Lets Module Authors Reduce Unknown Values at Plan Time

TL;DR · AI 摘要
OpenTofu 1.13 Lets Module Authors Reduce Unknown Values at Plan Time - InfoQ InfoQ Homepage News OpenTofu 1.13 Lets Modu...
核心要点
- 主题聚焦:OpenTofu 1.13 Lets Module Authors Reduce Unknown
- 来源:InfoQ,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
OpenTofu 1.13 让模块作者在计划阶段减少未知值 - InfoQ
InfoQ 首页 News OpenTofu 1.13 让模块作者在计划阶段减少未知值
DevOps
InfoQ 认证高绩效团队计划(在线,11月17日):为您的团队构建更清晰的运营模型。
OpenTofu 1.13 让模块作者在计划阶段减少未知值
2026年10月26日 2分钟阅读
作者:
- Mark Silvester
#### 关注我们
Youtube
232K 粉丝
26K 粉丝
新
RSS
19K 读者
X
57.1k 粉丝
21K 赞
Bluesky
收听本文 -
0:00
音频准备播放
您的浏览器不支持音频元素。
正常
1.25x
1.5x
喜欢
新下拉阅读列表
- 阅读列表
OpenTofu 发布了 1.13 版本,新增功能帮助模块作者在规划阶段解析更多表达式。类型和值提示可以在 count 或 for_each 使用的键保持未知时解除计划阻塞。规划器无需知道所有资源实例的最终属性,即可确定要创建的实例数量,这些属性可能直到应用阶段才变为已知。
OpenTofu 维护者 Martin Atkins 在 RFC 中提出该设计,并于 8 月合并了实现。在更早的 issue 中,报告者 csar398 希望保留 YAML 输入,但当解码值控制 count 时无法进行规划。yamldecode 可返回包括 null 值在内的多种类型,因此未知输入既不提供已知类型,也无法保证非空。Atkins 解释该限制时写道:"... 这对 OpenTofu 来说太复杂,无法自动推断。"
convert 函数可将值转换为指定类型,即使 YAML 输入未知,也能为 yamldecode 结果赋予已知对象类型。对于条件资源,结合 assumenotnull 可让基于 null 性的 count 表达式解析为 0 或 1,同时对象内容保持未知。作者必须确保生成的 YAML 始终表示指定类型的对象,而非 null 值。如果规划阶段未知的值后续违反该保证,OpenTofu 在应用阶段会报错。
Terraform 最早在 1.15 版本中推出了等效的 convert 函数。Atkins 后来在 OpenTofu 的 issue 中写道:"Terraform 有等效功能,语法与我在此提议的完全相同",项目决定沿用其设计。
实验性代码检查功能包含四个内置警告规则,包括 core:unused-variable 和 core:count-instead-enabled。使用 -lint=all 标志可通过 tofu validate、tofu plan 或 tofu apply 启用这些规则。在代码检查提案中,维护者将该功能描述为最受欢迎的请求;后续工作将涵盖自定义规则和更广泛的策略检查。TFLint 已经提供基于插件的静态分析,包括云提供商检查。
可选加入的 Symbol Libraries 实验通过 *.sym.hcl 文件共享函数和类型定义。库无法直接访问资源、数据源或提供者函数,但调用者可将资源值传递给库函数。团队希望在 1.14 版本中稳定该功能。
版本 1.13 移除了远程执行和文件提供者对 Windows 远程管理 (WinRM) 的支持,修改了 base64gzip 输出字节,要求使用 macOS 13 Ventura 或更高版本,并且是最后一个提供官方 32 位构建版本的系列。该版本还新增了适用于 ARM64 的 Windows 包。现有 WinRM 配置需要迁移,而 base64gzip 背后的 Go 库变更可能导致资源更新,即使解压后的输出结果相同。
OpenTofu 缩短了开发周期以与 Go 发布周期保持一致,并将支持 1.13.x 系列直至 2027 年 8 月 1 日。该项目于 10 月 21 日发布了 1.13.2 版本。其两个安全更新解决了在连接到攻击者控制的 HTTP/2 服务器时 tofu init 过程中 CPU 使用率过高的问题,并过滤受污染的中间证书。该补丁还修复了应用使用符号库的保存计划时出现的错误。
main wrapper for authors section
关于作者
section title
main wrapper for each author
#### Mark Silvester
显示更多
显示更少
#### 本内容属于 DevOps 主题
##### 相关主题:
- 开发
- 架构与设计
- DevOps
- Terraform
- 云原生计算基金会
- 基础设施即代码
- 相关编辑内容
- 相关赞助商 AI 的物理限制:AI 如何重塑数据中心
- 相关赞助商 PostgreSQL 专为时间序列规模而建 无需牺牲性能即可使用 PostgreSQL 处理海量时间序列数据。了解 Tiger Data 如何实现高速数据摄入、快速查询和可扩展存储。了解更多。
InfoQ 新闻通讯
每周五发送 InfoQ 最新内容摘要。加入超过 25 万名高级开发者的社区。查看示例
我们保护您的隐私。 /think