Add retriable_serving_statuses to grpc health check to support retrying NOT_SERVING#43331
Add retriable_serving_statuses to grpc health check to support retrying NOT_SERVING#43331fishcakez wants to merge 18 commits intoenvoyproxy:mainfrom
Conversation
Signed-off-by: James Fish <jfish@pinterest.com>
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
33af993 to
204dbe0
Compare
|
@wbpcode, as the api-shepherd assigned, I am unable to fix the |
|
Our tool chain is pretty complex. Not sure could we have the lucky that @phlax in case know how to resolve it? |
|
im not a buf expert (so apologies in advance if this is not correct) - but i think you need to do something like
|
Signed-off-by: James Fish <jfish@pinterest.com>
Signed-off-by: James Fish <jfish@pinterest.com>
Signed-off-by: James Fish <jfish@pinterest.com>
64bc2a4 to
e2e136d
Compare
Signed-off-by: James Fish <jfish@pinterest.com>
bazel/pgv.patch
Outdated
| - "fileneeds": FileNeeds, | ||
| - "isEnum": isEnum, | ||
| - "enumList": enumList, | ||
| - "enumVal": enumVal, |
There was a problem hiding this comment.
this is a lot of patching - is it all necessary - or an artifact of your linter or somesuch
There was a problem hiding this comment.
This patch is taken directly from bufbuild/protoc-gen-validate#1360 (skipping tests added in the local patch). The larger change to this file is due to gofmt where it aligns all fields based on the longest name.
There was a problem hiding this comment.
We could avoid patching pgv if we skip unique and not_in validation of the repeated enum until this patch is landed and released in pgv.
There was a problem hiding this comment.
ok - we are about to drop pgv - so im less concerned about that one really
with the grpc patch - seems strange that their source != buf registration
im wondering if we can either upstream that fun - or if there is a pattern that avoids this
There was a problem hiding this comment.
this might help https://github.com/grpc/grpc-proto
There was a problem hiding this comment.
I don't have a preference between the patch or ignoring buf linting on this specific xDS proto file. Either one seems like a reasonable temporary measure that we can get rid of once the tech debt is cleaned up on the gRPC side.
There was a problem hiding this comment.
I have reverted the patches, and move the proto validation to be explicit to the config loading in envoy and updated the api/buf.yaml to not lint the health_check.proto file. This makes the change as simple as possible. Can I get another look/review please?
There was a problem hiding this comment.
Unfortunately the api/buf.yaml change did not work to ignore the health_check.proto. It's required to ignore whole directory, and that would mean ignoring envoy/config/core/v3/, which would then of course make the buf linting not work as other protos import those. I could not find a way to ignore a single file.
There was a problem hiding this comment.
Therefore I've reverted some of the reverts, and brought back the grpc patch to align it on the grpc-proto path.
There was a problem hiding this comment.
Hi @markdroth @phlax are you able to take a second look on the grpc/dependency handling please.
|
Thanks @phlax! The missing piece was that buf will only added a dependency from
Then I could do:
Then run However to make the import path |
|
@markdroth do you have any additional thoughts here? |
|
ping @jwendell for deps review. |
This reverts commit 9485a03. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit e2e136d. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit e6a1d23. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit ba4e888. Signed-off-by: James Fish <jfish@pinterest.com>
Signed-off-by: James Fish <jfish@pinterest.com>
Signed-off-by: James Fish <jfish@pinterest.com>
f3bd148 to
5def051
Compare
|
Very sorry for the auto-adding of so many reviewers, I made an error merging main, and then undid it after the diff was not clean in the PR UI. |
Signed-off-by: James Fish <jfish@pinterest.com>
b692532 to
ddf495a
Compare
… prefix"" This reverts commit 22695dd. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit 5ce7cbb. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit 6624d41. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit 1c4e7ca. Signed-off-by: James Fish <jfish@pinterest.com>
This reverts commit 69f4ca8. Signed-off-by: James Fish <jfish@pinterest.com>
Commit Message: Add retriable_serving_statuses to gRPC health check to support retrying NOT_SERVING
Additional Description: Add retriable_serving_statuses to gRPC health check to mimic the HTTP health check retriable_statuses, See #17948. This supports the case where want a NOT_SERVING gRPC response to honor the
unhealthy_thresholdinstead of immediately failing.Risk Level: low - requires enabling to change behavior
Testing: unit, integration and fuzzing changes
Docs Changes: API has inline doc but not health check architecture doc (awaiting review first)
Release Notes: Not updated yet.
Platform Specific Features: N/A
[Optional Runtime guard:] N/A
[Optional Fixes #Issue] N/A
[Optional Fixes commit #PR or SHA] N/A
[Optional Deprecated:] N/A
[Optional API Considerations:] imports gRPC health check proto, may be control plane implications/build changes needed when its brought in. Note that buf linter cannot handle the import due to difference between grpc/grpc and grpc/grpc-proto so skip linting the file for now. Also PGV has issues with repeated enum validation in cc and go, so validate explicit in config load logic.