我目前正在 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输出中访问它们的原因