Terraform
Terraform 集成计划
Terraform 集成计划旨在帮助潜在和现有合作伙伴为 Terraform 创建和发布集成。HashiCorp 会验证通过该计划发布的所有集成。
集成类型
Terraform 生态系统使用户能够将 Terraform 应用于不同的用例和环境。Terraform 集成计划目前支持以下用例。除了合作伙伴提供程序之外,以下大多数用例都与商业版 Terraform(HCP Terraform 和 Terraform Enterprise)相关。合作伙伴可以根据适用情况跨不同用例进行集成。
- AI/MCP 服务器集成: 用于管理多云平台和利用 AI 进行设计和操作任务,或自动化 Terraform 代码创建的工具的集成。
- 审计: 帮助管理基础设施资源以防止服务中断、改善治理并记录或分析变更以实现合规性和安全性的合作伙伴。
- CI/CD: 专注于 IaC 资源的持续集成和持续交付/部署的合作伙伴。
- 代码扫描/策略/安全: 用于在部署前扫描 IaC 配置中的错误或安全问题,或用于定义和强制执行 IaC 配置策略的工具。
- 成本管理: 分析新基础设施对成本的影响,并对新旧基础设施应用成本治理的合作伙伴。
- 无代码/低代码/可视化云设计: 简化或可视化 IaC 工作流实施和部署的工具。
- 可观察性/监控: 提供 Terraform 部署的性能、使用情况和健康状况可见性的合作伙伴。
- SSO(单点登录): 用于安全用户身份验证的合作伙伴。
- Terraform 提供程序: 基础设施合作伙伴构建 Terraform 提供程序(插件),使客户和最终用户能够利用 Terraform 管理其平台 API 所公开的资源。这些提供程序可供所有 Terraform 版本用户使用。
- VCS(版本控制系统): 用于跟踪和管理 IaC 代码变更的合作伙伴。
运行任务允许 HCP Terraform 在 HCP Terraform 运行生命周期的特定时间点执行外部系统中的任务。工作流合作伙伴创建运行任务,使他们的服务能够直接集成到 Terraform 工作流中。大多数工作流合作伙伴都与 Terraform 工作流本身集成。这种集成为 HCP Terraform 和 Terraform Enterprise 客户提供了更大的可扩展性,使他们能够将您的服务集成到 HCP Terraform 工作流中。此功能允许用户在 pre-plan(计划前)、post-plan(计划后)、pre-apply(应用前)和 post-apply(应用后)阶段添加和执行这些任务。有关更多详细信息,请参阅 HCP Terraform 集成 或 Terraform Enterprise 集成 文档。

Terraform 提供程序集成
基础设施合作伙伴通过构建和发布名为 Terraform provider(提供程序)的插件进行集成。提供程序是使用 Go 编写的可执行二进制文件,通过 RPC 接口与 Terraform Core 通信。提供程序充当与外部 API(例如公共云服务(AWS、GCP、Azure)、PaaS 服务(Heroku、Confluent、UpCloud)、SaaS 服务(DNSimple、CloudFlare)或本地资源(vSphere))进行事务处理的转换层。提供程序适用于 Terraform CE、HCP Terraform 和 Terraform Enterprise。有关更多详细信息,请参阅 Terraform 提供程序集成文档。
我们的 Terraform 提供程序合作伙伴通常具有以下用例,如 Terraform Registry 中所列:
- 资产管理: 这些合作伙伴提供关键组织和 IT 资源(包括软件许可证、硬件资产和云资源)的资产管理。
- CI/CD: 这些合作伙伴专注于持续集成和持续交付/部署。
- 云自动化: 这些合作伙伴提供专业的云基础设施自动化管理功能,例如配置管理。
- 通信和消息传递: 这些合作伙伴与通信、电子邮件和消息传递平台集成。
- 容器编排: 这些合作伙伴协助进行容器调配和部署。
- 数据库: 这些合作伙伴提供调配和配置数据库资源的功能。
- 数据管理: 这些合作伙伴专注于数据中心存储、备份和恢复解决方案。
- IaaS(基础设施即服务): 这些是基础设施和 IaaS 提供程序,提供存储、网络和虚拟化等解决方案。
- 基础设施管理: 这些提供程序使 Terraform 能够在特定的托管平台和虚拟网络、数据库等其他服务上调配、配置和管理资源。
- 日志记录和监控: 这些合作伙伴提供配置和管理日志记录器、指标工具和监控服务等服务的能力。
- 网络: 这些合作伙伴与网络专用的硬件和虚拟化产品集成,例如路由、交换、防火墙和 SD-WAN 解决方案。
- PaaS(平台即服务): 这些是平台和 PaaS 提供程序,提供一系列硬件、软件和应用程序开发工具。此类别包括规模较小的提供程序和提供更专业服务的提供程序。
- 公共云: 这些是提供 IaaS、SaaS 和 PaaS 等一系列服务的大型全球云提供程序。
- 安全和身份验证: 这些合作伙伴提供身份验证和安全监控平台。
- 实用工具: 这些合作伙伴提供辅助功能,例如随机值生成、文件创建、HTTP 交互和基于时间的资源。
- VCS(版本控制系统): 这些合作伙伴专注于 Terraform 内部的 VCS(版本控制系统)项目、团队和存储库。
- Web 服务: 这些合作伙伴专注于 Web 托管、Web 性能、CDN 和 DNS 服务。
您可以按照以下五个步骤与 HashiCorp 一起开发您的提供程序。这可确保您能够快速高效地发布新版本的 Terraform。

