17 from absl
import flags
19 from framework
import xds_flags
20 from framework
import xds_k8s_flags
25 logger = logging.getLogger(__name__)
27 _CMD = flags.DEFINE_enum(
'cmd',
29 enum_values=[
'run',
'cleanup'],
31 _SECURE = flags.DEFINE_bool(
"secure",
33 help=
"Run server in the secure mode")
34 _REUSE_NAMESPACE = flags.DEFINE_bool(
"reuse_namespace",
36 help=
"Use existing namespace if exists")
37 _CLEANUP_NAMESPACE = flags.DEFINE_bool(
40 help=
"Delete namespace during resource cleanup")
41 flags.adopt_module_key_flags(xds_flags)
42 flags.adopt_module_key_flags(xds_k8s_flags)
44 flags.mark_flag_as_required(
"resource_suffix")
46 KubernetesServerRunner = server_app.KubernetesServerRunner
51 raise app.UsageError(
'Too many command-line arguments.')
53 project: str = xds_flags.PROJECT.value
55 gcp_service_account: str = xds_k8s_flags.GCP_SERVICE_ACCOUNT.value
58 resource_prefix: str = xds_flags.RESOURCE_PREFIX.value
59 resource_suffix: str = xds_flags.RESOURCE_SUFFIX.value
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,
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)
74 xds_server_uri=xds_flags.XDS_SERVER_URI.value,
75 deployment_template=
'server-secure.deployment.yaml')
77 k8s_api_manager = k8s.KubernetesApiManager(xds_k8s_flags.KUBE_CONTEXT.value)
78 server_namespace = KubernetesServerRunner.make_namespace_name(
79 resource_prefix, resource_suffix)
81 k8s.KubernetesNamespace(k8s_api_manager, server_namespace),
84 if _CMD.value ==
'run':
85 logger.info(
'Run server, secure_mode=%s', _SECURE.value)
87 test_port=xds_flags.SERVER_PORT.value,
88 maintenance_port=xds_flags.SERVER_MAINTENANCE_PORT.value,
89 secure_mode=_SECURE.value)
91 elif _CMD.value ==
'cleanup':
92 logger.info(
'Cleanup server')
93 server_runner.cleanup(force=
True,
94 force_namespace=_CLEANUP_NAMESPACE.value)
97 if __name__ ==
'__main__':