Skip to content

Commit 888e142

Browse files
committed
Bin helpers: fix gamma route_kind runner argument by unifying flags
1 parent d8e4deb commit 888e142

File tree

8 files changed

+84
-175
lines changed

8 files changed

+84
-175
lines changed

bin/cleanup.sh

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ display_usage() {
1919
cat <<EOF >/dev/stderr
2020
Performs full TD and K8S resource cleanup
2121
22-
USAGE: $0 [--nosecure] [arguments]
23-
--nosecure: Skip cleanup for the resources specific for PSM Security
22+
USAGE: $0 [arguments]
2423
arguments ...: additional arguments passed to ./run.sh
2524
2625
ENVIRONMENT:
@@ -31,7 +30,7 @@ ENVIRONMENT:
3130
Default: $XDS_K8S_DRIVER_DIR/venv
3231
EXAMPLES:
3332
$0
34-
$0 --nosecure
33+
$0 --mode=app_net
3534
XDS_K8S_CONFIG=./path-to-flagfile.cfg $0 --resource_suffix=override-suffix
3635
EOF
3736
exit 1
@@ -47,13 +46,6 @@ readonly XDS_K8S_DRIVER_DIR="${SCRIPT_DIR}/.."
4746

4847
cd "${XDS_K8S_DRIVER_DIR}"
4948

50-
if [[ "$1" == "--nosecure" ]]; then
51-
shift
52-
./run.sh bin/run_td_setup.py --cmd=cleanup "$@" && \
53-
./run.sh bin/run_test_client.py --cmd=cleanup --cleanup_namespace "$@" && \
54-
./run.sh bin/run_test_server.py --cmd=cleanup --cleanup_namespace "$@"
55-
else
56-
./run.sh bin/run_td_setup.py --cmd=cleanup --security=mtls "$@" && \
57-
./run.sh bin/run_test_client.py --cmd=cleanup --cleanup_namespace --mode=secure "$@" && \
58-
./run.sh bin/run_test_server.py --cmd=cleanup --cleanup_namespace --mode=secure "$@"
59-
fi
49+
./run.sh bin/run_td_setup.py --cmd=cleanup "$@" && \
50+
./run.sh bin/run_test_client.py --cmd=cleanup --cleanup_namespace "$@" && \
51+
./run.sh bin/run_test_server.py --cmd=cleanup --cleanup_namespace "$@"

bin/cleanup_cluster.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ readonly XDS_K8S_DRIVER_DIR="${SCRIPT_DIR}/.."
2121

2222
cd "${XDS_K8S_DRIVER_DIR}"
2323

24-
NO_SECURE="yes"
24+
MODE=""
2525
DATE_TO=$(date -Iseconds)
2626

2727
while [[ $# -gt 0 ]]; do
2828
case $1 in
29-
--secure) NO_SECURE=""; shift ;;
29+
--mode=*) MODE="${1#*=}"; shift ;;
3030
--date_to=*) DATE_TO="${1#*=}T00:00:00Z"; shift ;;
3131
*) echo "Unknown argument $1"; exit 1 ;;
3232
esac
@@ -68,7 +68,7 @@ echo "Count: ${#namespaces[@]}"
6868

6969
echo "Run plan:"
7070
for suffix in "${suffixes[@]}"; do
71-
echo ./bin/cleanup.sh ${NO_SECURE:+"--nosecure"} "--resource_suffix=${suffix}"
71+
echo ./bin/cleanup.sh ${MODE:+"--mode=$MODE"} "--resource_suffix=${suffix}"
7272
done
7373

7474
read -r -n 1 -p "Continue? (y/N) " answer
@@ -85,7 +85,7 @@ failed=0
8585
for suffix in "${suffixes[@]}"; do
8686
echo "-------------------- Cleaning suffix ${suffix} --------------------"
8787
set -x
88-
./bin/cleanup.sh ${NO_SECURE:+"--nosecure"} "--resource_suffix=${suffix}" || (( ++failed ))
88+
./bin/cleanup.sh ${MODE:+"--mode=$MODE"} "--resource_suffix=${suffix}" || (( ++failed ))
8989
set +x
9090
echo "-------------------- Finished cleaning ${suffix} --------------------"
9191
done

