Ocata 系列 (7.0.0 - 7.0.x) 发行说明

7.0.7-7

错误修复

  • 修复了 Infiniband 端口验证问题。 Infiniband 端口不需要填充 local_link_connection 字段,因为网络拓扑可以被 Infiniband 子网管理器发现。 有关详细信息,请参阅 bug 1753222

  • 修复了一个错误,即 idrac 硬件类型在内省期间返回 CPU 插槽的数量,而不是虚拟 CPU 的数量。 有关详细信息,请参阅 bug 2004155

7.0.7

错误修复

  • 修复了一个问题,该问题导致集成 Dell Remote Access Controller (iDRAC) management 硬件接口实现,idrac,在 Unified Extensible Firmware Interface (UEFI) 启动模式下启动节点失败。 该接口受 idrac 硬件类型支持。 该问题已针对 Dell EMC PowerEdge 第 13 代和第 14 代服务器解决。 它未针对 PowerEdge 第 12 代及更早服务器解决。 有关更多信息,请参阅 story 1656841

  • 修复了一个节点撕毁期间的问题,Bare Metal 服务删除的端口可能会被 Compute 服务删除,从而导致 Networking 服务出现未处理的错误。 有关更多详细信息,请参阅 story 2002637

7.0.5

安全问题

  • 修复了一个问题,即在节点取消置备后,启用的控制台可能会一直运行。 这允许用户在实例消失后查看控制台。 Ironic 现在在取消置备期间停止控制台以阻止这种情况。

错误修复

  • 修复了 bug 1749755,该 bug 导致超时无法正常工作,因为使用了不受支持的 sqalchemy 过滤器。

7.0.4

安全问题

  • 在清理期间将节点上的 driver_infoinstance_info 字段中的敏感信息删除。

错误修复

  • 修复在配置文件中指定的区域被忽略时,获取 Keystone 服务 URL 时的多区域问题。

  • 修复部署节点时发生的故障。当相应的 Neutron 端口被删除,并且在实例删除之前,端口或端口组的 internal_info['tenant_vif_port_id'] 仍然存在时,就会发生这种情况,导致裸机节点的未来部署失败。现在这种情况会被记录,并且不会阻止未来的部署。有关详细信息,请参阅 https://bugs.launchpad.net/ironic/+bug/1685592

  • 不再使用 iscsi 部署接口验证整个磁盘镜像请求的根分区大小,有关详细信息,请参阅 bug 1742451

7.0.3

升级说明

  • 由于 bug 1702158,conductor_hardware_interfaces 表可能会使用 MyISAM 数据库引擎创建,而 ironic 数据库中的所有其他表都使用 InnoDB 引擎。如果在初始安装期间或升级到 ocata 版本时,系统使用的是 MySQL 5.5 之前的版本(或者 my.cnf 中的 default_storage_engine 选项显式设置为“MyISAM”),则可能会发生这种情况。如果是这样,则需要手动将 conductor_hardware_interfaces 迁移到 InnoDB,并重新创建外键约束。

    alter table conductor_hardware_interfaces engine='InnoDB';
    alter table conductor_hardware_interfaces
      add constraint conductor_hardware_interfaces_ibfk_1
      foreign key (conductor_id) references conductors(id);
    

错误修复

  • 修复 bug 1702158,即如果系统使用的是 MySQL 5.5 之前的版本(或者 my.cnf 中的 default_storage_engine 选项显式设置为“MyISAM”),则 conductor_hardware_interfaces 表使用的数据库引擎错误。在这种情况下,可能会使用 MyISAM 引擎创建表,并且忽略外键约束 conductor_id(conductors.id)。

  • 修复了一个问题,导致使用 Dell EMC 集成 Dell 远程访问控制器 (iDRAC) classic 驱动程序pxe_dracpxe_drac_inspector 的节点在双 manage/provide 周期后被置于 clean failed 状态,而不是 available 状态。有关更多信息,请参阅 bug 1676387

7.0.2

