+++ This bug was initially created as a clone of Bug #1937694 +++
Description of problem:
We need to split the logic of providerIDReconciler into NodeController and ProviderIDController.
This will allow us to ignore nodes that don't have the ovirt providerID on the delete node flow:
If Node already has providerID, ignore
If Node doesn't have providerID, attempt to find it from oVirt/(Machine with oVirt spec)
If Node doesn't have providerID and isn't oVirt, error and look again later
If no providerID or providerID not prefixed with ovirt, ignore.
If ovirt providerID and this vm no longer exists on provider, remove
How to test:
Try to challenge the machine logic, scaling up and down, removing VM from ovirt and so on
--- Additional comment from aos-team-art-private on 2021-03-15 13:05:50 UTC ---
Elliott changed bug status from MODIFIED to ON_QA.
This regression incapacitated our internal cnv.engineering.redhat.com. It does the same for any user running RHV-IPI masters and UPI workers. Virtual masters and bare-metal UPI workers is favorable by many customers, most notably those who try out bare-metal features such as OpenShift Virtualization or device pass-through (e.g GPU).
Please accept this fix in sooner rather than later.
1. scaled up the cluster
2. on ovirt, manually removed some worker vms (some while it's been deployed)
3. scale down and then up few times repeating the deletion in the middle
deletion and addition of nodes/vms working as expected
missing vms properly reported as failed (or stuck in provisioning/provisioned if deletion while being created - they would be the first ones to be deleted on scale down though)
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory (OpenShift Container Platform 4.7.7 bug fix update), and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.