Terraform 新增原生单体仓库支持、Stack 组件配置及更多功能
在过去的几个月里,HashiCorp Terraform 工程团队持续改进功能,以帮助平台团队通过标准化工作流、提高可发现性和减少操作摩擦,从而高效、安全地扩展基础设施运营。HCP Terraform 和 Terraform Enterprise 的最新改进包括:
- 私有注册表中的 Stack 组件配置(正式发布)
- 用于将工作空间迁移至 Stack 的 Terraform 迁移工具(测试版)
- 灵活模块发布(正式发布)
- 用于模块测试的自托管 HCP Terraform 代理(正式发布)
- Terraform 搜索与导入(正式发布)
» 私有注册表中的 Stack 组件配置
我们在九月的 HashiConf 上宣布了 Terraform Stacks 的正式发布,以帮助用户简化和规模化地配置与管理基础设施。
功能缺口:为了实现该功能的全部潜力,用户需要一种集中式的方法来共享和使用可重用、版本化的 Stack 组件配置。如果在您的私有注册表中没有相关的制品,您的用户就需要自行定义其 Stack 的组件部分——并且他们可能难以在遵循组织最佳实践的前提下定义其 Stack 组件。
新增内容:为了解决这个问题,我们很高兴推出 Stack 组件配置,它使标准化、复杂的基础设施模式能够在您的私有注册表中被发现。就像私有模块为您的 Terraform 工作空间配置定义了组织最佳实践一样,组件配置为您的 Terraform Stacks 实现了这一点。而且,Stack 组件配置中一个组件的输出可以是另一个组件的输入,这意味着平台团队可以在一个可重用的配置中将模块关联起来。
优势:这一新的注册表制品提高了开发速度,同时减少了人为错误导致的风险。应用工程师也无需去弄清楚如何在 Stack 中组合正确的模块资源。与 Terraform 模块类似,Stack 组件配置可以预先构建、获得批准并无限制地重用。
请访问 HashiCorp Developer 站点,了解如何在 Stack 中定义和配置组件,以及如何编写 Stack 配置并将其发布到私有注册表。
» 灵活模块发布
功能缺口:许多组织使用单体仓库(monorepo)—— 一个存放所有代码的单一仓库——来高效管理多个模块。然而,这种常见做法与 HCP Terraform 和 Terraform Enterprise 私有注册表的结构不符,该注册表历史上只支持每个仓库一个模块,并强制要求模块仓库使用严格的命名约定。这意味着平台团队被迫支持单仓库模块管理,或者构建和维护复杂的、API 驱动的发布工作流。
新增内容:我们很高兴为 HCP Terraform 和 Terraform Enterprise 引入灵活模块发布功能来解决这一挑战。此功能通过允许您在发布过程中指定 VCS 仓库以及模块在仓库内的具体模块目录路径,提供了原生单体仓库支持。至关重要的是,您还可以自定义模块的名称和目标提供商,从而摆脱旧的、限制性的命名格式。这为平台团队提供了他们所需的灵活性和控制力,可以按照他们想要的方式精确地组织代码。
优势:主要的好处很简单:您现在可以利用私有注册表的所有优势(集中化、版本控制和标准化),而无需任何重构成本。平台团队可以像在大型平台共享仓库中共享 /modules/vpc-networking 处的模块一样,立即从现有的单体仓库发布模块。这不仅节省了大量时间,还加速了所有开发团队获得已批准的内部模块的可用性,从而降低了平台工程工作的成本。
要了解更多关于如何将模块发布到 Terraform 私有注册表的信息,请查阅文档。
» 用于模块测试的自托管 HCP Terraform 代理
功能缺口:对于许多组织,特别是那些在高度监管行业中的组织,在自托管代理上运行 Terraform plan 和 apply 操作是必不可少的要求。这些代理提供了管理敏感基础设施所必需的安全性、合规性和内部网络访问。然而,在此之前,团队无法在这些相同的受控环境中运行其 Terraform 模块测试。这迫使团队使用笨拙且碎片化的工作流,需要单独的测试设置,从而引入了环境不一致性,增加了运营开销,并造成了潜在的安全和合规性缺口。
新增内容:我们通过引入支持直接在您的自托管代理上为 HCP Terraform Premium 和 Terraform Enterprise 运行 Terraform 模块测试,来弥补这一缺口。这一关键的增强功能使您能够将整个基础设施工作流,从开发、测试到规划和应用——全部整合到您安全、受控的代理基础设施中。
优势:此功能极大地提升了部署信心,并显著降低了风险。通过在部署完全相同的环境中运行测试,您消除了问题仅在流程后期才暴露的风险,因为测试现在能准确反映您的实际生产条件。
您可以在尝试执行 terraform apply 之前,根据实际的内部资源和安全策略验证您的基础设施模块。这个统一的、安全的平台简化了操作,确保了合规性,并让您能够自信地部署模块,因为它们已经在预期的操作环境中经过了严格测试。
» Terraform 搜索
背景:在九月的 HashiConf 上,我们宣布了 HCP Terraform 的一个新的端到端搜索工作流的公开测试版,该工作流使用户能够发现和批量导入资源。这为管理大型、预先存在的云环境的实践者们填补了一个长期存在的空白。团队现在可以搜索其整个云资产,通过 Terraform 1.12 中引入的资源身份框架,凭借其 Terraform 身份识别资源,并以精确和上下文感知的方式批量导入它们,而无需在控制台间切换、编写临时导入脚本或手动协调状态。
新增内容:今天,我们很高兴地宣布 Terraform 搜索工作流正式发布。在此正式版本中,AWS 和 Azure 提供商已获得支持,我们正在积极扩展,在未来的版本中覆盖更多提供商。
要了解更多信息,请参阅我们的搜索和导入文档。
» 用于从工作空间迁移至 Stack 的 Terraform 迁移工具
背景:在 HashiConf 上,我们宣布了 Terraform Stacks 的正式发布,使客户能够通过统一的 CLI 体验和集成的 CI/CD 管道来管理工作负载。
功能缺口:我们理解将现有的 Terraform 工作负载从工作空间迁移到 Stack 可能很复杂。一个关键的挑战是缺乏一条清晰、自动化的路径来迁移现有的 Terraform 工作负载,同时保持状态完整性并最小化中断。
新增内容:为了简化这一过程,我们将在 Terraform migrate 2.0 中引入一项新功能,该功能现已提供公开测试版。这个新版本支持一个 CLI 驱动的迁移工作流,该工作流自动执行从工作空间迁移到 Stack 转换的关键步骤,包括:
- 从现有工作空间提取配置
- 生成反映工作空间设置的有效 Stack 配置
- 将 Terraform 状态转移到新的 Stack 部署
- 创建并初始化新的 Stack
优势:这些功能显著减少了人工工作,帮助团队自信且可控地迁移到 Stacks。
要了解更多信息,请查看我们的工作空间到 Stack 迁移文档和分步教程。
» 开始使用 HCP Terraform 和 Terraform Enterprise
您现在就可以试用这些新功能中的许多项。如果您是 Terraform 的新用户,请注册一个 HCP 账户立即开始,并查看我们的教程。HCP Terraform 包含 500 美元信用额度,允许用户快速开始使用任何计划中的功能,包括 HCP Terraform Premium。如果您有兴趣尝试我们的自托管产品:Terraform Enterprise,请联系我们的销售团队。