Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add examples for PSM tests. #278

Merged
merged 2 commits into from
Feb 28, 2022
Merged

Add examples for PSM tests. #278

merged 2 commits into from
Feb 28, 2022

Conversation

wanlin31
Copy link
Collaborator

Added three examples to run PSM tests. To run these test, a new deployment is required.

@wanlin31 wanlin31 self-assigned this Feb 25, 2022
@wanlin31
Copy link
Collaborator Author

@gnossen Hi Richard, I create this PR to show the examples of the test configurations for PSM tests. We will need a new release of the test-infra to run them. The scenarios were adopted from the original load test examples (minus the security parameters) to show the ability to run the full flow, the scenarios can be modified later.

@wanlin31 wanlin31 added enhancement New feature or request release notes: no Indicates that PR should not be in release notes labels Feb 25, 2022
config/samples/psm/go_example_loadtest_proxied.yaml Outdated Show resolved Hide resolved
config/samples/psm/go_example_loadtest_proxied.yaml Outdated Show resolved Hide resolved
- containers/runtime/xds/bootstrap.json
command:
- main
image: gcr.io/grpc-testing/runtime/xds:test
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this image is fixed and has version "test¨? I assume it is going to be part of some release? Perhaps these examples, unlike the regular ones, should be templates already. In this case, we may want to put them in config/samples/templates/psm.

Also, the path of the images we use should probably be something like gcr.io/grpc-testing/e2etest/runtime/xds-server (or perhaps runtime/psm/xds-server if we want to emphasize that these are psm components).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, since they requires the images like the pre-built examples I think they should be templates .
For the pefix, I agree with setting PSM_IMAGE_PREFIX=gcr.io/grpc-testing/e2etest/runtime/psm to emphasize psm test. I will update them to be template.

@wanlin31
Copy link
Collaborator Author

wanlin31 commented Feb 27, 2022

I was able to generate template for proxyless tests use command below:

 ./tools/run_tests/performance/loadtest_template.py \
    -i ../test-infra/config/samples/templates/psm/*_example_loadtest_proxyless.yaml \
    --inject_client_pool --inject_server_pool \
    --inject_big_query_table --inject_timeout_seconds \
    -o ./tools/run_tests/performance/templates/loadtest_template_psm_all_languages.yaml\
    --name psm_all_languages

The ready-to-run configurations can be generated as:

export PSM_IMAGE_PREFIX=gcr.io/grpc-testing/e2etest/runtime/psm
export PSM_IMAGE_TAG=test

./tools/run_tests/performance/loadtest_config.py -l go -l java \
    -t ./tools/run_tests/performance/templates/loadtest_template_psm_all_languages.yaml \
    -s client_pool=workers-8core -s driver_pool=drivers \
    -s server_pool=workers-8core \
    -s big_query_table=e2e_benchmarks.experimental_results \
    -s timeout_seconds=3600 --category=scalable \
    -s psm_image_prefix="${PSM_IMAGE_PREFIX}" \
    -s psm_image_tag="${PSM_IMAGE_TAG}" \
    -d --allow_client_language=c++ --allow_server_language=c++ \
    --runs_per_test=2 -o ./loadtest.yaml

Might need to change the names of the Templates.

@wanlin31 wanlin31 requested a review from paulosjca February 27, 2022 00:49
@paulosjca paulosjca added release notes: yes Indicates that PR needs to be in release notes and removed release notes: no Indicates that PR should not be in release notes labels Feb 27, 2022
@paulosjca
Copy link
Collaborator

You will need two templates, one for proxied and one for proxyless, since they use different clients.

@paulosjca paulosjca merged commit 7178748 into grpc:master Feb 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request release notes: yes Indicates that PR needs to be in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants