用户环境的可用性增强。

包含您的 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。

需要镜像资源属性。

要求用户镜像嵌套堆栈的资源属性到输出中,以便在嵌套堆栈外部引用它们,这很麻烦。我们应该动态生成这些属性。

提议的变更

  1. 向环境添加 parameter_defaults 的概念。它将如下所示

    parameter_defaults:
      flavor: m1.small
      region: far-away
    

    这些参数的行为如下:- 如果没有针对它的参数定义,它将被忽略。- 这些参数将被传递到所有嵌套模板中 - 它们仅用作默认值,以便可以在“parameters”部分中显式覆盖它们。

  2. 支持用于引用的 Template 资源中的特殊命名输出。

修改 TemplateResource 的 FnGetRefId 以查找名为“OS::stack_id”的输出,如果提供此输出,则返回此输出,否则返回当前值。

  1. 为模板资源添加动态属性。

资源组的作用提醒

{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

工作项

每个项目可以单独完成。需要将每个功能的文档添加到模板指南中。

依赖项