通过使用terraform来寻找建议和一些一般性指导,在我的情况下,是通过服务完全分割状态。
这是目录结构如何维护的示例。
global
├── iam
│ ├── .tf files
├── kms
│ ├── .tf files
└── organization
└── root
├── .tf files
├── project_1_OU
| └── .tf files
├── project_2_OU
| └── .tf files
└── project_3_OU
└── .tf files
每个状态都在服务文件夹中。例如: global / organization / root具有组织中所有帐户的列表,控制资源访问管理器共享,全局级别的SCP等。 输出之一是下一个返回所有帐户列表的输出。
output "root_organization_accounts" {
value = "${data.template_file.organization_accounts_list.*.rendered}"
}
另一方面,KMS服务使用远程状态中的此输出变量来通过新帐户列表更新其策略
我正在尝试的场景:
terraform apply/refresh
来更改global / organization / root的输出(并且没有报告要更改的内容,在这种情况下是正常的-这只是输出更改)terraform apply
,以便使用添加的新帐户来更新政策简而言之, global / organization / root 状态在 global / organization / root / project_x_OU 和 global / kms 中被用作只读状态>水平。
global / organization / root / project_x_OU 中的更改应触发 global / organization / root 级别的状态刷新,从而使 global / kms 级别可以使用新数据进行更新。
我的问题:
我将Atlantis作为一种CI / CD解决方案与普通地形https://www.runatlantis.io/结合使用,并且它不希望执行任何更改(在全局/组织/根目录下,这种情况)