- 准备:使用包含的资源开发集成
- 发布:将提供程序发布到 Registry 或插件文档
- 申请:申请加入技术合作伙伴计划
- 验证:与 HashiCorp Alliances 团队验证集成
- 支持:供应商提供持续的维护和支持
我们鼓励您完整地执行与每个步骤相关的任务,以简化开发流程并最大限度地减少返工。
所有提供程序都以完全相同的方式集成到 Terraform 中并与之配合运行。下表旨在帮助用户了解谁开发和维护特定的提供程序。
| 层级 | 描述 | Namespace (命名空间) |
|---|---|---|
官方 | 官方提供商由 HashiCorp 拥有和维护 | hashicorp、IBM、IBM-Cloud、ansible |
合作伙伴首选 | 技术合作伙伴是编写和维护合作伙伴首选提供商的第三方公司。要获得合作伙伴首选徽章,合作伙伴必须满足资格(请参阅合作伙伴首选要求。) | 第三方组织 |
合作伙伴 | 合作伙伴提供商由第三方公司编写、维护、验证和发布,针对他们自己的 API。要获得合作伙伴提供商徽章,合作伙伴必须参与HashiCorp 技术合作伙伴计划。 | 第三方组织 |
社区 | 社区提供商由个人维护者、维护者组或其他 Terraform 社区成员发布到 Terraform Registry。 | 维护者的个人或组织帐户,例如: DeviaVir/gsuite |
已归档 | 已归档的提供商是官方或合作伙伴提供商,这些提供商不再由 HashiCorp 或社区维护。如果 API 已弃用或兴趣较低,则可能发生这种情况。 | hashicorp 或第三方 |
1. 准备
要开始 Terraform 提供程序开发,我们建议您查看并遵循下面列出的资源。
提供程序开发工具包
a) 通过我们的 教程编写您自己的自定义提供程序。
c) 观看下面的视频,使用插件框架创建 Terraform 提供程序
d) 观看我们关于新插件框架及其对 Terraform 提供程序生态系统改进的概述
e) 参考我们的示例 Random 提供程序
f) 在 HashiCorp 开发者讨论 论坛中讨论提供程序。
请将有关提供程序工具和开发的问题或建议提交到 HashiCorp Terraform 提供程序论坛。如果您没有提供程序开发方面的专业知识,请联系我们,我们可能会推荐一些过去与我们合作过的第三方合作伙伴。
提供程序许可证
所有被列为合作伙伴的 Terraform 提供程序必须包含以下开放源代码许可证之一
- CDDL 1.0, 2.0
- CPL 1.0
- Eclipse Public License (EPL) 1.0
- MPL 1.0, 1.1, 2.0
- PSL 2.0
- Ruby's Licensing
- AFL 2.1, 3.0
- Apache License 2.0
- Artistic License 1.0, 2.0
- Apache Software License (ASL) 1.1
- Boost Software License
- BSD, BSD 3-clause, "BSD-new"
- CC-BY
- Microsoft Public License (MS-PL)
- MIT
合作伙伴高级标签要求 - 即将推出
为了获得 Terraform Registry 上的合作伙伴高级标签,除了下面列出的所有合作伙伴标签要求之外,还必须满足下面列出的一个技术要求和一项功能要求
技术
- 使用 Syft、CycloneDX Generator 或其他 SBOM 生成工具为提供程序包含软件物料清单 (SBOM)。
特性
- 如果适用,使用 Ephemeral Resources 作为安全最佳实践
- Terraform Search
- Terraform Actions
符合合作伙伴高级标签要求的技术合作伙伴可享受额外的合作伙伴权益,例如联合营销支持和机会、技术支持和资源、路线图共享、提供程序开发研讨会访问权限,以及对 Terraform 未来作为产品的独家设计输入,以及其他福利。
合作伙伴标签要求
未来,为了获得 Terraform Registry 上的合作伙伴标签,必须满足以下条件并由 HashiCorp Alliances Manager 验证
- 参与 HashiCorp 技术合作伙伴计划。
- 新提供程序基于 Terraform 最新的 Plugin Framework 构建。
- 通过并要求 Terraform 插件测试 作为提供程序的一部分。
- 承诺更新提供程序并修复问题。
- 在联合客户升级问题上进行协作。
- 提供程序上的测试作为 GitHub Action 每晚创建和运行。
2. 发布
提供程序完成后并准备发布后,您可以将其发布到 Terraform Registry。这将使其可供所有 Terraform 用户公开使用。
请遵循 Terraform Registry 发布文档 并查看 提供程序发布学习指南。如果您的公司有多个具有单独提供程序的产品,我们建议将它们发布到同一个 Github 组织下,以帮助提高可发现性,并为您的公司设置一个带有公共命名空间的免费 HCP Terraform 帐户。公共工件上的团队协作优势包括
- 不间断地访问重新同步工件版本
- 所有管理功能免费
- 使用 SSO 或 GitHub 进行身份验证
- 在组织所有权下声明多个命名空间
我们强烈鼓励所有合作伙伴开始使用 HCP Terraform 管理工件,作为未来最佳实践。立即阅读文档入门。
完成后,您的提供程序将在 Terraform Registry 中可见并可在 Terraform 中使用。请确认一切看起来正确且文档正确呈现。
3. 申请
发布提供程序后,请联系 HashiCorp Alliances 将您的集成纳入 HashiCorp 技术生态系统,或申请成为技术合作伙伴。
4. 验证
与您的 HashiCorp Alliances 代表合作,验证 Registry 中的插件,并成为 HashiCorp 网站上列出的 HashiCorp 技术合作伙伴集成。
5. 支持
构建新提供程序并将其发布到 Terraform Registry 只是实现高质量 Terraform 集成的第一步。集成在其整个生命周期中都需要持续维护。
HashiCorp Terraform 拥有广泛的用户和贡献者社区,我们鼓励社区报告问题并帮助解决问题。但是,我们期望所有合作伙伴提供程序发布者持续维护提供程序,并及时解决用户报告的问题。这包括在 48 小时内解决所有关键问题,在 5 个工作日内解决所有其他问题。HashiCorp 保留取消不符合我们维护要求的任何集成的合作伙伴资格的权利。
如果供应商选择不支持其提供程序,则提供程序的标签可能会更改为 Community(社区),而不是 Partner(合作伙伴)或 Partner Premier(合作伙伴高级)。
Terraform 合作伙伴模块
由 HashiCorp 技术合作伙伴发布的模块也可以像 Terraform 提供程序的合作伙伴标签一样标记为合作伙伴标签。请注意,获取 Terraform 模块的合作伙伴标签的要求与提供程序的要求略有不同
- 成功通过 TFLint、Checkov 或其他静态代码分析以及通过 terraform test 进行的传统单元和集成测试。
- 遵守 Terraform 的命名约定,用于资源、变量和输出。
- 应使用 terraform fmt 检查模块格式,以确保代码遵循标准格式。
- 在模块中包含以下文件
- main.tf:定义资源的核心配置文件。
- variables.tf:存储输入变量,允许操作员参数化 Terraform 配置。
- outputs.tf:定义输出值,使基础设施中的数据可供其他配置或用户使用。
- README.md:提供项目概述、说明和文档。
- Changelog:记录模块随时间推移的变更和更新。
- 模块的文档还应在 README.md 文件中清晰描述模块的用途、用法、输入、输出以及任何先决条件或依赖项。我们建议通过 terraform-docs.io 自动化此过程。模块中使用的任何资源也应酌情采用 ephemeral resources(临时资源)。
HCP Terraform 和 Terraform Enterprise 集成
我们与领先技术提供商的合作伙伴关系为 Terraform 工作流提供了一套全面的集成。我们的生态系统旨在增强基础设施生命周期的各个阶段,包括
- 通过代码扫描和策略工具确保基础设施安全
- 使用 CI/CD 管道自动化部署
- 使用版本控制系统管理代码变更
- 通过无代码和低代码平台简化设计
Terraform 集成计划还提供审计和成本管理解决方案,以保持合规性和财务效率,通过 SSO 简化用户访问,并通过可观察性和监控深入了解您的部署。最后,我们与 AI 和多云平台工具的高级集成可自动化复杂的任务并简化多云管理,使基础设施操作更加智能和高效。