错误修复

  • 修复处理带有 0x00000000 磁盘标识符的整个磁盘镜像的问题。由于在配置驱动程序创建期间覆盖了启动配置中的标识符,实例无法启动。请参阅 https://bugs.launchpad.net/ironic/+bug/1685093

  • 修复 oneview 驱动程序在遇到服务器配置文件应用错误时尝试释放节点的问题。同时,确保只有由 ironic 管理的节点才能被释放。

  • 修复从硬件类型到经典驱动程序的节点驱动程序更新失败的问题。

7.0.1

错误修复

  • 修复了一个导致 CPU 使用率随着时间推移而增加的 bug。

7.0.0

序言

7.0.0 版本包含许多新功能和错误修复。请查看升级部分,其中描述了从 6.2.2 (Newton) 升级到 7.0.0 (Ocata) 的 Ironic 安装所需的步骤。

有一些主要的变化值得一提。这不是一个详尽的列表

  • “端口组”支持允许用户利用绑定网络接口。

  • 现在可以发出状态更改和 CRUD 通知。

  • 软关机、软重启以及发送不可屏蔽中断 (NMI) 现在在 REST API 中受支持。

  • AMT、iBoot、msftocs、seamicro、VirtualBox 和 Wake-On-Lan 驱动程序已从 ironic 中删除。请参阅升级说明以获取更多详细信息和选项。

  • “动态驱动程序”是对驱动程序组合方式的改进。与其使用一个巨大的硬件驱动程序矩阵来支持不同的内容,现在用户可以选择机器的“硬件类型”,并可以独立更改部署方法、控制台管理器、RAID 管理、电源控制接口等。这是一个实验性的功能,因为并非所有“经典”驱动程序都具有动态等效项,但我们鼓励用户尝试此功能并提交反馈。

