主要观点:提出添加terraform plan -light
标志,仅针对代码中修改的资源进行规划,以减少计划持续时间和预计划刷新范围,同时避免状态拆分带来的复杂性和一致性风险。
关键信息:
- 计划持续时间问题:管理大量资源时,计划可能耗时数小时,原因是预计划刷新,而非规划本身。
- 实际问题:刷新持续时间长,尤其是资源较多或提供程序较慢时,可能等待数小时。
部分解决方案:
- 增加并行度:但可能受提供程序限制。
- 禁用预计划刷新:有一致性风险,需通过工具定期刷新状态。
- 分解状态:可将大状态拆分为小状态,但可能导致依赖资源断开,增加复杂性。
- 提议的解决方案:
terraform plan -light
标志基于代码变化确定可能更改的资源作为-target
,每次应用时将应用代码存储在状态中,下次计划时比较当前代码和上次应用的代码,仅规划差异资源,减少刷新时间,保持所有资源在同一依赖图中。
重要细节: - 预计划刷新可缩小状态与实际情况的差距,但不能保证一致性。
- 禁用预计划刷新有风险,需定期刷新状态。
- 分解状态可降低计划时间,但可能导致依赖资源断开。
-target
标志可用于过滤计划的资源范围,但每次更改都指定不方便。terraform plan -light
通过比较当前和上次应用的代码确定-target
,减少刷新时间和复杂性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。