将参数数据存储从 Stack 迁移到 RawTemplate¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/heat/+spec/convergence-parameter-storage
问题描述¶
Stack 的目标状态不由模板单独定义,而是由模板和环境(包括输入参数值)的组合定义的。然而,目前这些数据是分别存储的——RawTemplate 数据库表用于存储模板,但环境存储在 Stack 表中。
为了允许用户回滚到之前的状态,我们需要存储旧模板和旧环境。
提议的变更¶
将环境的存储从 Stack 表的 parameters 列迁移到 RawTemplate 表。这样,只要数据库中仍然可用该模板,我们就可以回滚到先前命令的状态。
顺便说一下,我们应该添加一个环境参数是否加密的带外指示器,因为我们知道在数据库中加密参数是我们将来想要实现的功能。
我们还可以考虑将用户参数和环境的其他部分分别存储。当前的设计是针对先前我们只有参数的环境进行改造的结果。我们可能应该将环境的“files”部分作为多部分 MIME 文档存储在单独的列中,而不是作为环境的一部分的 JSON 字典存储,因为这是我们希望在未来的 v2 API 中允许的格式。
备选方案¶
与其在 Stack 表中存储多个模板引用,我们还可以包含多个环境版本(例如,拥有一个 previous_parameters 或 previous_environment 行)。这将避免现在进行迁移,但它会使在收敛中实现回滚变得更加混乱和容易出错。
实现¶
负责人¶
- 主要负责人
ckmvishnu
里程碑¶
- 完成目标里程碑
Kilo-3
工作项¶
数据库迁移
更改从数据库加载环境数据的方式
依赖项¶
无