🐛 Increase CRD cleanup requeue delay; remove e2e test #2541
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.
Requeue is increased from 10 seconds to 30 minutes.
Summary
When KCP is under heavy load during e2e test runs, it can take a long time for a new
APIBinding
to complete reconciliation. In some cases, it takes longer than the requeue delay configured in the CRD cleanup controller, which means the newly-created CRD will be deleted before initialization of its correspondingAPIBinding
is complete.The obvious fix is to increase the requeue delay, but there is an e2e test that waits on this delay to ensure CRDs are cleaned up properly. Unfortunately waiting becomes infeasible if the delay is increased to the order of minutes or hours instead of seconds.
Therefore the e2e test is removed in favor of an expanded unit test. The queue is mocked out in the unit test, and the test function emulates time going forward by decreasing the CRD's
creationTimestamp
before callingprocess
again.Related issue(s)
Fixes #2507