新特性

  • 添加了通过 PATCH /v1/nodes/<ident> 删除与节点关联的机箱 UUID 的支持。此功能从 API 版本 1.25 开始可用。

  • 添加了对 DHCP 选项 210 (tftp-path-prefix) 的使用。这使得使用 petitboot 的系统可以进行 PXE 启动,因为 petitboot 无法从启动文件位置推断其 tftp-path-prefix,因为 petitboot 不使用启动文件。

  • 要在 iLO 驱动程序中启用 SNMPv3 检查,必须在节点的 driver_info 中设置以下参数。* snmp_auth_user * snmp_auth_prot_password * snmp_auth_priv_password * snmp_auth_protocol (可选,默认值为 iLO 默认值 MD5) * snmp_auth_priv_protocol (可选,默认值为 iLO 默认值 DES)

  • 添加了初始子系统,以允许创建存储接口。节点的默认存储接口为 noop,它路由到一个包含在子系统中的无操作驱动程序。

  • 添加了使用 /v1/nodes/<node>/vifs API 端点(从 API 版本 1.28 开始可用)将网络 VIF 附加到 ironic 端口和端口组以及分离网络 VIF 的支持。将 VIF 附加到节点时,它将附加到第一个空闲端口组。如果其任何端口都没有附加 VIF,则认为端口组是空闲的。否则,只有该端口组的未附加端口可用于附加。如果没有空闲端口组,则将使用第一个可用端口,其中 pxe_enabled 设置为 True 的端口具有更高的优先级。

  • 添加了对端口组的支持,并添加了一个新的端点 /v1/portgroups/。可以将端口组合到端口组中,以支持静态链路聚合组 (LAG) 和多机架链路聚合 (MLAG) 配置。

    请注意,如果未指定端口组的可选 mode 字段,则其值将设置为配置选项 [DEFAULT]default_portgroup_mode 的值,默认值为 active-backup

    此外,还添加了以下 API 更改

    • 一个新的端点 /v1/nodes/<node>/portgroups

    • 一个新的端点 /v1/portgroups/<portgroup>/ports

    • 端口对象上的一个新字段 portgroup_uuid。这是该端口所属的端口组的 UUID,如果它不属于任何端口组,则为 None。

    所有端口组 API 函数都从 REST API 的版本 1.26 开始可用。

  • 为 DRAC 驱动程序添加了时序指标。

  • 为 iRMC 驱动程序添加了时序指标。

  • 添加了新的选项 [deploy]/default_boot_option,用于在通过 capabilities 未请求显式启动选项时设置默认启动选项。

  • 添加了网络接口的新方法,这些方法将在 Pike 版本中成为强制性的

    • vif_list:列出节点上附加的 VIF ID。

    • vif_attach:将虚拟网络接口附加到节点。

    • vif_detach:从节点分离虚拟网络接口。

    • port_changed:处理端口更改时所需的任何操作

      更改。

    • portgroup_changed:处理端口组更改时所需的任何操作。

    • get_current_vif:返回附加到端口或端口组对象的 VIF ID。

  • 添加了对动态驱动程序的支持。现在可以在节点的 driver 字段中使用动态驱动程序。动态驱动程序由 hardware type 和多个 hardware interfaces 组成。

    注意:此功能被认为有些实验性,因为并非所有经典驱动程序都具有相应的动态驱动程序,并且在撰写本文时,动态驱动程序的 CI 很少。

    硬件类型通过 [DEFAULT]/enabled_hardware_types 配置选项启用,硬件接口通过 [DEFAULT]/enabled_*_interfaces 配置选项启用。可以使用 [DEFAULT]/default_*_interface 配置选项指定在创建或更新节点时使用的默认接口。

    如果

    • 找不到任何已启用硬件类型的默认接口实现, ironic-conductor 进程将无法启动。

    • 同时启用了动态驱动程序和具有相同名称的经典驱动程序。

    • 至少启用了一个经典驱动程序 一个动态驱动程序。

    此版本中可用的硬件类型是

    • ipmi,用于与 IPMI 兼容的硬件。默认情况下启用此类型。在后台使用 ipmitool 实用程序,类似于现有的经典驱动程序 pxe_ipmitoolagent_ipmitool。支持两种类型的串行控制台:通过 shellinabox 和通过 socat,两者默认情况下均已禁用。

    • irmc,用于 FUJITSU PRIMERGY 服务器,默认情况下禁用。

    此功能具有许多 REST API 更改,所有更改都可在 API 版本 1.31 中使用。

    • 为 GET /v1/drivers 和 GET /v1/drivers/<name> 添加了额外的参数和响应字段。

    • 在节点资源上公开以下字段,以允许获取和设置动态驱动程序的接口

      • boot_interface

      • console_interface

      • deploy_interface

      • inspect_interface

      • management_interface

      • power_interface

      • raid_interface

      • vendor_interface

    • 允许在 REST API 的所有版本中,在以下 API 调用中使用和返回动态驱动程序

      • GET /v1/drivers

      • GET /v1/drivers/<name>

      • GET /v1/drivers/<name>/properties

      • GET /v1/drivers/<name>/vendor_passthru/methods

      • GET/POST /v1/drivers/<name>/vendor_passthru

      • GET/POST /v1/nodes/<id>/vendor_passthru

    有关 REST API 更改的更多详细信息,请参阅 REST API 版本历史记录文档

    这还会在与节点相关的通知中添加动态接口字段

    • boot_interface

    • console_interface

    • deploy_interface

    • inspect_interface

    • management_interface

    • power_interface

    • raid_interface

    • vendor_interface

    受影响的通知是

    • baremetal.node.create.*,新的有效负载版本 1.1

    • baremetal.node.update.*,新的有效负载版本 1.1

    • baremetal.node.delete.*,新的有效负载版本 1.1

    • baremetal.node.maintenance.*,新的有效负载版本 1.3

    • baremetal.node.console.*,新的有效负载版本 1.3

    • baremetal.node.power_set.*,新的有效负载版本 1.3

    • baremetal.node.power_state_corrected.*,新的有效负载版本 1.3

    • baremetal.node.provision_set.*,新的有效负载版本 1.3

  • 添加 hctl 到根设备提示。HCTL 是 SCSI 地址,代表 Host、Channel、Target 和 Lun。

  • 添加了对在 REST API 版本 1.29 中为节点注入非屏蔽中断 (NMI) 的支持。此功能可用于硬件诊断,实际支持取决于驱动程序。在 7.0.0 中,此功能在 ipmitool 和 iRMC 驱动程序中可用。

  • 添加了对从单个 conductor 部署到具有不同 CPU 架构的节点的支持。这取决于两个新的配置选项,[pxe]/pxe_config_template_by_arch[pxe]/pxe_bootfile_name_by_arch。每个选项都是一个字典,将 CPU 架构映射到 PXE 配置模板或 PXE 启动文件名,分别。

    例如,语法可能如下所示

    pxe_config_template_by_arch=aarch64:pxe_grubaa64_config.template,ppc64:pxe_ppc64_config.template
    

    Ironic 尝试将节点的 properties/cpu_arch 字段中的 CPU 架构映射到此映射中。如果未在此映射中找到节点的 CPU 架构,ironic 将回退到标准选项 pxe_config_templatepxe_bootfile_nameuefi_pxe_config_templateuefi_pxe_bootfile_name

  • 添加了新的配置选项 [conductor]/send_sensor_data_workers,以允许使用指定的绿色线程数量并发发送传感器数据。配置选项 [conductor]/wait_timeout_for_send_sensor_data 是在再次运行周期性任务之前等待所有生成的绿色线程的时间。

  • 现在可以使用名称而不是 UUID 来配置 [neutron]/cleaning_network[neutron]/provisioning_network 配置选项(以前称为 [neutron]/cleaning_network_uuid[neutron]/provisioning_network_uuid)。在这种情况下,必须小心确保名称在所有网络中都是唯一的。请注意,名称与 UUID 之间的映射在 conductor 的生命周期内进行缓存。

  • 添加了 OneView 驱动程序可用的带内检查接口。

  • 为 OneView 驱动程序添加了时序指标。

  • 现在配置 ironic 以使用两个 oslo.policy CLI 脚本。

    第一个可以使用 oslopolicy-list-redundant --namespace ironic 调用,它将输出 policy.[json|yaml] 中与项目默认值匹配的策略规则列表。这些规则可以从策略文件中删除,因为它们在那里没有效果。

    第二个脚本可以像这样调用:oslopolicy-policy-generator --namespace ironic --output-file policy-merged.yaml,这将用有效的策略填充 policy-merged.yaml 文件。这是项目默认值和配置文件覆盖的合并结果。

  • pxe_snmp 和 fake_snmp 现在受支持并已通过测试。

  • Agent lookup/heartbeat 作为 vendor passthru 已从大多数 in-tree ironic 驱动程序中移除。受影响的驱动程序是

    • agent_ipmitool

    • agent_ipmitool_socat

    • agent_ipminative

    • agent_irmc

    • agent_ssh

    • agent_vbox

    • agent_ucs

    • pxe_agent_cimc

    • pxe_ipmitool

    • pxe_ipmitool_socat

    • pxe_ssh

    • pxe_ipminative

    • pxe_seamicro

    • pxe_snmp

    • pxe_irmc

    • pxe_vbox

    • pxe_msftocs

    • pxe_ucs

    • pxe_iscsi_cimc

    • pxe_drac

    • pxe_drac_inspector

    • iscsi_irmc

    • agent_ilo

    • iscsi_ilo

    • pxe_ilo

    • agent_pxe_oneview

    • iscsi_pxe_oneview

    如果驱动程序有的话,所有其他的 vendor passthru 方法都保留原样。

  • 添加了以下通知

    • ironic 资源(节点、端口和机箱)的创建、更新或删除。事件类型是 baremetal.<resource>.{create,update,delete}.{start,end,error}

    • 节点上的控制台启动和停止。事件类型是 baremetal.node.console_{set,restore}.{start,end,error}

    • 节点维护状态的变化。事件类型是 baremetal.node.maintenance_set.{start,end,error}

    • ironic 尝试设置节点电源状态时。事件类型是 baremetal.node.power_set.{start,end,error}

    • ironic 检测到 baremetal 硬件上的电源状态已更改并相应地更新数据库中的节点时。事件类型是 baremetal.node.power_state_corrected.success

    • 节点配置状态的变化。事件类型是 baremetal.node.provision_set.{start,end,success,error}

    只有在启用通知时才会发出这些通知。有关更多详细信息,请参阅开发人员文档:https://docs.openstack.org/developer/ironic/deploy/notifications.html

  • 添加了对配置和清理网络的 security groups 的支持。这些可以通过配置选项 [neutron]/provisioning_network_security_groups[neutron]/cleaning_network_security_groups 可选地指定。如果未指定,则使用网络的默认 security group。这些选项仅适用于使用“neutron”网络接口的节点。这些选项对于使用“flat”和“noop”网络接口的节点将被忽略。

  • 添加了对 REST API 版本 1.27 中软重启和软关机请求的支持。还添加了一个可选的 timeout 参数到节点电源状态 API。添加了一个新的配置选项 [conductor]/soft_power_off_timeout 来定义软关机操作的默认超时时间。在 7.0.0 中,这支持 ipmitool 和 iRMC 驱动程序。

