我目前正在 Build 一个项目,我的Terraform状态被分成多个远程状态(核心,数据库,vpc等),所有这些都被环境分割 . 我将这些全部存储在一个 infrastructure git仓库中,我的所有服务和基础架构的所有terraform状态都被管理 . 这包括核心构建块,以及特定服务所需的单独状态 .

我的问题是:我可以从那些远程状态(核心,数据库等)访问变量而无需git检出创建这些状态的项目吗?即 . 从命令行?

这是一个示例结构 .

git repos:

  • service_1

  • 应用程序代码

  • dockerfile

  • 基础设施

  • terraform

  • 全球

  • 生产环境

  • vpc

  • db

  • service_1

  • 分期

  • vpc

  • db

  • service_1

因此,如果我在我的 service_1 项目中编写胶水脚本,并且需要访问 database 远程状态(由 infrastructure 项目中的terraform创建的东西,我可以访问该数据而无需git-check-out infrastructure 项目,运行 terraform init ,等等?


编辑:根据评论更新更具体的用例

目前,我使用Terraform在 core 模块中设置一些基本的基础设施,该模块具有自己的远程状态 . 这将设置Internet网关,VPC,NAT网关,子网等 . 然后我将这些存储为状态中的输出 .

一旦核心启动,我使用 kops 来设置Kubernetes集群 . 要设置群集,我需要VPC ID,Internet网关,可用区等,这就是我想在Terraform输出中访问它们的原因