写点什么

分叉自 Terraform 的 OpenTofu 添加供应商迭代的功能

作者:Matt Saunders

  • 2025-02-21
    北京
  • 本文字数:1441 字

    阅读完需:约 5 分钟

分叉自 Terraform的OpenTofu 添加供应商迭代的功能

OpenTofu OpenTofu 是一年前从 Hashicorp 的 Terraform 分叉(fork)出来的基础设施即代码工具,目前该工具发布了 1.9.0 版本。该版本带来了多项重要的特性,包括通过 for_each 进行供应商迭代的功能,从而能够简化多可用区(multi-zone)和多区域(multi-region)的部署。


根据 OpenTofu 的 “新功能”页面所述,for_each 是一个元参数,可用于模块和任意的资源类型。它会为字符串 map 或集合中的每个条目创建一个实例,允许创建、更新或销毁每个单独的实例。由于该功能对 OpenTofu 的运行方式有很大的改变,所以建议开发人员要谨慎使用,它只能用于静态变量和本地变量,无法用于从其他数据源或资源中获取的变量。


新的-exclude标记允许用户在planapply的操作过程中跳过特定的资源,实际上它与现有的-target选项功能恰好相反。该特性是本次版本发布中得到投票最多的特性请求之一。举个简单的例子,当使用tofu apply -exclude local_file.b运行如下配置时,a.txtc.txt会被创建,而b.txt则不会被创建。



该版本的其他改进还包括更好的提前评估功能,以及加密、AzureRM 和 HTTP 后端的更新。此外,还有性能方面的提升。


在 LinkedIn 的一篇博客文章中,来自 MasterPoint 的 Matt Gowie 对新版本表示了欢迎,但是由于新的 for_each 功能非常强大,他建议大家谨慎使用:


“如果你知道自己正在做什么,并且知道它所带来的后果,那么 [for_each] 可能会成为你的 IaC 工具箱中一个很有意思的补充。”

——Matt Gowie


来自 Datolabs 的 Tomas Daba 在回帖中补充到:


对于那些需要管理较小范围的供应商的人来说,for_each 将会解救他们,比如,OpenStack(管理多个项目)、GitHub(管理多个组织)和 PostgreSQL(管理多个数据库)。很高兴 OpenTofu 添加了这个功能!


Reddit 上的用户对 OpenTofu 独立于 Terraform 的发展轨迹褒贬不一。有人对 OpenTofu 增加了 Terraform 尚未提供的特性而感到高兴,而另一些人则对 OpenTofu 跟不上自分叉 Terraform 以来的变化而感到遗憾。用户“wywywywy”对新 for_each 功能大加赞赏:


“哇,这个特性在 Terraform 中都没有吧?它将大大简化我的代码”。

wywywywy on Reddit


其他用户的评论则认为 for_each 的运行方式与 Terraform Stacks 类似,后者在商用版本的 HCP Terraform 中可用,但是在开源 Terraform 产品中并未提供。用户“aleques-itj”感叹 OpenTofu 中缺少暂存资源,去年 Terraform 就引入了该功能,OpenTofu 的维护者之一“fooallthebar”解释说,由于 AWS 功能仍处于实验阶段,所以尚未添加到 OpenTofu 中。


帖子还介绍了 OpenTofu 的搜索页面现在如何索引 4000 多个供应商和 20000 多个模块的文档,它们每 15 到 30 分钟会更新一次。JetBrains 宣布在其 2024.3 版本中会支持 OpenTofu,其功能包括 OpenTofu 特有的代码自动补全和状态加密检测。


宣布版本发布的新闻稿还强调了 OpenTofu 自去年作为 Terraform 的一个分叉版本创建以来所取得的成功。OpenTofu 项目的注册请求增加了两倍,达到每天 600 多万次,数据传输峰值达到每天 140GB。GitHub 下载量增加了约 30%,达到 150 万次,项目的 GitHub 评星现在已经超过 23000 个。


它的社区参与度很高,49 位贡献者为主仓库提交了 200 多个拉取请求,创建的新问题已超过 150 个,这表明用户群和社区参与很活跃。


OpenTofu 团队目前正专注于开发 OCI 提供商注册表,其工作原型正在开发中。


查看英文原文:


Terraform Fork OpenTofu Adds Provider Iteration and Exclusions(https://www.infoq.com/news/2025/01/opentofu-190/)

2025-02-21 15:009299

评论

发布
暂无评论

NFTScan | 10.09~10.15 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

每个开发人员都想使用的编程语言

互联网工科生

rust

那些被裁员的芯片工程师们都怎么样了?

IC男奋斗史

职业规划 裁员 芯片 半导体 ChatGPT

回归测试的实践与思考

老张

软件测试 质量保障 回归测试 测试计划

Mate60系列超预期热潮背后,品牌如何抓住营销机遇?

最新动态

一文解析iPaaS的价值及运用场景

RestCloud

ipaas

谁在“操控”虚拟人?

自象限

虚拟人

文心一言 VS 讯飞星火 VS chatgpt (114)-- 算法导论10.2 7题

福大大架构师每日一题

福大大架构师每日一题

Apache IoTDB v1.2.2 发布|增加 flink-sql-connector、tsfile 文件级级联传输等功能

Apache IoTDB

OpenHarmony创新赛丨报名倒计时,超强秘籍带你直通大奖!

OpenHarmony开发者

业内首个基于Iceberg的“云端仓转湖”生产实践探索

腾讯云大数据

湖仓一体

OpenHarmony创新赛|赋能直播第四期

OpenHarmony开发者

探索工作流应用场景下解决重复审批的方法

inBuilder低代码平台

工作流 低代码

数据结构与算法 | 数组(Array)

Java研究者

Java 算法 数组 算法题 数据结构,

低代码开发平台实现思路探索:JNPF

互联网工科生

低代码 JNPF

再玩玩B端搭建

得物技术

架构 规则引擎 B端搭建

DeFi/DApp矿机算力质押挖矿系统开发

l8l259l3365

Linux爆发好时机!Windows这次换代为何这么难!

树上有只程序猿

windows 11

互联网众包平台如何改变APP软件开发方式?

知者如C

WorkPlus企业内部聊天软件,如何保障企业数据和信息的安全性?

BeeWorks

探索低代码技术

树上有只程序猿

软件开发 低代码 JNPF

WorkPlus即时通讯办公软件,助力企业实现移动化办公

BeeWorks

分叉自 Terraform的OpenTofu 添加供应商迭代的功能_编程语言_InfoQ精选文章