2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

发布
暂无评论

学习笔记-人工智能概念(小白)

superman

北京自贸区总体方案公布:建设法定数字货币试验区

CECBC

金融 国内宏观

架构师训练营第 1 期第 2 周学习总结

好吃不贵

极客大学架构师训练营

中国消费者独享长达三个月的年终跨境网购狂欢季

爱极客侠

Spring 5 中文解析数据存储篇-DAO支持

青年IT男

Spring5

机器学习笔记-概念

superman

【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?

冰河

MySQL 高可用 主从复制

机器学习如何推进现代医疗护理服务的变革

Geek_b33b8e

学习 开源 跨平台 行业资讯 医疗方案

提高网站的吞吐量

架构师修行之路

甲方日常 21

句子

生活 工作 随笔杂谈 日常

week13--课后总结

Geek_165f3d

“工业互联网+区块链”融合发展新图景

CECBC

区块链 互联网 信息安全

磨刀不误砍柴工,搞定云网络系统性能测试

lklmyy

IaaS 云网络 质量保障

第二周-框架设计-学习总结

刘希文

week13---课后作业

Geek_165f3d

01_Eureka源码初探

阿亮

源码 微服务 SpringCloud Eureka

为什么选择敏捷软件开发-考虑敏捷开发的主要优势

小隐乐乐

敏捷开发

Spring Cloud 微服务实践(6) - 资源服务器

xiaoboey

微服务 Spring Cloud OAuth2 JWT 权限控制

有感-人工智能学习

superman

区块链行业简报

CECBC

区块链 金融 银行

架构师训练营第 1 期第 2 周作业

好吃不贵

极客大学架构师训练营

腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践

Apache Flink

flink

Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据

Apache Flink

flink

华为,与山河共舞这支芭蕾

脑极体

你觉得Android又凉了?那带你看下2020年Android开发的前景如何?

Geek_211aa0

android 程序员 中年危机 移动开发 前景

Mac 系统 VS Code 设置向下复制粘贴当前行快捷键(Ctrl + D)

AlwaysBeta

ide vscode Mac

按自己的逻辑,避免千篇一律的呈现品牌官方商城

boshi

产品设计 页面展示 商城

Apache Pulsar 社区周报|09-12~09-18

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings解决办法

Geek_416be1

阿里3轮面试都问了RecyclerView

Geek_211aa0

android 面试 阿里 移动开发 RecyclerView

第13周作业

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