Add a grpclb-in-DNS interop test suite#16727
Merged
apolcyn merged 1 commit intogrpc:masterfrom Oct 23, 2018
Merged
Conversation
e315479 to
c1320e4
Compare
This was referenced Oct 3, 2018
Closed
|
|
|
ec8ddd2 to
c175f2f
Compare
|
|
|
|
|
|
c175f2f to
454a667
Compare
|
|
|
|
|
zhangkun83
approved these changes
Oct 12, 2018
|
|
|
0f2fdc6 to
e52d87b
Compare
|
|
|
|
Contributor
Author
|
python test failures: #15308 |
Contributor
Author
|
merging, FTR this test will not be running per-PR, at least for now. It will be running continuously on the master branch but will need to be manually monitored for now (if possibly, this can later be promoted to run per-PR, possibly). |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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 a test suite that can bring up fake and local grpclb servers, backends, fallback servers, and a controlled DNS server. It currently runs grpc interop clients against the servers. The test driver takes a list of scenarios that tell it the number of "backends", "fallback" servers, and "grpclb" servers to bring up, what credentials to listen on, and certain behaviors to provide. For each scenario, it brings up all of the fake servers in docker containers, wires up the DNS records of the DNS server to point to the IP addresses of each docker container, and then runs the clients. Note also this currently only tests the native C++, Java, and Go stacks, but it could be extended.
General things that this PR does:
Create
tools/run_tests/run_grpclb_interop_tests.py, which is the main test driver that basically follows the description above.Add
tools/run_tests/lb_interop_tests/gen_build.yaml, which generates a list of "test scenario" JSON configs intotools/run_tests/generated/lb_interop_test_scenarios.jsonAdd a new docker file under
tools/run_tests/dockerfile/lb_interop_fake_servers/which has the dependencies needed to build the fake backend, fallback, and balancer server, and to run the local python DNS server (the balancer is from Provide a fake grpclb balancer server that can be used for testing grpc-go#2338)Make a couple of tweaks to existing interop client builds to add logging and compile faster
See: https://source.cloud.google.com/results/invocations/f93c0e2c-975d-48af-8464-1d86488ad505/targets for a passing run
These new tests exposed a few bugs in a few scenarios:
.... and so those scenarios are currently being skipped.
Remaining TODO is to use a non-experimental kokoro config file, otherwise I think this is ready for review
cc @jtattermusch can you please review for general sanity on adding this new suite?
cc @zhangkun83 can you please review, in particular, for sanity of the devised scenarios here? Scenarios are in
tools/run_tests/lb_interop_tests/gen_build_yaml.py. . . happy to also talk offline here.