通过 Swift 部署信号软件部署资源

https://blueprints.launchpad.net/heat/+spec/software-config-swift-signal

目前,唯一可用于信号部署资源的方法是向 heat 发出经过身份验证的 API 请求。SoftwareDeployment 资源 signal_transport: TEMP_URL_POLL 将允许使用类似于 OS::Heat::SwiftSignal 的方法进行未经验证的信号传递。

问题描述

OS::Heat::SoftwareDeployment signal_transport 选项当前都需要资源范围的凭证以及服务器到 heat API 的网络连接才能工作。

提议的变更

与 OS::Heat::SwiftSignal 类似,signal_transport:TEMP_URL_POLL 将创建一个长期有效的 swift TempURL,heat 将轮询该 URL,直到对象包含来自执行配置部署的 nova 服务器的预期数据。最初,“长期有效”意味着在 2038 年过期。

实现 signal_transport:TEMP_URL_POLL 将具有以下好处

  • 每个 OS::Heat::SoftwareDeployment 资源都不需要创建堆栈用户

  • 与访问 keystone 和 heat API 相比,云运营商更有可能提供从 nova 服务器访问 swift 对象的功能。

此外,heat.conf default_software_config_transport 选项将被添加,以便运营商可以选择最适合其云的传输方式。选择默认值将取决于云是否支持 keystone v3、swift 和 cloudformation 端点。

备选方案

Blueprint software-config-zaqar 将实现 signal_transport:ZAQAR_MESSAGE,这将是提供 zaqar 端点的云的首选方式。由于 Swift 的部署比 Zaqar 更广泛,因此应首先推荐 ZAQAR_MESSAGE,然后是 TEMP_URL_POLL。

实现

负责人

主要负责人

<steve-stevebaker>

里程碑

完成目标里程碑

Kilo-3

工作项

  • 在 SoftwareDeployment 中实现 TempURL 创建和轮询

  • 在 heat-templates 55-heat-config 中实现 TempURL POSTing(如果接口与 CFN_SIGNAL 相同,则可能不需要)

  • 在 hot-guide 的软件部署部分记录使用 TEMP_URL_POLL 和 AUTO 的影响。

依赖项

不依赖于新的库或现有的蓝图。