运行任务允许 HCP Terraform 和 Terraform Enterprise 在 HCP Terraform 运行生命周期的某些时间点执行外部系统中的任务。具体来说,HCP Terraform 和 Terraform Enterprise 用户可以在 pre-plan(计划前)、post-plan(计划后)、pre-apply(应用前)和 post-apply(应用后)运行阶段添加和执行这些任务。要执行运行任务,Terraform 会向外部系统发送一个 API 有效负载。此有效负载包含一组与运行相关的信息和一个回调 URL,外部系统可以使用该 URL 将更新发送回 HCP Terraform 或 Terraform Enterprise。
外部系统可以使用此运行信息并向 Terraform 返回通过或失败状态。Terraform 根据任务在工作区中的强制执行设置,使用此状态响应来确定运行是否应继续。
除了运行任务之外,HCP Terraform 和 Terraform Enterprise 还提供强大的 API 驱动工作流以进行直接集成。这些直接集成非常适合创建自定义自动化、构建与第三方系统(如服务目录或客户门户)的集成,或与 CI/CD 管道集成以控制整个基础设施调配生命周期。API 优先的设计确保了全面的控制和灵活性,支持广泛的集成用例。
成功完成与 HCP Terraform 或 Terraform Enterprise 集成的合作伙伴将获得 HCP Terraform 或 Terraform Enterprise 徽章。此徽章表明 HashiCorp 在理想条件下验证了该集成,并且该合作伙伴是 HashiCorp 技术合作伙伴计划的成员。


