From 9c83cf4c36c34bbcd12272ef05d166ecb441c6b0 Mon Sep 17 00:00:00 2001 From: Saloni Tanmor Date: Tue, 18 Aug 2026 08:46:46 +0530 Subject: [PATCH] fix: emit Warning events on node and rule when taint operations fail --- internal/controller/nodereadinessrule_controller.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/controller/nodereadinessrule_controller.go b/internal/controller/nodereadinessrule_controller.go index 3b79df67..d8fb3c32 100644 --- a/internal/controller/nodereadinessrule_controller.go +++ b/internal/controller/nodereadinessrule_controller.go @@ -416,6 +416,9 @@ func (r *RuleReadinessController) evaluateRuleForNode(ctx context.Context, rule } if err != nil { metrics.Failures.WithLabelValues(rule.Name, string(metrics.FailureReasonRemoveTaintError)).Inc() + msg := fmt.Sprintf("Failed to remove taint '%s:%s': %v", rule.Spec.Taint.Key, rule.Spec.Taint.Effect, err) + r.EventRecorder.Eventf(node, nil, corev1.EventTypeWarning, "RemoveTaintFailed", "RemoveTaint", "Rule %s: %s", rule.Name, msg) + r.EventRecorder.Eventf(rule, nil, corev1.EventTypeWarning, "RemoveTaintFailed", "RemoveTaint", "Node %s: %s", node.Name, msg) return fmt.Errorf("failed to remove taint: %w", err) } @@ -446,6 +449,9 @@ func (r *RuleReadinessController) evaluateRuleForNode(ctx context.Context, rule var added bool if added, err = r.addTaintBySpec(ctx, node, rule); err != nil { metrics.Failures.WithLabelValues(rule.Name, string(metrics.FailureReasonAddTaintError)).Inc() + msg := fmt.Sprintf("Failed to add taint '%s:%s': %v", rule.Spec.Taint.Key, rule.Spec.Taint.Effect, err) + r.EventRecorder.Eventf(node, nil, corev1.EventTypeWarning, "AddTaintFailed", "AddTaint", "Rule %s: %s", rule.Name, msg) + r.EventRecorder.Eventf(rule, nil, corev1.EventTypeWarning, "AddTaintFailed", "AddTaint", "Node %s: %s", node.Name, msg) return fmt.Errorf("failed to add taint: %w", err) }