🌱 TestReconcileMachinePhases: use apireader to directly talk to apiserver #12819
+15
−8
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.
What this PR does / why we need it: reduce flake in envtest test
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes # github.com//issues/12785
use APIReader with helper Get function. My comment in the issue explains what I'm thinking is going. For some of the flake you can see the logs reconcile so the status must be set to i.e.
Pending
. Instead the phase is empty and reads asUnknown
. Completed reconciliations would set the status and the logs show those completing so the cache must be stale on the check where weGet
the object and validate the status. This adds helper function and uses it for validation where it queries directly against apiserver.Note: comments on APIReader say to use it sparingly. I would not suggest disabling cache in controller clients during testing however for validation of state after a test run is complete it should be safe to use and reduce flake.