HCP Terraform 和 Terraform Enterprise 徽章有助于提高可见性并区分联合合作伙伴和客户。合作伙伴可以在其数字资产上使用这些徽章,具体遵循您成为合作伙伴时收到的技术合作伙伴指南中概述的准则。
HCP Terraform 和 Terraform Enterprise 集成开发包括以下五个步骤

- 参与:注册技术合作伙伴计划
- 开发和测试:了解并使用运行任务的 API 集成进行构建
- 审核:与 HashiCorp Alliances 团队审核集成
- 发布:为您的集成提供文档
- 支持:供应商提供持续的维护和支持
1. 参与
对于刚开始与 Hashicorp 合作的合作伙伴,我们建议注册我们的技术合作伙伴计划。要了解有关该计划的更多信息,请查看我们的“成为合作伙伴”页面。
2. 开发和测试
合作伙伴应该使用 HCP Terraform 中的运行任务 API 构建集成。要了解有关 post-plan 运行任务如何增强 HCP Terraform 工作流的更多信息,请参阅下图并阅读我们的运行任务公告。要获得更多关于运行任务的实践经验,请在此处遵循 HCP Packer 运行任务学习指南。
除了运行任务之外,合作伙伴还应利用 HCP Terraform 中的 API 或 Terraform Enterprise 中的 API 以编程方式管理平台的大部分方面及其配套集成。
当与 Terraform Enterprise 集成时,您应该考虑网络访问配置,特别是配置 辅助主机名,这允许 Terraform Enterprise 在私有环境中部署时连接并集成外部系统。
3. 审核
安排时间与您的合作伙伴联盟经理审核您的集成。审核应包括在合作伙伴平台和 HCP Terraform 或 Terraform Enterprise 上启用集成,解释集成的用例,以及功能的现场演示。如果您无法与您的合作伙伴联盟经理联系,也可以发送电子邮件至 technologypartners@hashicorp.com。
4. 发布
在集成审核和文档完成后,我们会将新的运行任务合作伙伴添加到 Terraform Run Task 页面。在此页面上,您将提供有关您的集成的一行摘要。如果您有多个集成,我们强烈建议创建突出显示所有潜在集成选项的摘要。
其他 HCP Terraform 或 Terraform Enterprise 集成将添加到 HashiCorp 合作伙伴页面。
您必须提供文档,帮助用户开始使用您的集成。您还需要为我们的支持团队提供文档,包括联系人、电子邮件地址、常见问题解答和/或最佳实践。我们希望确保最终用户在与客户合作时能够联系到正确的内部 HashiCorp 支持人员。
5. 支持
在 HashiCorp,我们认为发布步骤是旅程的开始。构建集成只是使用户能够利用其基础设施的第一步。在完成初始开发后,需要持续努力来支持和维护它。
我们期望合作伙伴创建一种机制来跟踪和尽快解决所有关键问题(理想情况下在 48 小时内)并在 5 个工作日内解决所有其他问题。鉴于 HCP Terraform 对客户运营的批判性性质,这是一项要求。如果您选择不支持您的集成,我们将无法将其视为经过验证,也不会在 Terraform Registry 网站上列出它。
如有任何疑问或反馈,请通过 technologypartners@hashicorp.com 联系我们。