Support v0 and v1 nodenetsvc api for ncproxy #1806
Merged
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.
This PR adds support for "v0" and "v1" nodenetsvc api. Previously, the proto package name was changed to "nodenetsvc.v1". However, this was never adopted.
This support works by attempting to call the v1 version of the api and if the call returns the grpc code "Unimplemented", then we fall back to the v0 api instead. I considered a different implementation here where we would decide which api was being used when ncproxy is started up. However, there's not a great way other than making a call to determine which api is being used and if the nodenetsvc agent updates to the v1 api, ncproxy would need to be restarted to be used with the new api. This does mean that if using the v0 api, there are two calls made for every one request to
ConfigureNetworking
.This PR is currently based on #1797 and will be rebased when that PR is merged.