debugging Terraform是否可以在没有状态文件的情况下为代码更改生成计划?

4uqofj5v  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(140)

当有一个团队使用terraform来管理云资源(通过共享的git仓库),并且大多数成员没有对状态文件的直接个人访问权限(出于安全原因)时,在循环拉取请求之前,有哪些实践可用于测试和调试变更(例如特性)提议?
没有状态文件(或管理员凭据),terraform是否可以在本地为与基本提交相关的 * 更改 * 生成推测性计划?或者是否有必要生成单独的推测性计划(对于主分支和新特性分支)然后执行 diff?Like、是否可以使用另一个推测性计划来代替状态文件?2或者标准工作流是否可以保持将未完成的工作推送到临时远程分支,持续集成管道配置为根据实际状态自动生成计划?

sh7euo9m

sh7euo9m1#

我猜您打算创建如下工作流:

  1. Junior DevOps提交了一些功能的建议代码,这些功能需要云中的某种资源。(我们还不太信任他们,所以他不能自己提供资源)
  2. CI正在对代码进行一些检查(checkov、terraform verify等)
    1.CI测试通过-〉我们会回来这里
    1.代码由高级开发人员审查并接受
  3. CI执行terraform apply
    如果是这样,让我们关注问题...

***to test***地形变化意味着什么?

根据具体情况,可能为:

  1. terraform plan打印有效计划
  • terraform apply在***测试***环境中工作(与生产环境分开,状态文件为空-请记住在测试后清理此文件)
  • 这种情况还允许运行一些真实的测试(e2 e、简单curl、集成测试等)

当然,第二种方法要好得多,但并不总是可以(或者说有意义)创建测试资源,通常可以通过在资源中设置一些不同的名称来实现。
测试可能并不意味着将更改应用于您的生产。
与计划的差异也不是最好的“测试”,因为两个terraform plan运行一个接一个可能不同。

相关问题