fb6b125aab
Mirror / push (push) Successful in 4s
Test / lint (pull_request) Successful in 23s
Test / test (18) (pull_request) Successful in 31s
Test / test (20) (pull_request) Successful in 31s
Test / test (22) (pull_request) Successful in 32s
Test / test (24) (pull_request) Successful in 30s
Test / test (26) (pull_request) Successful in 31s
103 lines
3.3 KiB
YAML
103 lines
3.3 KiB
YAML
x-log-limits: &log-limits
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-file: "3"
|
|
max-size: 20m
|
|
|
|
x-dumbclient-healthcheck: &dumbclient-healthcheck
|
|
test: ["CMD-SHELL", "test -f /tmp/healthy"]
|
|
interval: 1s
|
|
retries: 30
|
|
timeout: 2s
|
|
|
|
services:
|
|
# Network owner for every dumbclient-* service and the capture sidecar below: all four are pure
|
|
# outbound TCP clients, so sharing one netns is only a source-IP detail. It never exits, because a
|
|
# client that finishes early would take the namespace, and every other conversation, with it.
|
|
dumbclient-netns:
|
|
image: nicolaka/netshoot:v0.16
|
|
<<: *log-limits
|
|
command: ["sleep", "infinity"]
|
|
|
|
dumbclient-w2000:
|
|
build: ./interop-tests/peers/dumbclient
|
|
image: interop-dumbclient:de0334b
|
|
<<: *log-limits
|
|
network_mode: "service:dumbclient-netns"
|
|
command: ["conf/window2000.yml"]
|
|
healthcheck: *dumbclient-healthcheck
|
|
depends_on:
|
|
dumbclient-netns:
|
|
condition: service_started
|
|
|
|
# S9's comparison run: window below maxHeldMessages (1000, session-options.ts), where nothing
|
|
# should ever be throttled - see findings/07-load.md.
|
|
dumbclient-w500:
|
|
build: ./interop-tests/peers/dumbclient
|
|
image: interop-dumbclient:de0334b
|
|
<<: *log-limits
|
|
network_mode: "service:dumbclient-netns"
|
|
command: ["conf/window500.yml"]
|
|
healthcheck: *dumbclient-healthcheck
|
|
depends_on:
|
|
dumbclient-netns:
|
|
condition: service_started
|
|
|
|
# S6: sends one message, then never speaks again - the no-ping binary (see the Dockerfile) sends
|
|
# no enquire_link either, which nothing else built for this phase can say (smppload is blocked).
|
|
dumbclient-idle:
|
|
build: ./interop-tests/peers/dumbclient
|
|
image: interop-dumbclient:de0334b
|
|
<<: *log-limits
|
|
network_mode: "service:dumbclient-netns"
|
|
environment:
|
|
DUMBCLIENT_BIN: /app/smpp-dumb-client-noping
|
|
command: ["conf/idle.yml"]
|
|
healthcheck: *dumbclient-healthcheck
|
|
depends_on:
|
|
dumbclient-netns:
|
|
condition: service_started
|
|
|
|
# The long soak: the longest run the time-box allows, fast handler, watched for anything that
|
|
# grows without bound.
|
|
dumbclient-soak:
|
|
build: ./interop-tests/peers/dumbclient
|
|
image: interop-dumbclient:de0334b
|
|
<<: *log-limits
|
|
network_mode: "service:dumbclient-netns"
|
|
command: ["conf/soak.yml"]
|
|
healthcheck: *dumbclient-healthcheck
|
|
depends_on:
|
|
dumbclient-netns:
|
|
condition: service_started
|
|
|
|
# Every dumbclient-* service shares dumbclient-netns's namespace (see above), so this one sidecar
|
|
# sees all four conversations with node:2775 - the same pattern compose.kannel.yaml uses for its
|
|
# four bearerbox variants, one namespace deeper.
|
|
capture:
|
|
image: nicolaka/netshoot:v0.16
|
|
network_mode: "service:dumbclient-netns"
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- NET_RAW
|
|
depends_on:
|
|
dumbclient-netns:
|
|
condition: service_started
|
|
command: ["dumpcap", "-i", "any", "-f", "tcp port 2775", "-w", "/captures/dumbclient.pcapng"]
|
|
volumes:
|
|
- ./interop-tests/captures:/captures
|
|
|
|
node:
|
|
depends_on:
|
|
capture:
|
|
condition: service_started
|
|
dumbclient-idle:
|
|
condition: service_healthy
|
|
dumbclient-soak:
|
|
condition: service_healthy
|
|
dumbclient-w500:
|
|
condition: service_healthy
|
|
dumbclient-w2000:
|
|
condition: service_healthy
|