升级说明

  • 添加了对 tooz 库 的新依赖,因为一致的哈希环代码已从 ironic 移至 tooz。

  • 配置选项 [DEFAULT]/debug 现在也启用了 ironic-python-agent ramdisk 的调试日志。如果 ipa-debug 内核选项已经存在于配置选项 [pxe]/pxe_append_params 中,ironic 将不会覆盖它。

  • 节点创建逻辑已从 API 服务移动到 conductor 服务。这与其他的节点操作更加一致,并为 conductor 端的节点验证提供了机会。但是,此更改可能会导致节点创建时间更长,并且可能会限制可以并行注册的节点数量。

  • 配置选项 [DEFAULT]/default_network_interface[dhcp]/dhcp_provider 之前是 ironic-api 服务计算正确“network_interface”默认值的必需选项。现在这些选项仅由 ironic-conductor 服务需要。

  • 未来的版本会将配置选项 [deploy]/default_boot_option 的默认值从“netboot”更改为“local”。为了避免中断,建议为该选项设置一个显式值。

  • python-oneviewclient 的最低版本现在是 2.5.2。

  • ironic 现在默认仅使用 Image Service (glance) v2 API。可以使用已弃用的 v1 API 执行某些基本任务,方法是将 [glance]/glance_api_version 设置为 1。但是,此选项不会影响临时 URL 生成,因为它始终需要 v2 API。

  • 配置选项 [inspector]/enabled 不再对 fake_inspector 驱动程序产生影响。它也不会对基于硬件类型的全新式动态驱动程序产生影响;而是需要使用 [DEFAULT]/enabled_inspect_interfaces

  • send_sensor_data 定期任务的默认工作线程数从 1 增加到 4。

  • ironic 不再将 root_device 作为启动配置文件中的内核参数传递。将 root device hints 传递给 Ironic Python Agent (IPA) 作为内核参数在 Newton 版本中已被弃用。因此,从 Ocata 版本开始使用 root device hints 部署节点将无法使用基于 IPA 的 ramdisk 作为 Mitaka 版本。依赖于 root device hints 功能的运营商建议更新其基于 IPA 的 Ironic 部署镜像。

  • ironic 不再支持 agent lookup/heartbeat 作为 vendor passthru 方法。所有 out-of-tree 驱动程序必须更新为直接使用 AgentDeployMixin 类,而无需依赖 BaseAgentVendor 类和其他从其继承的类(例如 agent.AgentVendorInterfaceiscsi_deploy.VendorPassthru)。这意味着 ironic 与基于 Ironic Python Agent (IPA) < 1.5.0 的部署 ramdisk 不兼容。运营商必须在这种情况下更新其基于 IPA 的部署 ramdisk。使用非 IPA 基于部署 ramdisk 的运营商,如果使用 ironic lookup/heartbeats 功能,则必须更新其 ramdisk 以使用自 ironic API v1.22 起可用的顶级 ironic lookup/heartbeats REST API。

  • 已弃用的 ironic.nova.ClusteredComputerManager 模块已被移除。这对于 nova >= 14.0.0 (Newton) 来说不再需要。

  • 配置选项 [deploy]/erase_devices_iterations 在 Newton 周期 (6.0.0) 中已被弃用。它不再受支持。请使用选项 [deploy]/shred_random_overwrite_iterations 代替。

  • 移除 ironic 内置的 DHCP 提供程序中这些已弃用的方法

    • create_cleaning_ports

    • delete_cleaning_ports

    移除 ironic.drivers.modules.deploy_utils 中的相关方法

    • prepare_cleaning_ports

    • tear_down_cleaning_ports

    如果您有自己的自定义 ironic DHCP 提供程序,它实现了 cleaning 方法,则可能需要更新您的代码以使用 add_cleaning_network()remove_cleaning_network() 网络接口方法。有关更多信息,请参阅 ironic/drivers/modules/network/ 中的模块。

  • 移除在驱动程序对象而不是接口上附加定期任务的支持。

  • iBoot、Wake-On-LAN 和 AMT 驱动程序已从 ironic 中移除,因为它们既没有也没有计划有第三方 CI。它们仍然可以在 ironic-staging-drivers 仓库中的不受支持的 ironic 驱动程序集合中找到。如果 ironic 安装使用了基于这些驱动程序的任何驱动程序,则运营商必须安装 ironic-staging-drivers 并根据以下对应关系列表更改受影响节点的驱动程序

    • agent_amt -> pxe_amt_agent

    • pxe_amt -> pxe_amt_iscsi

    • agent_wol -> pxe_wol_agent

    • pxe_wol -> pxe_wol_iscsi

    • agent_iboot -> pxe_iboot_agent

    • pxe_iboot -> pxe_iboot_iscsi

  • 不再支持在 ironic python agent (IPA) ramdisk 上使用版本 < 1.3 (Mitaka 或更早版本) 进行 iSCSI 部署。请升级 ironic python agent 到较新版本。

  • 在 Newton 版本中声明为不受支持的许多驱动程序已被从 ironic 树中移除。这包括基于以下电源和/或管理驱动程序接口的驱动程序

    • MSFT OCS

    • SeaMicro 客户端

    • 基于 pyremotevbox 客户端的 Virtualbox

    因此,以下 ironic 驱动程序将不再可用

    • agent_vbox

    • fake_msftocs

    • fake_seamicro

    • fake_vbox

    • pxe_msftocs

    • pxe_seamicro

    • pxe_vbox

    升级后,如果这些驱动程序中的一个或多个在“enabled_drivers”配置选项中,ironic-conductor 服务将无法启动。任何使用这些驱动程序分配的现有 ironic 节点将在 ironic 升级后变得无法运行,因为将无法更改任何节点状态/属性,除非更改节点驱动程序。启用上述驱动程序之一的运营商需要禁用这些驱动程序并将另一个现有的驱动程序分配给受影响的节点(如果合适),或者从其他地方单独安装这些驱动程序。

  • 对于 SSH 电源驱动程序,如果配置选项 [neutron]/port_setup_delay 已设置为 0,则会使用 15 秒的延迟。现在不再这样。请将配置选项设置为所需的值;否则,该服务将不会等待 Neutron 代理设置端口。

  • 更新 iLO 驱动程序的 proliantutils 版本为 2.2.0。此版本支持使用 SSA 实用程序进行清理磁盘擦除。

