【问题标题】:terraform collaboration with one state fileterraform 与一个状态文件的协作
【发布时间】:2020-10-27 04:38:08
【问题描述】:

我正在努力解决 terraform 的问题: 简而言之,问题与团队之间的协作有关,同时使用 SAME 状态文件示例编写基础代码:

  • 基础设施团队:网络管道

  • 应用团队:创建 VM/k8s 工作负载

应用程序团队显然会使用数据源从基础设施团队获取一些输入......直到这里一切都好。两个团队使用不同的 git 存储库,但使用相同的远程状态文件。

因为两个团队都使用相同的状态文件,所以当应用团队尝试部署某些东西时,一个团队(例如基础设施团队)创建的资源被标记为删除,反之亦然。

我们可以防止这种情况吗,使用单独的状态文件是唯一的解决方案吗? 谢谢你

【问题讨论】:

  • 两个根配置不应共享一个状态。将状态拆分到每个根配置会很乏味,但它会解决您的问题以及其他未来的问题。
  • 明白,我的印象是 terraforn 使用一个状态文件来代表配置文件的整个基础架构
  • 状态是与每个根配置工作区之间的一对一映射。因此,您的状态数将是每个根配置中加在一起的工作区总数。

标签: terraform


【解决方案1】:

简短的回答是肯定的。 单独的状态文件是最好的长期解决方案。您可以考虑的另一个选项是工作空间,但根据 terraform 文档,这不是一个好主意:

当使用 Terraform 管理更大的系统时,团队应使用多个独立的 Terraform 配置,这些配置与系统内合适的架构边界相对应,以便可以单独管理不同的组件,并在适当的情况下由不同的团队管理。单独的工作区不是系统分解的合适工具,因为每个子系统都应该有自己独立的配置和后端,因此会有自己独特的工作区集。

https://www.terraform.io/docs/state/workspaces.html#when-to-use-multiple-workspaces

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2021-12-11
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2022-06-24
    • 2016-04-29
    相关资源
    最近更新 更多