Files
nova/releasenotes/notes/bug-2131960-servicing-states-446d0e58bb9aa5f2.yaml
T
Jay Faulkner 56cb5f52fb [ironic] Ensure unprovision happens for new states
States were added to the Ironic API to enable the node servicing
feature, which can be performed on nodes provisioned with Nova
instances. Current nova, if asked to delete these instances, will only
remove the instance metadata and not tear them down.

This change has two parts:
- I have added the new, relevant states to _UNPROVISION_STATES in
  driver.py, which now allows Nova to know that SERVIC* states and
  DEPLOYHOLD are safe to unprovision from.
- I have added all existing ironic states to ironic_states.py and the
  PROVISION_STATE_LIST constant and check the state against it -- in a
  case where a completely unknown state is returned, we should attempt
  an unprovision.

This fix needs to be backported as far as possible, as this bug has
existed since Antelope / 2023.1 (DEPLOYHOLD) or Bobcat / 2023.3
(SERVIC*).

Assisted-by: Claude Code
Closes-bug: #2131960
Change-Id: I31c70d35b0e6e9f8d2252bfb2f0bdec477cc6cc7
Signed-off-by: Jay Faulkner <jay@jvf.cc>
2025-11-20 15:23:58 -08:00

26 lines
1.4 KiB
YAML

---
security:
- |
[`bug 2131960 <https://bugs.launchpad.net/nova/+bug/2131960>`_]
Fixed improper teardown of Ironic nodes in servicing states.
Previously, when Nova's virt driver called ``destroy()`` on Ironic
nodes in certain states (``deploy hold``, ``servicing``, ``service wait``,
``service hold``, ``service failed``), these nodes would fail to undergo
proper teardown, resulting in orphaned instances where instance metadata
was removed but nodes remained unprovisioned in Ironic. In flat networking
configurations, this could allow nodes traversing servicing states to
briefly access tenant networks. In Neutron networking configurations,
while VIFs would detach correctly, nodes would remain in Ironic with a
shutdown IPA, and future deprovisioning attempts would fail due to missing
networking metadata. These states are now properly handled to ensure
complete node deprovisioning.
fixes:
- |
[`bug 2131960 <https://bugs.launchpad.net/nova/+bug/2131960>`_]
Fixed a bug where Ironic nodes in servicing-related provision states
(``deploy hold``, ``servicing``, ``service wait``, ``service hold``,
``service failed``) were not properly unprovisioned when instances were
destroyed. The Nova Ironic virt driver now correctly triggers
unprovisioning for nodes in these states, preventing orphaned node
configurations in Ironic.