You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
.github: run all quarantined EKS tests in a single tolerated step
The tests that cannot pass on the EKS legs without prefix delegation were
skipped outright there, which loses all signal on those legs, and each one was
handled by its own hand written block. As more tests get quarantined that
pattern grows a block, a run step and a warning step per test.
Collect them in a QUARANTINED_TESTS list instead. The job variables step walks
the list to exclude them from the gating connectivity run and exports the same
list as an output, and a single tolerated continue-on-error step re-runs
exactly those tests, so they keep running and uploading a JUnit report while
their failures do not fail the workflow. One warning step reports it. Adding a
test to the quarantine is now a single line, and re-arming one is deleting that
line.
Both currently affected tests are listed: north-south-loadbalancing-with-l7-policy,
whose outside-to-nodeport reply egresses a secondary ENI while carrying the
primary ENI's source IP so the VPC source/destination check drops it (issue
47391), and egress-gateway-excluded-cidrs, which asserts the node HostIP while
excluded-CIDR traffic is correctly masqueraded to the owning secondary ENI's
primary IP (issue 47530).
The prefix-delegation legs keep pod IPs on the primary ENI, so they run and
gate on both tests as usual and the tolerated step is skipped there. Every
other test keeps gating everywhere, so nothing else is masked.
AIL:3
Signed-off-by: André Martins <andre@cilium.io>
echo "::warning title=Test quarantined::north-south-loadbalancing-with-l7-policy/outside-to-nodeport is skipped on this leg (${{ join(matrix.*, ', ') }}) because it hits a known ENI return-path drop without prefix delegation. The test is quarantined here and still gates on the prefix-delegation legs; remove once the bug is fixed."
592
-
fi
581
+
# Tests quarantined on the legs without prefix delegation. On those
582
+
# legs a node attaches several secondary ENIs and pod IPs spread over
583
+
# them, which these tests do not cope with:
584
+
#
585
+
# north-south-loadbalancing-with-l7-policy: the outside-to-nodeport
586
+
# reply egresses a secondary ENI while carrying the primary ENI's
587
+
# source IP, so the VPC source/destination check drops it and the
588
+
# client times out (curl 28). Issue 47391.
589
+
# egress-gateway-excluded-cidrs: excluded-CIDR traffic is correctly
590
+
# masqueraded to the owning secondary ENI's primary IP, but the
591
+
# test asserts the node HostIP. Issue 47530.
592
+
#
593
+
# They are removed from the gating run below and re-run together in a
594
+
# single tolerated step, so they keep running and collecting artifacts
595
+
# without failing the workflow. The prefix-delegation legs keep pod
596
+
# IPs on the primary ENI, so they run and gate on them as usual. To
597
+
# quarantine another test add it to this list; to re-arm one, drop it.
598
+
QUARANTINED_TESTS=(
599
+
north-south-loadbalancing-with-l7-policy
600
+
egress-gateway-excluded-cidrs
601
+
)
593
602
594
-
# Quarantine egress-gateway-excluded-cidrs on non-PD legs (issue
595
-
# 47530): remove it from the gating run here and run it tolerated
596
-
# below. The PD legs run it inline and gate on it.
603
+
QUARANTINED=""
597
604
if [[ "${{ matrix.aws-eni-pd }}" != "true" ]]; then
echo "::warning title=Test quarantined::egress-gateway-excluded-cidrs failed on this leg (${{ join(matrix.*, ', ') }}) but is quarantined, so it did not fail the workflow. Without prefix delegation a client pod may be masqueraded to a secondary ENI's primary IP rather than the node HostIP the test asserts. Investigate the failure above; remove the quarantine once the test oracle is fixed."
663
+
echo "::warning title=Test quarantined::One of the quarantined tests (${QUARANTINED_TESTS}) failed on this leg (${{ join(matrix.*, ', ') }}) but is quarantined, so it did not fail the workflow. These tests do not cope with pod IPs spread over secondary ENIs, which happens without prefix delegation. Investigate the failure above; remove a test from the quarantine list once its issue is fixed."
0 commit comments