From a7b7554bc3f3fcbeaa9e6ae8226dd5fb8f8996a4 Mon Sep 17 00:00:00 2001 From: Sergii Tkachenko Date: Tue, 15 Dec 2020 23:21:08 -0500 Subject: [PATCH] PR feedback: added TODOs and stabilization roadmap --- tools/run_tests/xds_test_driver/README.md | 24 ++++++++++++++++--- .../framework/infrastructure/gcp/compute.py | 1 + .../framework/infrastructure/k8s.py | 1 + .../xds_test_driver/requirements.txt | 2 ++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/tools/run_tests/xds_test_driver/README.md b/tools/run_tests/xds_test_driver/README.md index 66f5728e54f..640582bf7a3 100644 --- a/tools/run_tests/xds_test_driver/README.md +++ b/tools/run_tests/xds_test_driver/README.md @@ -1,10 +1,28 @@ # xDS Kubernetes Interop Tests -Proxyless Security Mesh Interop Tests executed on Kubernetes. Work in progress. +Proxyless Security Mesh Interop Tests executed on Kubernetes. + +### Experimental +Work in progress. Internal APIs may and will change. Please refrain from making +changes to this codebase at the moment. + +### Stabilization roadmap +- [ ] Replace retrying with tenacity +- [ ] Generate namespace for each test to prevent resource name conflicts and + allow running tests in parallel +- [ ] Security: run server and client in separate namespaces +- [ ] Make framework.infrastructure.gcp resources [first-class citizen](https://en.wikipedia.org/wiki/First-class_citizen), + support simpler CRUD +- [ ] Security: manage `roles/iam.workloadIdentityUser` role grant lifecycle + for dynamically-named namespaces +- [ ] Restructure `framework.test_app` and `framework.xds_k8s*` into a module + containing xDS-interop-specific logic +- [ ] Address inline TODOs in code +- [ ] Improve README.md documentation, explain helpers in bin/ folder ## Installation -#### Requrements +#### Requirements 1. Python v3.6+ 2. [Google Cloud SDK](https://cloud.google.com/sdk/docs/install) @@ -47,7 +65,7 @@ python -m grpc_tools.protoc --proto_path=../../../ \ Test suite meant to confirm that basic xDS features work as expected. Executing it before other test suites will help to identify whether test failure -related to specific features being tested, or caused by unrelated infrastructure +related to specific features under test, or caused by unrelated infrastructure disturbances. ```sh diff --git a/tools/run_tests/xds_test_driver/framework/infrastructure/gcp/compute.py b/tools/run_tests/xds_test_driver/framework/infrastructure/gcp/compute.py index 46a804ad5e4..d02499ba6e8 100644 --- a/tools/run_tests/xds_test_driver/framework/infrastructure/gcp/compute.py +++ b/tools/run_tests/xds_test_driver/framework/infrastructure/gcp/compute.py @@ -18,6 +18,7 @@ from typing import Optional, Dict, Any import dataclasses import googleapiclient.errors from googleapiclient import discovery +# TODO(sergiitk): replace with tenacity import retrying from framework.infrastructure import gcp diff --git a/tools/run_tests/xds_test_driver/framework/infrastructure/k8s.py b/tools/run_tests/xds_test_driver/framework/infrastructure/k8s.py index 04a4ba78649..287e525ca5e 100644 --- a/tools/run_tests/xds_test_driver/framework/infrastructure/k8s.py +++ b/tools/run_tests/xds_test_driver/framework/infrastructure/k8s.py @@ -18,6 +18,7 @@ import subprocess import time from typing import Optional, List, Tuple +# TODO(sergiitk): replace with tenacity import retrying import kubernetes.config from kubernetes import client diff --git a/tools/run_tests/xds_test_driver/requirements.txt b/tools/run_tests/xds_test_driver/requirements.txt index 9b1cb6b1185..cd55f51791e 100644 --- a/tools/run_tests/xds_test_driver/requirements.txt +++ b/tools/run_tests/xds_test_driver/requirements.txt @@ -7,6 +7,8 @@ grpcio~=1.34 grpcio-tools~=1.34 grpcio-channelz~=1.34 kubernetes~=12.0 +# TODO(sergiitk): remove retrying when replaced with tenacity in code. +# Context: https://github.com/grpc/grpc/pull/24983#discussion_r543017022 retrying~=1.3 tenacity~=6.2 protobuf~=3.14