Wait for functions to become ready #6125
Open
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.
Description of your changes
When a function is newly deployed or updated folks will see a few connection refused errors in their XR. This setting may help with that by telling Crossplane to wait for the function to become ready rather than immediately returning an error.
This commit also removes the 10 second timeouts for dialing and running a function. gRPC no longer recommends using DialContext. Instead they recommend using NewClient, which doesn't actually create a connection and thus doesn't need a timeout.
Instead of a 10 second timeout to run the function, RunFunction now just uses the parent context's timeout which happens to be 2 minutes. This means the entire function pipeline (technically the entire XR reconcile) must complete within 2 minutes. This allows some functions to take a bit longer as long as the total runtime is within the timeout.
I have:
earthly +reviewable
to ensure this PR is ready for review.Added or updated unit tests.Added or updated e2e tests.Linked a PR or a docs tracking issue to document this change.backport release-x.y
labels to auto-backport this PR.Need help with this checklist? See the cheat sheet.