Skip to content

Commit

Permalink
[PSM Interop] Simplify PSM Interop Kokoro buildscripts (v1.59.x backp…
Browse files Browse the repository at this point in the history
…ort) (#36538)

Backport of #36450 to v1.59.x.
---
Integrates the new features of the the Kokoro PSM Interop install
library introduced in grpc/psm-interop#73.

Nearly all common functionality was moved from per-language/per-branch
PSM Interop build scripts to
[psm_interop_kokoro_lib.sh](https://github.com/grpc/psm-interop/blob/main/.kokoro/psm_interop_kokoro_lib.sh):
1. The list of tests in the each test suite 
2. Per-test-suite flag customization
3. `run_test` methods
4. `build_docker_images_if_needed` methods
5. Generic `build_test_app_docker_images` methods (simple docker build +
docker push + docker tag). grpc-java is one exception, as it doesn't run
docker directly, but a cloudbuild flow.

Now all PSM Interop jobs share the same buildscripts by all test suites:
1. buildscript that invokes the test: `psm-interop-test-{language}.sh`
(configured as `build_file` in the build cfg)
2. buildscript that builds the xDS test client/server and publishes them
as a Docker image: `psm-interop-build-{language}.sh` (conventional name
called from `psm_interop_kokoro_lib.sh`)

`psm-interop-test-{language}.sh`:
1. Sets `GRPC_LANGUAGE`, `BUILD_SCRIPT_DIR` environment variables.
2. Downloads the shared `psm_interop_kokoro_lib.sh` from the main branch
of the psm-interop repo.
3. Sources `psm-interop-build-{language}.sh`
4. Calls `psm::run "${PSM_TEST_SUITE}"` (`PSM_TEST_SUITE` configured in
the cfg file).

`psm-interop-build-{language}.sh`:
1. Defines `psm::lang::build_docker_images` which is called from
`psm_interop_kokoro_lib.sh`.
2. Invokes any repo-specific logic.
3. May use `psm::build::docker_images_generic` for generic Docker build,
tag, push, or provide implement its own build/publish method.

References:
- b/288578634
- See the full list of the new features at grpc/psm-interop#73.
- Additional fixes to the shared lib: grpc/psm-interop#78,
grpc/psm-interop#79
  • Loading branch information
sergiitk committed May 6, 2024
1 parent d719316 commit 6697395
Show file tree
Hide file tree
Showing 19 changed files with 169 additions and 1,246 deletions.
6 changes: 5 additions & 1 deletion tools/internal_ci/linux/grpc_xds_k8s_lb.cfg
Expand Up @@ -15,7 +15,7 @@
# Config file for the internal CI (in protobuf text format)

# Location of the continuous shell script in repository.
build_file: "grpc/tools/internal_ci/linux/grpc_xds_k8s_lb.sh"
build_file: "grpc/tools/internal_ci/linux/psm-interop-test-cpp.sh"
timeout_mins: 240
action {
define_artifacts {
Expand All @@ -24,3 +24,7 @@ action {
strip_prefix: "artifacts"
}
}
env_vars {
key: "PSM_TEST_SUITE"
value: "lb"
}
193 changes: 0 additions & 193 deletions tools/internal_ci/linux/grpc_xds_k8s_lb.sh

This file was deleted.

6 changes: 5 additions & 1 deletion tools/internal_ci/linux/grpc_xds_k8s_lb_python.cfg
Expand Up @@ -15,7 +15,7 @@
# Config file for the internal CI (in protobuf text format)

# Location of the continuous shell script in repository.
build_file: "grpc/tools/internal_ci/linux/grpc_xds_k8s_lb_python.sh"
build_file: "grpc/tools/internal_ci/linux/psm-interop-test-python.sh"
timeout_mins: 180
action {
define_artifacts {
Expand All @@ -24,3 +24,7 @@ action {
strip_prefix: "artifacts"
}
}
env_vars {
key: "PSM_TEST_SUITE"
value: "lb"
}

0 comments on commit 6697395

Please sign in to comment.