fix: always set RequeueAfter when reconciling CIS #198
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've had issues with the rescan logic as it seems like all/most CIS resources are reconciled when the operator is restarted. This is very unfortunate, especially in large clusters, resulting is a resource consumption burst.
@bendikp has performed some testing locally, and it seems like our logic for returning
RequeueAfter
when reconciling CIS must always be set. We assumed that we were "saved" by the default 10hSyncPeriod
, but it seems like the sync events are filtered out - probably by the generation-changed predicate.This PR tries to use predicates to highlight the two difference scan/rescan paths: scan/rescan because of CIS spec change (generation changed) OR rescan due (time based).