用户环境的可用性增强。¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/heat/+spec/env-nested-usability
在模板资源交互方式上,我们可以轻松地进行许多相关的增强。为了让 heat 更易于使用,我们快速解决这些问题。这些问题在此处提出:https://etherpad.openstack.org/p/heat-useablity-improvements
问题描述¶
以下是一些与环境和模板资源交互相关的小问题。我们将它们分组在一起以减少繁文缛节。
无法指定“全局”参数¶
在创建深度和/或复杂的多个提供程序模板组合时,如果最终通过属性/参数将很长的通用参数列表传递到“层”中,将会变得繁琐。如果环境有一个“global_parameters”部分,您可以指定应该不仅对顶级堆栈可见,而且对所有子堆栈可见的那些参数。
无法透明地用提供程序资源替换资源。¶
例如,当您通过在环境中映射的提供程序资源将 OS::Nova::Server 替换为 OS::My::SpecialServer 时,您无法透明地使用重载的专用服务器,因为当您执行 get_resource: special_server 时,您会得到一个嵌套堆栈 ID,而不是嵌套服务器 ID。
需要镜像资源属性。¶
要求用户镜像嵌套堆栈的资源属性到输出中,以便在嵌套堆栈外部引用它们,这很麻烦。我们应该动态生成这些属性。
提议的变更¶
向环境添加 parameter_defaults 的概念。它将如下所示
parameter_defaults: flavor: m1.small region: far-away
这些参数的行为如下:- 如果没有针对它的参数定义,它将被忽略。- 这些参数将被传递到所有嵌套模板中 - 它们仅用作默认值,以便可以在“parameters”部分中显式覆盖它们。
支持用于引用的 Template 资源中的特殊命名输出。
修改 TemplateResource 的 FnGetRefId 以查找名为“OS::stack_id”的输出,如果提供此输出,则返回此输出,否则返回当前值。
为模板资源添加动态属性。
资源组的作用提醒
{get_attr: [a_resource_group, resource.<res number>.attr_name]}
对于模板资源,将支持以下内容
{get_attr: [a_resource_templ, resource.<res name>.attr_name]}
为了实现这一点,将覆盖 _resolve_attribute() 以查找“resource.<res name>”,然后向下钻取到该资源的属性。
备选方案¶
无
实现¶
负责人¶
- 主要负责人
asalkeld
里程碑¶
- 完成目标里程碑
Kilo-2
工作项¶
每个项目可以单独完成。需要将每个功能的文档添加到模板指南中。
依赖项¶
无