run_test_server.py
Go to the documentation of this file.
1 # Copyright 2020 gRPC authors.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 import logging
15 
16 from absl import app
17 from absl import flags
18 
19 from framework import xds_flags
20 from framework import xds_k8s_flags
21 from framework.infrastructure import gcp
22 from framework.infrastructure import k8s
23 from framework.test_app import server_app
24 
25 logger = logging.getLogger(__name__)
26 # Flags
27 _CMD = flags.DEFINE_enum('cmd',
28  default='run',
29  enum_values=['run', 'cleanup'],
30  help='Command')
31 _SECURE = flags.DEFINE_bool("secure",
32  default=False,
33  help="Run server in the secure mode")
34 _REUSE_NAMESPACE = flags.DEFINE_bool("reuse_namespace",
35  default=True,
36  help="Use existing namespace if exists")
37 _CLEANUP_NAMESPACE = flags.DEFINE_bool(
38  "cleanup_namespace",
39  default=False,
40  help="Delete namespace during resource cleanup")
41 flags.adopt_module_key_flags(xds_flags)
42 flags.adopt_module_key_flags(xds_k8s_flags)
43 # Running outside of a test suite, so require explicit resource_suffix.
44 flags.mark_flag_as_required("resource_suffix")
45 
46 KubernetesServerRunner = server_app.KubernetesServerRunner
47 
48 
49 def main(argv):
50  if len(argv) > 1:
51  raise app.UsageError('Too many command-line arguments.')
52 
53  project: str = xds_flags.PROJECT.value
54  # GCP Service Account email
55  gcp_service_account: str = xds_k8s_flags.GCP_SERVICE_ACCOUNT.value
56 
57  # Resource names.
58  resource_prefix: str = xds_flags.RESOURCE_PREFIX.value
59  resource_suffix: str = xds_flags.RESOURCE_SUFFIX.value
60 
61  # KubernetesServerRunner arguments.
62  runner_kwargs = dict(
63  deployment_name=xds_flags.SERVER_NAME.value,
64  image_name=xds_k8s_flags.SERVER_IMAGE.value,
65  td_bootstrap_image=xds_k8s_flags.TD_BOOTSTRAP_IMAGE.value,
66  gcp_project=project,
67  gcp_api_manager=gcp.api.GcpApiManager(),
68  gcp_service_account=gcp_service_account,
69  network=xds_flags.NETWORK.value,
70  reuse_namespace=_REUSE_NAMESPACE.value)
71 
72  if _SECURE.value:
73  runner_kwargs.update(
74  xds_server_uri=xds_flags.XDS_SERVER_URI.value,
75  deployment_template='server-secure.deployment.yaml')
76 
77  k8s_api_manager = k8s.KubernetesApiManager(xds_k8s_flags.KUBE_CONTEXT.value)
78  server_namespace = KubernetesServerRunner.make_namespace_name(
79  resource_prefix, resource_suffix)
80  server_runner = KubernetesServerRunner(
81  k8s.KubernetesNamespace(k8s_api_manager, server_namespace),
82  **runner_kwargs)
83 
84  if _CMD.value == 'run':
85  logger.info('Run server, secure_mode=%s', _SECURE.value)
86  server_runner.run(
87  test_port=xds_flags.SERVER_PORT.value,
88  maintenance_port=xds_flags.SERVER_MAINTENANCE_PORT.value,
89  secure_mode=_SECURE.value)
90 
91  elif _CMD.value == 'cleanup':
92  logger.info('Cleanup server')
93  server_runner.cleanup(force=True,
94  force_namespace=_CLEANUP_NAMESPACE.value)
95 
96 
97 if __name__ == '__main__':
98  app.run(main)
bin.run_test_server.main
def main(argv)
Definition: run_test_server.py:49
bin.run_test_server.KubernetesServerRunner
KubernetesServerRunner
Definition: run_test_server.py:46
framework.test_app
Definition: tools/run_tests/xds_k8s_test_driver/framework/test_app/__init__.py:1
framework.infrastructure
Definition: tools/run_tests/xds_k8s_test_driver/framework/infrastructure/__init__.py:1
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:14