弃用说明

  • 使用 port.extra['vif_port_id'] 附加和分离端口或端口组已被弃用,将在 Pike 版本中移除。

  • 函数 build_instance_info_for_deploy 已从 ironic.drivers.modules.agent 中弃用,将在 Pike 周期中移除。它的新位置是 ironic.drivers.modules.deploy_utils。使用此函数的 out-of-tree 驱动程序应相应地更新。

  • 在策略文件中以下值的使用已被弃用

    • domain_iddomain_name - 应使用 user_domain_id 代替(请注意 - user_domain_id 是域的 ID,而不是其名称)。

    • tenant - 应使用 project_name 代替。

    • user - 应使用 user_id 代替。

  • DHCP 提供程序接口中的 update_mac_address 方法已被弃用,将在 Pike 版本中移除。逻辑应移动到自定义网络接口的 port_changedportgroup_changed 方法。

  • 对于 DRAC 驱动程序,节点的 driver_info["drac_host"] 属性已被弃用,并且从 Pike 版本开始将被忽略。请使用 driver_info["drac_address"] 代替。

  • 配置选项 [neutron]/cleaning_network_uuid[neutron]/provisioning_network_uuid 已被弃用,取而代之的是新的配置选项 [neutron]/cleaning_network[neutron]/provisioning_network

  • 所有 agent 驱动程序中的 driver_internal_infoagent_last_heartbeat 字段已被移除,因为 ironic 不使用此字段。

