Browse Source

PR feedback: added TODOs and stabilization roadmap

Sergii Tkachenko 4 years ago
parent
commit
a7b7554bc3

+ 21 - 3
tools/run_tests/xds_test_driver/README.md

@@ -1,10 +1,28 @@
 # xDS Kubernetes Interop Tests
 # 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
 ## Installation
 
 
-#### Requrements
+#### Requirements
 1. Python v3.6+
 1. Python v3.6+
 2. [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)
 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.
 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
 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.
 disturbances.
 
 
 ```sh
 ```sh

+ 1 - 0
tools/run_tests/xds_test_driver/framework/infrastructure/gcp/compute.py

@@ -18,6 +18,7 @@ from typing import Optional, Dict, Any
 import dataclasses
 import dataclasses
 import googleapiclient.errors
 import googleapiclient.errors
 from googleapiclient import discovery
 from googleapiclient import discovery
+# TODO(sergiitk): replace with tenacity
 import retrying
 import retrying
 
 
 from framework.infrastructure import gcp
 from framework.infrastructure import gcp

+ 1 - 0
tools/run_tests/xds_test_driver/framework/infrastructure/k8s.py

@@ -18,6 +18,7 @@ import subprocess
 import time
 import time
 from typing import Optional, List, Tuple
 from typing import Optional, List, Tuple
 
 
+# TODO(sergiitk): replace with tenacity
 import retrying
 import retrying
 import kubernetes.config
 import kubernetes.config
 from kubernetes import client
 from kubernetes import client

+ 2 - 0
tools/run_tests/xds_test_driver/requirements.txt

@@ -7,6 +7,8 @@ grpcio~=1.34
 grpcio-tools~=1.34
 grpcio-tools~=1.34
 grpcio-channelz~=1.34
 grpcio-channelz~=1.34
 kubernetes~=12.0
 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
 retrying~=1.3
 tenacity~=6.2
 tenacity~=6.2
 protobuf~=3.14
 protobuf~=3.14