bin/lib/common.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,66 @@
3333
logger = logging.get_absl_logger()
3434
# TODO(sergiitk): move common flags/validations here: mode, security, etc
3535

36+
MODE = flags.DEFINE_enum(
37+
"mode",
38+
default="default",
39+
enum_values=[
40+
"default",
41+
"secure",
42+
"app_net",
43+
"gamma",
44+
],
45+
help="Select server mode",
46+
)
47+
SECURITY = flags.DEFINE_enum(
48+
"security",
49+
default=None,
50+
enum_values=[
51+
"mtls",
52+
"tls",
53+
"plaintext",
54+
"mtls_error",
55+
"server_authz_error",
56+
],
57+
help="Configure TD with security",
58+
)
3659
SERVER_REPLICA_COUNT = flags.DEFINE_integer(
3760
"server_replica_count",
3861
default=1,
3962
lower_bound=1,
4063
upper_bound=999,
4164
help="The number server replicas to run.",
4265
)
66+
ROUTE_KIND_GAMMA = flags.DEFINE_enum_class(
67+
"gamma_route_kind",
68+
default=k8s.RouteKind.HTTP,
69+
enum_class=k8s.RouteKind,
70+
help="When --mode=gamma, select the kind of a gamma route the server uses",
71+
)
72+
73+
# Running outside of a test suite, so require explicit resource_suffix.
74+
flags.mark_flag_as_required(xds_flags.RESOURCE_SUFFIX)
75+
76+
# Require --security when --mode=secure.
77+
flags.register_multi_flags_validator(
78+
(MODE, SECURITY),
79+
lambda values: values[MODE.name] != "secure" or values[SECURITY.name],
80+
"When --mode=secure; --security flag is required",
81+
)
82+
83+
84+
@flags.multi_flags_validator(
85+
(xds_flags.SERVER_XDS_PORT.name, MODE.name),
86+
message=(
87+
"Run outside of a test suite, must provide"
88+
" the exact port value (must be greater than 0)."
89+
),
90+
)
91+
def _check_server_xds_port_flag(flags_dict):
92+
if flags_dict[MODE.name] == "gamma":
93+
return True
94+
return flags_dict[xds_flags.SERVER_XDS_PORT.name] > 0
95+
4396

4497
# Type aliases
4598
KubernetesClientRunner = k8s_xds_client_runner.KubernetesClientRunner
@@ -151,6 +204,7 @@ def make_server_runner(
151204
f"{xds_flags.RESOURCE_PREFIX.value}-"
152205
f"{xds_flags.RESOURCE_SUFFIX.value}"
153206
)
207+
runner_kwargs["route_kind"] = ROUTE_KIND_GAMMA.value
154208
server_runner = GammaServerRunner
155209

156210
return server_runner(namespace, **runner_kwargs)

bin/run_channelz.py

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -49,47 +49,9 @@
4949
from framework.test_app import server_app
5050

5151
# Flags
52-
_MODE = flags.DEFINE_enum(
53-
"mode",
54-
default="default",
55-
enum_values=[
56-
"default",
57-
"secure",
58-
"app_net",
59-
"gamma",
60-
],
61-
help="Select test mode",
62-
)
63-
_SECURITY = flags.DEFINE_enum(
64-
"security",
65-
default=None,
66-
enum_values=[
67-
"mtls",
68-
"tls",
69-
"plaintext",
70-
"mtls_error",
71-
"server_authz_error",
72-
],
73-
help="Show info for a security setup",
74-
)
7552
flags.adopt_module_key_flags(common)
7653
flags.adopt_module_key_flags(xds_flags)
7754
flags.adopt_module_key_flags(xds_k8s_flags)
78-
# Running outside of a test suite, so require explicit resource_suffix.
79-
flags.mark_flag_as_required(xds_flags.RESOURCE_SUFFIX.name)
80-
81-
82-
@flags.multi_flags_validator(
83-
(xds_flags.SERVER_XDS_PORT.name, _MODE.name),
84-
message=(
85-
"Run outside of a test suite, must provide"
86-
" the exact port value (must be greater than 0)."
87-
),
88-
)
89-
def _check_server_xds_port_flag(flags_dict):
90-
if flags_dict[_MODE.name] == "gamma":
91-
return True
92-
return flags_dict[xds_flags.SERVER_XDS_PORT.name] > 0
9355

