* milestone 1: static build instance, cmake
* on-demand vm per build, and use bazel
* PR cleanup
* pr cleanup: use builtin bazel wrapper
* pr: misc cleanup
* less verbose unzip
* small cleanup of shell scripts and config file
* using rsync for copying workspace is much faster
* simpler way to increase worker disk size
* simplify bazel build
* increase job timeout
* make max instance lifespan setting more obvious
* refactor the exitcode logic
* shutdown AWS instance once possible
* sudo shudown is required
* add useful AWS instance tags
* move aws integration scripts under AWS folder
* adjust scripts
* make sure ssh session closes even if stdout/stderr remains open
* add test scripts for multiple languages
* improvements to the run_remote_test script
* add cfg files for aws kokoro jobs
Co-authored-by: Alexander Midlash <amidlash@google.com>
This change adds the following features and improvements to load test generation:
* Multiple client instances are supported by setting the option `--instances_per_client`.
* `python_asyncio` is supported as a separate language.
* `php` is renamed to `php7` to match the scenario language names.
* Client and server names are shortened by the introduction of an index (`0`, `1`, ... with an optional prefix). This index replaces the uuid added to pod names when no component name is specified.
* Driver pool and image substitution are added to template generation.
* Empty entries are removed from the final configuration.
NOTE: Controller is currently not respecting driver settings from configuration, so driver is still named with a uuid. This will be addressed separately.
In gRPC-Go repo, as part of the PSM security interop tests, we changed
the xDS interop server to register admin services (in both secure and
non-secure modes). Attempting to register CSDS without an xds bootstrap
file causes the server binary to exit.
While we work to find a graceful solution to the problem of registering
CSDS without an xds bootstrap file, adding the bootstrap generator to
the non-secure server deployment fixes the issue.
Also, it looks like we would need an xds bootstrap file for non-secure
servers in the near future to test other server features.
* Handle gevent exception in gevent poller
Currently the gevent poller ignores exceptions raised by
`gevent.wait()`, which causes greenlets to be unkilable while waiting.
This change handles exceptions raised while waiting in the gevent
poller, cancels the gRPC call and propagates the error back to the
application.
Co-authored-by: Kostis Lolos <klolos@arrikto.com>
* Fix imports in header files
* Lint gevent tests
* Set grpc event type to GRPC_QUEUE_SHUTDOWN upon cancel error
To prevent `grpc_completion_queue_next()` to be called indefinitely when
the queue is shut down.
* Remove unnecessary `except *`
* Improve gevent tests
* Format code
* Remove unnecessary import
Co-authored-by: Kostis Lolos <klolos@arrikto.com>
* List annotations of tests that have running pods and are in Errored state.
* Fix format.
* Use pod owner reference instead of "loadtest" label.
* Delete loadtests that have running pods and are in Errored state.
* Improve jsonpath expressions.
* Add comment.
* List tests but do not delete them.
* Increase core logging verbosity
* Make repo URL injectable
* Apparently that's not allowed
* Use ipv4 in interop server
* Add CSDS to Python interop client
* Revert CI script change
* Scale back logging
* Move env variable to dockerfile
* And Python too
This example crashes the driver process, since `bq_upload_result.py` expects
the `big_query_table` argument to have the format `<dataset name>.<table name>`.
The project ID is already encoded in the script.
```
+ python3 /src/code/tools/run_tests/performance/bq_upload_result.py --bq_result_table=grpc-testing.e2e_benchmarks.experimental_results_hork_x5
Traceback (most recent call last):
File "/src/code/tools/run_tests/performance/bq_upload_result.py", line 177, in <module>
dataset_id, table_id = args.bq_result_table.split('.', 2)
ValueError: too many values to unpack (expected 2)
```
* Provide custom sponge configs
* Correct the script
* Allow test scripts to produce artifacts through Docker
* Overcome the direcotry clone in our docker script
* Expose TESTGRID_EXCLUDE and GIT_ORIGIN_URL through docker run
* Make sanity tests happy
* Run all kokoro performance tests on dedicated node pools.
Both official and experimental tests run with kokoro are set to run on separate node pools with the suffix "-ci" (drivers-ci, workers-8core-ci, workers-32core-ci), separate from the default pools used for manual runs.
This change sets the deadline of master and experimental kokoro jobs to match their running interval (4 hours and 12 hours), and makes a change so runs initiated by kokoro are marked 'kokoro' for the master job and 'kokoro-test' for the experimental job.
Experiments show that 4 tests running concurrrently (two on 8-core nodes and two on 32-core nodes) is enough to run all tests within two hours with time to spare.
* Removes optional flag -a, allowing it to be changed later to a long-form flag.
* Updates concurrency levels to one more than what each worker node pool can support (each test requires two workers, and there are nine nodes in each pool, so each node can support four tests).
* Employ prebuilt images in continuous build.
This commits updated Kokoro build job to use prebuilt images to
run tests. The loadtest template was generated using
loadtest_template.py.