安全问题

  • 在使用 SSH 电源驱动程序并请求节点详细信息时,私有 SSH 密钥现在已被屏蔽。

错误修复

  • ipmitool 电源驱动的 reboot 方法中添加了缺失的错误检查,以便在电源关闭失败时,reboot 可以正确失败。

  • 修复了 iLO 驱动程序中带外检查的磁盘大小检测问题,通过可选地使用 SNMPv3 获取某些类型存储的磁盘大小。

  • 使用 AgentDeploy 接口的驱动程序现在正确支持对 ACTIVE netboot 节点的接管。

  • 修复了一个问题,即如果节点不属于 chassis,API 响应中不会返回 chassis_uuid 字段。 应该始终返回该字段,要么设置为 None,要么设置为相应的 chassis UUID。

  • 修复了在使用带有密码短语的私钥进行身份验证时 SSH 驱动程序验证的问题。

  • 修复了一个问题,即如果启用了审计并使用默认值 [audit]/ignore_req_list 配置选项,API 服务将无法启动。

  • 在验证驱动程序接口时捕获带有回溯的未知异常。

  • 现在在节点更新后,正确设置节点 updated_at 字段。

  • 移除了一个阻止在 UEFI 模式下部署整个磁盘镜像的检查,而无需显式将 boot_option 功能设置为 local。 对于整个磁盘镜像,ironic 默认已经假定从本地存储启动。

  • 配置文件中指定的值 [conductor]/api_url 如果不以 https://http:// 开头,则不再允许。 错误的值导致 ironic-python-agent 侧的部署失败。 此错误配置现在将在 ironic-conductor 和 ironic-api 启动期间被检测到。 将引发异常并记录有关无效值的错误。

  • 修复了 neutron 网络接口中的一个问题,该问题可能导致在启动接口的 prepare_ramdisk 阶段失败时,无法重试部署。

  • 修复了一个问题,即在实例删除时,ironic 会自动删除预先创建的租户端口。

  • 修复了 DRAC 驱动程序 (pxe_drac) get_bios_config() vendor passthru 方法无意中引发 AttributeError 异常的问题。 该方法现在再次返回当前的 BIOS 配置。 有关更多信息,请参阅 https://bugs.launchpad.net/ironic/+bug/1637671

  • 添加了一个验证步骤,以验证服务器配置文件模板的 MAC 类型在启用动态分配时设置为物理。 OneView 驱动程序需要此验证,因为机器将使用仅在配置文件应用时才指定 MAC 地址。

  • 修复了一个问题,即如果 [DEFAULT]enabled_drivers 配置选项中指定了尾随逗号或空驱动程序,ironic-conductor 服务将无法运行。 该服务现在运行并记录警告。

  • 如果节点未链接到任何端口或端口组,则部署失败。 这是为了避免未连接到任何租户网络的活动节点。

  • 更改与 neutron 的交互,始终使用 ironic 配置中的 neutron 凭据,而不是从 API 客户端转发凭据。

  • 修复了节点重建中的一个问题,即在将节点移动到配置网络之前,租户网络端口未被解绑。

  • 修复了一个问题,即 OneView 部署接口无法返回节点属性,并且在拆除阶段无法返回节点状态。

  • 修复了 OneView 驱动程序中的一个错误,该错误导致周期性任务检查节点是否被 OneView 使用可能会过早结束。

  • 修复了一个错误,即某些 API 方法没有使用正确的上下文值来检查策略。

  • 包含在 kwargs 中的任意对象在 ironic 异常中,并通过 RPC 发送,导致 oslo_messaging 序列化器失败。 这导致 ironic API 出现 500 错误,等待来自 conductor 的响应超时。 从此版本开始,异常的 kwargs 中包含的所有不可序列化的对象都将被删除。 错误是否会被服务返回将取决于配置选项 [DEFAULT]/fatal_exception_format_errors

  • 一个问题,即使用 DELETE v1/nodes/<node_ident>/vifs API 时,无法分离手动附加的 VIF 到端口 (port.extra)。

  • 修复了 iLO 驱动程序的检查中的一个错误,该错误会在未检测到时用“0”覆盖现有的 local_gb 节点属性。

  • 正确处理检查期间的意外异常。 向用户返回更详细的错误消息并记录回溯。

  • 修复了不正确的基本 socat 命令,从而阻止了控制台的使用。

  • 添加了对部署到 IPv6 iSCSI 端口的支持。

  • 从默认 iPXE 脚本中删除“dhcp”命令。 它是多余的,甚至可能在配置网络不是第一个网络接口时破坏启动。

  • 修复了一个问题,即如果将格式错误的 MAC 地址传递给 Ironic API 中的查找机制,节点部署将无法继续。 例如,如果节点包含 Infiniband 卡,则由于代理 ramdisk 传递的 MAC 地址(或 GID)包含 20 个字节(而不是预期的 6 个字节)作为查找请求的一部分,查找失败。 现在将忽略无效地址。

  • 具有经典驱动程序的节点不能指定任何接口(除了网络和存储)。 在这些情况下,将返回 HTTP 状态 400。

  • 修复了一个问题,即 ironic 能够更改当前被 OneView 使用的节点的电源状态。

  • 修复了 OneView 驱动程序,使 set_boot_device 方法在将 persistent 选项设置为 False 时按预期工作。

  • 使用 PXEBoot 启动接口的驱动程序现在正确支持对 ACTIVE netboot 节点的接管。 在接管期间,首先重新创建 PXE 环境,然后再尝试将其切换到“服务模式”。

  • 修复了 OneView 驱动程序中的一个错误,该错误导致 OneView 驱动程序为每个请求创建一个新的 OneView 客户端实例。

  • ironic 现在在为节点准备部署时验证任何 swift 临时 URL。

  • 修复了一个问题,即当节点网络接口为 neutron 时,允许将 VIF 附加到缺少 local_link_connection 字段的端口。

其他说明

  • 某些端口组协议和硬件的组合可能不支持回退到单接口模式。 如果在这些情况下创建了静态端口组(其中 portgroup.standalone_ports_supported = False),则对这些端口和端口组施加额外的限制,例如这些端口将不支持通过 PXE 启动。

    对属于端口组的端口的端口属性值施加了某些限制

    • port.pxe_enabled 不能设置为 True,如果端口是成员端口组,且 portgroup.standalone_ports_supported 已经设置为 False。

    • portgroup.standalone_ports_supported 不能设置为 False,如果该端口组至少有一个端口具有 port.pxe_enabled=True

    • port.extra.vif_port_id 不能设置为端口组具有 portgroup.standalone_ports_supported=False 的端口,因为设置它意味着我们正在使用单接口模式下的端口。

    • portgroup.standalone_ports_supported 不能设置为 False,如果它具有至少一个端口具有 port.extra.vif_port_id 设置的端口组。