Upgrade to grpc 1.0 (grpc_server) and test against Envoy 1.38.2 in CI#13
Merged
Conversation
3857dc5 to
40f2478
Compare
grpc 1.0.0 split the umbrella into grpc_core / grpc (client) / grpc_server. The server-side modules this library uses (GRPC.Server, GRPC.Endpoint, GRPC.Server.Interceptors.Logger, GRPC.Server.Stream) now live in the grpc_server package, so depend on grpc_server ~> 1.0. No source changes are required as the module namespaces are unchanged. envoy_xds tracks the latest upstream proxyconf/envoy_xds_ex main, which now carries the matching grpc ~> 1.0 / protobuf ~> 0.17 bump and the refreshed xDS proto set. Verified: compiles with zero redefining-module warnings and the full test suite passes (75 tests, 0 failures). gun is no longer pulled into the dependency tree (optional dep of the grpc client only).
Add Envoy 1.38.2 (current stable) to the CI test matrix alongside the existing 1.37.0 and 1.36.4, so the integration tests run against the latest Envoy minor in addition to the two prior ones. Verified locally: the envoy integration suite and the full test suite pass against Envoy 1.38.2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 contains two changes (see commits):
grpc_server1. Upgrade to grpc 1.0 via grpc_server
Migrates
ex_control_planeto grpc 1.0.0, which split the previously monolithicgrpcpackage into three:GRPC.Service,GRPC.Credential, …)GRPC.Stub, …)GRPC.Server,GRPC.Endpoint,GRPC.Server.Stream, interceptors, supervisor)Since
ex_control_planeis a gRPC server (xDS/ADS), it now depends ongrpc_server ~> 1.0instead of pullinggrpctransitively viaenvoy_xds.Why this works
The package split preserved all public module namespaces. Every gRPC module this project uses still exists under the same name, just sourced from
grpc_server:GRPC.Server.Supervisor(application.ex)use GRPC.Server(aggregated_discovery_service_server.ex)GRPC.Server.Stream.send_reply/3(stream.ex)use GRPC.Endpoint+GRPC.Server.Interceptors.Logger(endpoint.ex)As a result no source changes are required — this is a dependency-only change.
Motivation — security
grpc 0.11.xis affected by four advisories fixed only ingrpc 1.0.0, including a 9.2 Critical (RCE/DoS via unsafe Erlang term deserialization). Staying on 0.11.x left every consumer ofex_control_planetransitively exposed. Upgrading also dropsgunfrom the dependency tree entirely (it becomes an optional dep of the grpc client only), removing three furthergunadvisories.envoy_xds dependency
envoy_xdsnow tracks the latest upstreamproxyconf/envoy_xds_exmain, which carries the matchinggrpc ~> 1.0/protobuf ~> 0.17bump and a refreshed xDS proto set (merged via proxyconf/envoy_xds_ex#7):2. Also test against Envoy 1.38.2 in CI
Adds Envoy 1.38.2 (current stable) to the CI test matrix alongside the existing 1.37.0 and 1.36.4, so the integration tests run against the latest Envoy minor in addition to the two prior ones:
How this was tested
Verified with Elixir 1.19 / OTP 28:
rm mix.lock && mix deps.get): resolvesgrpc_server 1.0.0,grpc 1.0.0,grpc_core 1.0.0,protobuf 0.17.0;gunis not resolved into the tree.mix compile --warnings-as-errorssucceeds with no source changes; zeroredefining modulewarnings.