15 from typing
import List
17 from absl
import flags
18 from absl.testing
import absltest
20 from framework
import xds_k8s_testcase
24 logger = logging.getLogger(__name__)
25 flags.adopt_module_key_flags(xds_k8s_testcase)
28 _XdsTestServer = xds_k8s_testcase.XdsTestServer
29 _XdsTestClient = xds_k8s_testcase.XdsTestClient
37 k8s.KubernetesNamespace(self.k8s_api_manager,
38 self.server_namespace),
39 deployment_name=self.server_name +
'-alt',
40 image_name=self.server_image,
41 gcp_service_account=self.gcp_service_account,
42 td_bootstrap_image=self.td_bootstrap_image,
43 gcp_project=self.project,
44 gcp_api_manager=self.gcp_api_manager,
45 xds_server_uri=self.xds_server_uri,
47 debug_use_port_forwarding=self.debug_use_port_forwarding,
51 if hasattr(self,
'alternate_server_runner'):
56 with self.subTest(
'00_create_health_check'):
59 with self.subTest(
'01_create_backend_services'):
60 self.td.create_backend_service()
62 with self.subTest(
'02_create_url_map'):
65 with self.subTest(
'03_create_target_proxy'):
68 with self.subTest(
'04_create_forwarding_rule'):
69 self.td.create_forwarding_rule(self.server_xds_port)
71 default_test_servers: List[_XdsTestServer]
72 same_zone_test_servers: List[_XdsTestServer]
73 with self.subTest(
'05_start_test_servers'):
74 default_test_servers = self.startTestServers()
75 same_zone_test_servers = self.startTestServers(
78 with self.subTest(
'06_add_server_backends_to_backend_services'):
79 self.setupServerBackends()
82 test_client: _XdsTestClient
83 with self.subTest(
'07_start_test_client'):
84 test_client = self.startTestClient(default_test_servers[0])
86 with self.subTest(
'08_test_client_xds_config_exists'):
87 self.assertXdsConfigExists(test_client)
89 with self.subTest(
'09_test_server_received_rpcs_from_test_client'):
90 self.assertSuccessfulRpcs(test_client)
92 with self.subTest(
'10_remove_neg'):
93 self.assertRpcsEventuallyGoToGivenServers(
94 test_client, default_test_servers + same_zone_test_servers)
95 self.removeServerBackends(
97 self.assertRpcsEventuallyGoToGivenServers(test_client,
101 if __name__ ==
'__main__':
102 absltest.main(failfast=
True)