From b201de92128081b0681312a5fb64a77e8dfd5205 Mon Sep 17 00:00:00 2001 From: Michael Shitrit Date: Tue, 28 Nov 2023 12:22:12 +0200 Subject: [PATCH] checking if NHC is a remediation owner before assuming it was created by MHC Signed-off-by: Michael Shitrit --- controllers/selfnoderemediation_controller.go | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/controllers/selfnoderemediation_controller.go b/controllers/selfnoderemediation_controller.go index 0b229bb3..c969beed 100644 --- a/controllers/selfnoderemediation_controller.go +++ b/controllers/selfnoderemediation_controller.go @@ -644,13 +644,14 @@ func (r *SelfNodeRemediationReconciler) getNodeFromSnr(snr *v1alpha1.SelfNodeRem //SNR could be created by either machine based controller (e.g. MHC) or //by a node based controller (e.g. NHC). This assumes that machine based controller //will create the snr with machine owner reference - - for _, ownerRef := range snr.OwnerReferences { - if ownerRef.Kind == "Machine" { - r.mutex.Lock() - wasLastSeenSnrMachine = true - r.mutex.Unlock() - return r.getNodeFromMachine(ownerRef, snr.Namespace) + if !r.isOwnedByNHC(snr) { + for _, ownerRef := range snr.OwnerReferences { + if ownerRef.Kind == "Machine" { + r.mutex.Lock() + wasLastSeenSnrMachine = true + r.mutex.Unlock() + return r.getNodeFromMachine(ownerRef, snr.Namespace) + } } } @@ -927,3 +928,12 @@ func (r *SelfNodeRemediationReconciler) getRuntimeStrategy(strategy v1alpha1.Rem return v1alpha1.ResourceDeletionRemediationStrategy } + +func (r *SelfNodeRemediationReconciler) isOwnedByNHC(snr *v1alpha1.SelfNodeRemediation) bool { + for _, ownerRef := range snr.OwnerReferences { + if ownerRef.Kind == "NodeHealthCheck" { + return true + } + } + return false +}