Skip to content

Commit e956524

Browse files
committed
Add retry logic for flaky connectivity tests in boutique
Network connections can be flaky in CI, especially with many pods. Retry up to 3 times for expected "allow" cases before failing.
1 parent f1f8e33 commit e956524

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

examples/kind-lab-boutique/test-connectivity.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,25 @@ test_connection() {
7171
local expected=$4 # "allow" or "deny"
7272
local description=$5
7373
local pod_name="test-${from_app}"
74+
local max_retries=3
75+
local connected=false
7476

7577
echo -n "Testing: $description... "
7678

77-
# Test connection with timeout
78-
if kubectl exec -n "$NAMESPACE" "$pod_name" -- nc -zv -w 3 "$to_svc" "$to_port" >/dev/null 2>&1; then
79+
# Test connection with retries for expected "allow" cases (network can be flaky)
80+
for i in $(seq 1 $max_retries); do
81+
if kubectl exec -n "$NAMESPACE" "$pod_name" -- nc -zv -w 3 "$to_svc" "$to_port" >/dev/null 2>&1; then
82+
connected=true
83+
break
84+
fi
85+
if [ "$expected" = "allow" ] && [ $i -lt $max_retries ]; then
86+
sleep 1
87+
else
88+
break
89+
fi
90+
done
91+
92+
if [ "$connected" = true ]; then
7993
if [ "$expected" = "allow" ]; then
8094
echo -e "${GREEN}PASS${NC} (connected as expected)"
8195
else

0 commit comments

Comments
 (0)