跳过主内容

OpenTofu 正式发布

Kuba Martin
OpenTofu is going GA

今天对 OpenTofu 来说是一个重要的日子!经过四个月的努力,我们发布了 OpenTofu 的第一个稳定版本,这是一个由社区驱动的 Terraform 开源分支。OpenTofu 是一个 Linux 基金会项目,现在已可用于生产环境。它可以完全替代 Terraform,您可以按照我们的 迁移指南 轻松迁移到它。

在假期之前,Roni Frantchi 撰写了一篇 很棒的文章,描述了我们到目前为止的路程以及发布候选版本。这是一个很好的资源,可以帮助您了解我们是如何走到今天的。

我将重点关注现在以及我们在不久的将来要做的事情。

新功能

从版本本身开始,OpenTofu 1.6.0 带来了很多新内容。

  • 测试功能允许您测试 OpenTofu 配置,并允许模块作者测试这些模块。这是一个很好的稳定性改进,现在已完全集成到 OpenTofu 的核心。
  • S3 状态后端已更新,包括许多新的身份验证方法。最重要的是,它仍然可以与兼容 S3 的对象存储一起使用。
  • 我们有一个新的提供程序和模块注册中心,它遵循类似于 Homebrew 的架构,完全基于 Git 仓库。托管在 CloudFlare R2 上,它响应迅速且高可用。发布新的提供程序或模块现在只需一个拉取请求!

还有很多其他内容!微小的改进、错误修复、性能改进,变更日志非常庞大!如果您想了解所有详细信息,只需 查看它

开源的价值

如果没有积极的社区支持,OpenTofu 绝不可能达到今天的水平。 OpenTofu Slack 社区 正在不断发展壮大。在过去的几个月里,我们有近 60 位贡献者帮助 OpenTofu 变得更加出色。

开源就是关于在社区中进行无边界合作,造福所有人。

举个例子,一个 关于客户端状态加密的 RFC,这是我们在 OpenTofu 中想要实现的一个重要功能,是由社区成员提交的——他也是多年来一直试图将其引入 Terraform 的人。他们花了数月时间来完善 PoC 和 RFC,并让许多社区成员参与讨论。该 RFC 最近已获得批准,我们正在与 RFC 作者合作将其加入 OpenTofu 1.7。谢谢您!

当我们开发注册中心时,收到了多个 RFC。我们咨询了行业中的许多人,包括之前类似注册中心的作者,例如 Homebrew,以便我们能够在第一次尝试时就将注册中心做好。到目前为止,它确实取得了成功——它快速地执行 tofu init,社区成员已经成功提交了提供程序,并且整个过程运行成本非常低。

作为一个开源项目,OpenTofu 还受益于来自许多公司和项目的赞助。除了发起这项计划并通过专门的专职工程师支持 OpenTofu 的公司之外,Cloudflare 还支持我们托管注册中心,BuildKite 也支持我们托管发布工件。

这些以及所有其他讨论、问题、提案、贡献——等等——都是开源的价值所在,也是我们相信会让 OpenTofu 在长期内脱颖而出的原因。

下一步是什么?

我们花了一段时间才发布这个初始版本。为了让这个项目获得成功,需要做很多一次性的工作。但这些工作现在已经完成,我们已经准备好开始进行新的开发,并将在未来推出一些重大新功能!

首先,我们知道这对许多人来说很重要,我们旨在尽可能地与 Terraform 保持合理的兼容性。我们不会推动对 DSL 进行重大更改,也不会推动对提供程序协议进行更改,不会有任何类似的行动。在可预见的未来,我们将保持双向迁移路径的便捷性。

即将到来的最大变化(计划在 1.7 中发布)是客户端状态加密。这项功能已经被许多人要求了很长时间,它将允许您对状态文件和计划文件进行端到端的加密。这对在受监管环境中工作的项目以及追求最大安全性的项目来说非常有价值。您可以在这里找到跟踪问题 here.

最初,我们将添加对用户提供的密钥和一些广泛使用的密钥管理服务的支持。从长远来看,根据我们观察到的使用情况以及社区的反应,我们可能会引入一个插件系统,以便您可以将任意密钥管理服务引入其中。

A screenshot of the client-side state encryption RFC GitHub issue

可参数化的后端、提供程序和模块一直是社区的常见请求,例如使用变量参数化模块版本,甚至可能使用 for_each 参数在静态值列表上实例化提供程序。我们正在研究这个问题,并希望最终能找到一个解决方案。

A screenshot of the const evaluation RFC GitHub issue

除此之外,我们还收到了许多关于添加新状态后端的请求——这很有意义。毕竟,OpenTofu 实际上是关于它集成的生态系统。但是,我们不会将所有这些功能都加入 OpenTofu 的核心,而是计划引入一个类似于提供程序的用于状态后端的插件系统。第三方扩展性是我们认为 OpenTofu 的一个卖点,我们希望在这方面继续改进。

A screenshot of the state backend plugins RFC GitHub issue

这些都是重大的改进,但我们还将引入许多较小的改进,其中很多来自社区的建议甚至完整的贡献。如果您在 OpenTofu 中缺少任何功能,请务必 提交问题,我们很乐意听到您的反馈!

试用一下!

最重要的是,随着今天的发布,OpenTofu 已准备好投入使用。换句话说,现在是时候安装它,并开始将您的东西移植过来!