2025云栖大会,开启通往AGI的未来之旅 了解详情
写点什么

分叉自 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:009332

评论

发布
暂无评论

SAP UI5 框架的 manifest.json

汪子熙

前端开发 SAP Fiori SAP UI5 5月月更

校企融合,打造金融科技应用人才高地

非凸科技

校企合作 非凸

纪念左晖:敢为天下先(修订版)

IT民工大叔

产业互联网 数字化转型 企业家精神 左晖

SREWorks持续交付云原生化: 镜像构建

阿里云大数据AI技术

大数据 运维 云原生

虚拟机是什么?跟堡垒机有哪些区别?

行云管家

虚拟机 堡垒机

高校学生请注意:想成为技术大牛,参加这个计划就够了!

科技热闻

“技术商人”溯源考

IT民工大叔

华为 工程师 任正非讲话 商业意识 复合型人才

墨天轮访谈 | 阿里云捷熙:AnalyticDB,人人可用的数据分析服务

墨天轮

数据库 阿里云 国产数据库

影视作品制作中不可或缺的技术支撑——云渲染技术

Finovy Cloud

服务器 云渲染 GPU算力

开发技术指南 | 最全 Substrate 与 Polkadot 技术文档、教程、课程

One Block Community

区块链 技术 波卡生态

java培训SpringBoot 中的各种参数校验

@零度

JAVA开发 springboot

解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法

华为云开发者联盟

数据挖掘 数据库 时间序列 自动编码器

银行应将低代码能力作为在评估厂商综合能力的一个维度

易观分析

低代码 银行

Docker容器:将带UI的程序直接转为Web应用,so easy

华为云开发者联盟

云计算 后端 Docker容器 Web应用

第一次读 “Clean” 系列,并没有觉得这是一本多好的书

博文视点Broadview

CopyOnWriteArrayList 源码分析-其它方法

zarmnosaj

5月月更

【linux运维】linux运维会被淘汰吗?会消失在云计算中吗?

行云管家

云计算 IT运维 云运维

技术分享| 快对讲调度系统设计概要

anyRTC开发者

音视频 语音通话 调度 视频通话 快对讲

OpenYurt v0.7.0 版本解读:无侵入的跨网络域解决方案 Raven

阿里巴巴云原生

阿里云 开源 云原生 边缘计算 openyurt

phpstorm 配置 Xdebug 调试

CRMEB

web前端培训Vue3 TypeScript 如何实现useRequest

@零度

Vue 前端开发

浅析数字化转型与产业互联网

IT民工大叔

产业互联网 数字化转型

架构的尽头是架构师

IT民工大叔

架构师

详解GaussDB(DWS)的CPU资源隔离管控能力

华为云开发者联盟

数据库 cpu GaussDB 资源管控

拯救工程师,远程开发C++的四大秘笈|视频教程

OneFlow

c++ 教程分享

如视技术副总裁杨永林:当传统产业遇到“数字空间”

阿里云弹性计算

视觉计算 数字空间 VR看房

查询语句写了limit 1,为什么依然很慢?

华为云开发者联盟

后端 开发 计算引擎 limit 1

企业电子文档管理需要注意的点及解决措施

小炮

文档管理

大数据培训实时数仓实践以及架构的演进

@零度

数仓 大数据开发

快速上手vs2019

Loken

音视频 5月月更

LR.Net低代码开发平台 快速设计权限管理模块

力软低代码开发平台

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