Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-16897

[FFU] Re-provisioning a node after it was moved to new role fails fails with "no available nodes match the resource class" error

XMLWordPrintable

    • 2
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • None
    • HardProv Sprint 5
    • 1
    • Important

      To Reproduce Steps to reproduce the behavior:

      • Customer successfully used /usr/share/openstack-tripleo-heat-templates/tools/baremetal_transition.py tool and subsequent "openstack overcloud node provision" command to move two compute nodes to RHEL 9 role
      • When moving third compute node, the process got blocked with the following error:
        2025-05-22 08:14:22,864 p=466964 u=stack n=ansible | 2025-05-22 08:14:22.863690 | 566f2db9-0028-8b5f-722b-000000000013 |      FATAL | Reserve instances | localhost | error={"changed": false, "logging": "Processing allocation COMPUTE_REPLACED (UUID 49ff9762-be07-4fd1-8ac9-ca3c9bae071e) for node None failed: Failed to reserve a node: Allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e failed: Failed to process allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e: no available nodes match the resource class baremetal.; deleting allocation\nTraceback (most recent call last):\n  File \"/usr/lib/python3.9/site-packages/metalsmith/_provisioner.py\", line 168, in _reserve_node\n    allocation = self.connection.baremetal.wait_for_allocation(\n  File \"/usr/lib/python3.9/site-packages/openstack/baremetal/v1/_proxy.py\", line 989, in wait_for_allocation\n    return res.wait(self, timeout=timeout, ignore_error=ignore_error)\n  File \"/usr/lib/python3.9/site-packages/openstack/baremetal/v1/allocation.py\", line 96, in wait\n    raise exceptions.ResourceFailure(\nopenstack.exceptions.ResourceFailure: Allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e failed: Failed to process allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e: no available nodes match the resource class baremetal.\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.9/site-packages/metalsmith/_provisioner.py\", line 172, in _reserve_node\n    raise exceptions.ReservationFailed(\nmetalsmith.exceptions.ReservationFailed: Failed to reserve a node: Allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e failed: Failed to process allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e: no available nodes match the resource class baremetal.\n", "msg": "Failed to reserve a node: Allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e failed: Failed to process allocation 49ff9762-be07-4fd1-8ac9-ca3c9bae071e: no available nodes match the resource class baremetal."}
        

      Before migrating nodes to this role customer did a compute scale-out where TripleO failed to add a node with the same node name to overcloud. We thought that this may be related, so we tuned its record with "provisioned: false", so next index will be used. Unfortunately this didn't help and same error was reported for next index as well.

      Expected behavior
      Node reprovisioning doesn't throw errors

      Bug impact
      Upgrade is blocked

      Known workaround
      None

              Unassigned Unassigned
              rhn-support-astupnik Alex Stupnikov
              rhos-dfg-hardprov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: