🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets (#2643)
* 🐛 fix: allow reconciliation of deadline-exceeded ClusterObjectSets Previously, a watch predicate dropped update events for ClusterObjectSets with ProgressDeadlineExceeded, preventing them from being archived or cleaned up. Remove the predicate and replace the inline deadline logic in Reconcile with an enforceProgressDeadline() helper and a progressDeadline() function that computes the absolute deadline from spec and metadata. Add a deadline-aware rate limiter that caps exponential backoff at the deadline and allows one immediate requeue when it passes, without inspecting status conditions. Add an e2e scenario that forces ProgressDeadlineExceeded, archives the COS, and verifies resource cleanup. * test: add unit test for recovery from ProgressDeadlineExceeded to Succeeded * test: add table-driven unit tests for durationUntilDeadline * docs: add comment clarifying Blocked takes precedence over ProgressDeadlineExceeded * refactor: hoist nonTerminalReasons map to package-level var * refactor: pass logger into markAsProgressing instead of using global log.Log * test: add e2e test for recovery from ProgressDeadlineExceeded to Succeeded
J
Joe Lanford committed
74e39f589a9b3859b482b275427809a60bf0cc37
Parent: 4ce4bab
Committed by GitHub <noreply@github.com>
on 4/29/2026, 5:04:57 AM