9456

9557
logger = logging.get_absl_logger()
@@ -244,15 +206,19 @@ def main(argv):
244206
enable_workload_identity: bool = (
245207
xds_k8s_flags.ENABLE_WORKLOAD_IDENTITY.value
246208
)
247-
is_secure: bool = bool(_SECURITY.value)
209+
is_secure: bool = bool(common.SECURITY.value)
210+
security_mode = common.SECURITY.value
211+
if security_mode:
212+
flags.set_default(common.MODE, "secure")
213+
mode = common.MODE.value
248214

249215
# Server.
250216
server_namespace = common.make_server_namespace()
251217
server_runner = common.make_server_runner(
252218
server_namespace,
253219
port_forwarding=should_port_forward,
254220
enable_workload_identity=enable_workload_identity,
255-
mode=_MODE.value,
221+
mode=mode,
256222
)
257223
# Find server pod.
258224
server_pods = common.get_server_pods(
@@ -270,7 +236,7 @@ def main(argv):
270236
client_namespace,
271237
port_forwarding=should_port_forward,
272238
enable_workload_identity=enable_workload_identity,
273-
mode=_MODE.value,
239+
mode=mode,
274240
)
275241
# Find client pod.
276242
client_pod: k8s.V1Pod = common.get_client_pod(
@@ -292,7 +258,7 @@ def main(argv):
292258
)
293259

294260
# Create client app for the client pod.
295-
if _MODE.value == "gamma":
261+
if mode == "gamma":
296262
server_target = (
297263
f"xds:///{server_runner.frontend_service_name}"
298264
f".{server_runner.k8s_namespace.name}.svc.cluster.local"
@@ -309,9 +275,9 @@ def main(argv):
309275
)
310276

311277
with test_client, test_server:
312-
if _SECURITY.value in ("mtls", "tls", "plaintext"):
278+
if security_mode in ("mtls", "tls", "plaintext"):
313279
debug_security_setup_positive(test_client, test_server)
314-
elif _SECURITY.value in ("mtls_error", "server_authz_error"):
280+
elif security_mode in ("mtls_error", "server_authz_error"):
315281
debug_security_setup_negative(test_client)
316282
else:
317283
debug_basic_setup(test_client, test_server)

bin/run_ping_pong.py

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,6 @@
4444
from framework.test_app import server_app
4545

