Redfish 硬件类型和接口¶
https://bugs.launchpad.net/ironic/+bug/1526477
本规范建议添加一个新的 redfish 硬件类型、电源和管理接口,以便支持在符合 Redfish 标准的服务器上部署 ironic。
问题描述¶
分布式管理任务组 (DMTF) 发布了一种名为 Redfish 的新规范(请参阅 http://www.dmtf.org/standards/redfish),旨在提供基于 RESTful 的 API,以标准化的方式管理服务器。本规范旨在为 ironic 添加对控制符合 Redfish 标准的服务器的支持。
提议的变更¶
本规范建议添加一个新的 redfish 硬件类型、电源和管理接口。这些接口默认情况下不会启用。
新的接口将使用 sushy 库来处理驱动程序和 Redfish 控制器之间的通信。
在 ironic 社区重新评估后,该库将来可能会切换到 python-redfish。切换到 python-redfish 超出了本规范的范围,但它不应导致任何公共接口发生更改。它很可能涉及代码更改和新的配置选项。
请注意,将不支持任何 OEM 特定的扩展。
备选方案¶
无
数据模型影响¶
无
RPC API 影响¶
无
状态机影响¶
无
REST API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
Ramdisk 影响¶
无
安全影响¶
无
客户端 (CLI) 影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
在将节点注册到 ironic 时,需要以下 driver_info 字段
redfish_address:Redfish 控制器的 URL 地址。它应包括 URL 的 scheme 和 authority 部分。例如:https://mgmt.vendor.com
redfish_system_id:驱动程序将与之交互的 ComputerSystem 资源的规范路径。它应包括根服务、版本以及与 redfish_address 属性的 authority 相同的 ComputerSystem 的唯一资源路径。例如:/redfish/v1/Systems/1
redfish_username:具有 admin/server-profile 访问权限的用户帐户。虽然此属性不是必需的,但强烈建议设置用户名。可选
redfish_password:用户帐户密码。虽然此属性不是必需的,但强烈建议设置密码。可选
redfish_verify_ca:此属性包含一个布尔值、CA_BUNDLE 文件的路径或包含受信任 CA 证书的目录。如果设置为 True,驱动程序将验证主机证书;如果设置为 False,驱动程序将忽略 SSL 证书验证;如果它是一个路径,驱动程序将使用指定的证书或目录中的一个证书。默认值为 True。可选
有关 redfish_system_id 属性的预期语法的更多信息,请查看 DMTF 规范的 资源标识符属性 部分。
建议将以下新的配置变量(及其默认值)添加到 conductor 变量组
[redfish]/
connection_attempts尝试连接到 Redfish 的最大次数。
[redfish]/
connection_retry_interval尝试连接到 Redfish 之间的秒数。
开发人员影响¶
无
实现¶
负责人¶
主要负责人
bcornec
lucasagomes
其他贡献者
ribaudr
工作项¶
添加一个新的
redfish硬件类型、电源和管理接口。为新代码编写单元测试。
修改 ironic DevStack 模块,以设置一个虚拟环境,该环境能够使用新的 Redfish 驱动程序测试节点。
编写文档。
依赖项¶
新的 redfish 电源和管理接口需要在 conductor 节点上安装 sushy 库。
测试¶
将为 Redfish 支持实现单元测试。
DevStack 将更新为使用 redfish 驱动程序和 Sushy 附带的 libvirt 模拟器设置节点,以便可以在 gate 环境中针对虚拟机进行测试。
升级和向后兼容性¶
此驱动程序不会破坏 REST API 或 RPC API 的任何兼容性。
文档影响¶
更新 ironic 文档的 启用驱动程序 部分,添加 Redfish 相关说明。
更新 ironic 安装指南文档的 设置裸机服务的驱动程序 部分。
参考资料¶
Redfish DMTF:http://www.dmtf.org/standards/redfish
python-redfish 库:https://github.com/openstack/python-redfish