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 self.k8s_api_manager, self.server_namespace)
40 deployment_name=self.server_name +
'-alt',
41 image_name=self.server_image,
42 gcp_service_account=self.gcp_service_account,
43 td_bootstrap_image=self.td_bootstrap_image,
44 gcp_project=self.project,
45 gcp_api_manager=self.gcp_api_manager,
46 xds_server_uri=self.xds_server_uri,
48 debug_use_port_forwarding=self.debug_use_port_forwarding,
52 if hasattr(self,
'alternate_server_runner'):
57 with self.subTest(
'00_create_health_check'):
60 with self.subTest(
'01_create_backend_services'):
61 self.td.create_backend_service()
62 self.td.create_alternative_backend_service()
64 with self.subTest(
'02_create_url_map'):
67 with self.subTest(
'03_create_target_proxy'):
70 with self.subTest(
'04_create_forwarding_rule'):
71 self.td.create_forwarding_rule(self.server_xds_port)
73 default_test_servers: List[_XdsTestServer]
74 same_zone_test_servers: List[_XdsTestServer]
75 with self.subTest(
'05_start_test_servers'):
76 default_test_servers = self.startTestServers()
77 same_zone_test_servers = self.startTestServers(
80 with self.subTest(
'06_add_server_backends_to_backend_services'):
81 self.setupServerBackends()
85 self.td.alternative_backend_service_add_neg_backends(
86 neg_name_alt, neg_zones_alt)
88 test_client: _XdsTestClient
89 with self.subTest(
'07_start_test_client'):
90 test_client = self.startTestClient(default_test_servers[0])
92 with self.subTest(
'08_test_client_xds_config_exists'):
93 self.assertXdsConfigExists(test_client)
95 with self.subTest(
'09_test_server_received_rpcs_from_test_client'):
96 self.assertSuccessfulRpcs(test_client)
98 with self.subTest(
'10_change_backend_service'):
99 self.td.patch_url_map(self.server_xds_host, self.server_xds_port,
100 self.td.alternative_backend_service)
101 self.assertRpcsEventuallyGoToGivenServers(test_client,
102 same_zone_test_servers)
105 if __name__ ==
'__main__':
106 absltest.main(failfast=
True)