4646
# Flags
47-
_MODE = flags.DEFINE_enum(
48-
"mode",
49-
default="default",
50-
enum_values=[
51-
"default",
52-
"secure",
53-
"app_net",
54-
"gamma",
55-
],
56-
help="Select a deployment of the client/server",
57-
)
5847
_NUM_RPCS = flags.DEFINE_integer(
5948
"num_rpcs",
6049
default=100,
@@ -65,22 +54,6 @@
6554
flags.adopt_module_key_flags(common)
6655
flags.adopt_module_key_flags(xds_flags)
6756
flags.adopt_module_key_flags(xds_k8s_flags)
68-
# Running outside of a test suite, so require explicit resource_suffix.
69-
flags.mark_flag_as_required(xds_flags.RESOURCE_SUFFIX.name)
70-
71-
72-
@flags.multi_flags_validator(
73-
(xds_flags.SERVER_XDS_PORT.name, _MODE.name),
74-
message=(
75-
"Run outside of a test suite, must provide"
76-
" the exact port value (must be greater than 0)."
77-
),
78-
)
79-
def _check_server_xds_port_flag(flags_dict):
80-
if flags_dict[_MODE.name] == "gamma":
81-
return True
82-
return flags_dict[xds_flags.SERVER_XDS_PORT.name] > 0
83-
8457

8558
logger = logging.get_absl_logger()
8659

@@ -141,7 +114,7 @@ def main(argv):
141114
common.make_server_namespace(),
142115
port_forwarding=should_port_forward,
143116
enable_workload_identity=enable_workload_identity,
144-
mode=_MODE.value,
117+
mode=common.MODE.value,
145118
)
146119
# Ensure server pods are running
147120
common.get_server_pods(server_runner, xds_flags.SERVER_NAME.value)
@@ -151,7 +124,7 @@ def main(argv):
151124
common.make_client_namespace(),
152125
port_forwarding=should_port_forward,
153126
enable_workload_identity=enable_workload_identity,
154-
mode=_MODE.value,
127+
mode=common.MODE.value,
155128
)
156129
# Find client pod.
157130
client_pod: k8s.V1Pod = common.get_client_pod(
@@ -162,7 +135,7 @@ def main(argv):
162135
common.register_graceful_exit(server_runner, client_runner)
163136

164137
# Create client app for the client pod.
165-
if _MODE.value == "gamma":
138+
if common.MODE.value == "gamma":
166139
server_target = (
167140
f"xds:///{server_runner.frontend_service_name}"
168141
f".{server_runner.k8s_namespace.name}.svc.cluster.local"

bin/run_td_setup.py

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -70,41 +70,10 @@
7070
],
7171
help="Command",
7272
)
73-
_MODE = flags.DEFINE_enum(
74-
"mode",
75-
default="default",
76-
enum_values=[
77-
"default",
78-
"secure",
79-
"app_net",
80-
"gamma",
81-
],
82-
help="Select setup mode",
83-
)
84-
_SECURITY = flags.DEFINE_enum(
85-
"security",
86-
default=None,
87-
enum_values=[
88-
"mtls",
89-
"tls",
90-
"plaintext",
91-
"mtls_error",
92-
"server_authz_error",
93-
],
94-
help="Configure TD with security",
95-
)
9673
flags.adopt_module_key_flags(xds_flags)
9774
flags.adopt_module_key_flags(xds_k8s_flags)
9875

9976
# Flag validations.
100-
# Running outside of a test suite, so require explicit resource_suffix.
101-
flags.mark_flag_as_required(xds_flags.RESOURCE_SUFFIX.name)
102-
# Require --security when --mode=secure.
103-
flags.register_multi_flags_validator(
104-
(_MODE, _SECURITY),
105-
lambda values: values[_MODE.name] != "secure" or values[_SECURITY.name],
106-
"When --mode=secure; --security flag is required",
107-
)
10877

10978

11079
@flags.multi_flags_validator(
@@ -234,7 +203,7 @@ def _setup_td_secure(
234203
mtls=False,
235204
)
236205
td.setup_client_security(
237-
server_namespace=(f"incorrect-namespace-{rand.rand_string()}"),
206+
server_namespace=f"incorrect-namespace-{rand.rand_string()}",
238207
server_name=server_name,
239208
tls=True,
240209
mtls=False,
@@ -292,11 +261,11 @@ def main(
292261

293262
# Flags.
294263
command = _CMD.value
295-
security_mode = _SECURITY.value
264+
security_mode = common.SECURITY.value
296265
if security_mode:
297-
flags.set_default(_MODE, "secure")
266+
flags.set_default(common.MODE, "secure")
298267

299-
mode = _MODE.value
268+
mode = common.MODE.value
300269

301270
# Short circuit for gamma node.
302271
if mode == "gamma":

0 commit comments

Comments
 (0)