自从 1.7 版本发布 以来,OpenTofu 社区和核心团队一直在努力开发大家迫切需要的功能,使 .tf
代码更易于编写,减少不必要的样板代码,提高性能等等。我们很高兴地宣布 OpenTofu 1.8 立即发布 ,其中包含以下主要功能
- 你现在可以在以前无法使用的地方使用变量和局部变量,例如模块来源、后端配置和状态加密。能够更动态地分配变量将消除代码重复和样板代码,使项目更容易维护。但是,我们不会止步于此:未来的版本将包含 动态提供程序配置分配 等等。
- 由于 Terraform 不支持这些新的语言特性,OpenTofu 现在支持
.tofu
文件扩展名。当存在具有.tofu
扩展名的文件时,OpenTofu 将忽略同名.tf
文件。使用这种新的文件扩展名,模块作者可以使用 OpenTofu 的新功能,同时保留旧代码以确保兼容性。 - 你现在可以使用 提供程序模拟 以及 资源覆盖 与
tofu test
结合使用。这允许更灵活的测试,类似于传统的软件测试方法。
您可以在 OpenTofu 1.8 中有哪些新功能? 页面上找到改进和更改的完整列表。
持续增长:注册中心流量增长约 30%
虽然我们不相信跟踪用户,OpenTofu 也没有回传遥测,但我们可以根据注册中心的使用情况观察其轨迹。在我们 上次发布的文章 中,我们记录了大约 3 个月前注册中心每日请求峰值为约 140 万。我们很高兴地报告,这个数字已经增长了大约 30%,达到将近 180 万的每日请求峰值。
与以前一样,OpenTofu 社区非常活跃地报告和投票问题,修复错误,并帮助进行测试。GitHub 星标数量增长了约 10%,达到将近 22,000,票数最高的议题 收到了数百个投票和讨论中相当多的评论。这次发布也看到了来自核心团队以外的人的重大贡献,从小的修复到大型性能改进 PR。总的来说,自上次发布以来,已开出了超过 100 个议题和超过 150 个拉取请求。仅在主存储库中就有 26 人参与了这次发布,此外还有许多其他存储库的重大贡献。
最后,我们要提醒您关注 Awesome OpenTofu,这是一个社区页面,包含大量工具、平台、注册中心实现和 OpenTofu 的学习资料。
未来更好的文档:新的 RFC 流程
随着社区不断与核心团队携手合作,我们发现以前基于 GitHub 议题的 RFC 流程不够详细。议题评论的线性性质不利于讨论 RFC 的特定部分,RFC 本身也缺乏足够的上下文,无法让几个月或几年后的人完全理解为什么需要进行更改。
我们的 新的基于拉取请求的 RFC 流程 通过使用 PR 审查来讨论文档的各个部分来弥补了这一差距,文档本身也鼓励创建历史记录。我们在开发 早期(静态)评估功能 和即将推出的 动态提供程序分配 功能的过程中测试了这个流程。我们希望这些文档能够更好地展示 OpenTofu 中即将推出的新功能,并帮助创建一个关于为什么工程决策以这种方式做出的历史记录。
即将推出:OpenTofu 注册中心 UI
与这次发布同时,我们一直在努力开发 OpenTofu 注册中心的基于 Web 的用户界面。此用户界面将允许您浏览和搜索提供程序、资源和模块,并以方便的格式阅读其文档。我们计划在未来几周内发布此用户界面。
履行承诺:我们的第一个 Go 库
OpenTofu 建立在开放性和模块化的原则之上。虽然将具有悠久历史的代码库模块化并不总是容易,但我们已经发布了第一个用于互操作性的 Go 库。
TofuDL 将获取 OpenTofu 最新版本的流程、验证签名以及提取用于本地使用的二进制文件编码为一个易于使用的 Go 库。工具作者可以使用此库来简化下载 Tofu 二进制文件时的复杂性。此外,此库包含一个完整的发布镜像工具,允许您为 TofuDL 基于的工具可以用来获取镜像二进制文件的气隙基础设施构建一个包含 OpenTofu 发布版本的发布服务器。
当前处于实验阶段的 libregistry 使用元数据 API 提供对存储在 OpenTofu 注册中心中的数据的结构化访问。将来,我们将把当前为 GitHub Actions 编写的流程迁移到这个库中,让您能够独立于 GitHub 执行所有注册中心流程。您可以使用此库作为编写自己的注册中心的基础,尽管库中不包含任何现成的功能。
请尝试使用这些库(双关语),并告诉我们您希望在库中看到哪些功能。
未来:更多动态功能,更注重社区的开发
自从我们创建了 最受关注问题 列表以来,社区的新投票源源不断地涌入,为我们指明了 OpenTofu 未来发展的方向。其中,呼声最高的问题是我们在本版本中通过引入变量和局部变量的早期评估部分解决了的问题。然而,这仅仅是第一步。当您帮助我们测试本版本的早期 alpha 和 beta 版时,最常被问到的问题之一是:“我什么时候可以使用早期评估动态配置提供商?”
投票数最高的增强功能反映了类似的观点。在 1.9 及更高版本中,我们的目标是为您带来动态提供商分配和更多早期评估功能,让您能够进一步减少不必要的代码重复。如果您对该主题感兴趣,请阅读 相应的 RFC 文档。
求助:提供商的 GPG 密钥
最后,我们有一个请求。OpenTofu 注册表目前仅包含少数提供商的 GPG 签名密钥,因为这些密钥在 GitHub 上不可公开获取。如果您是提供商作者,请 在此提交您的签名密钥。这只需要几分钟,无需您签署任何法律文件或授予我们访问您的 GitHub 组织的权限。如果您是 OpenTofu 用户,并且您发现您的提供商没有签名,请让您的提供商作者知道他们可以提交他们的密钥,并帮助保护 OpenTofu 生态系统。
您可以通过运行 tofu init
并注意以下消息来识别缺少的签名密钥
由于注册表中不包含此提供商的 GPG 密钥,因此跳过了签名验证
感谢您的帮助!