Skip to content

Commit 15a2c63

Browse files
authored
Merge pull request #5211 from jcaamano/all-control-plane-tests-with-bgp
Run all control plane tests for bgp lane
2 parents c7a47d1 + f84d3f3 commit 15a2c63

File tree

6 files changed

+109
-90
lines changed

6 files changed

+109
-90
lines changed

.github/workflows/test.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -464,15 +464,15 @@ jobs:
464464
- {"target": "network-segmentation", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
465465
- {"target": "network-segmentation", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones"}
466466
- {"target": "bgp", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation"}
467-
- {"target": "bgp", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation"}
467+
- {"target": "bgp", "ha": "noHA", "gateway-mode": "shared", "ipfamily": "dualstack", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "routeadvertisements": "advertise-default", "network-segmentation": "enable-network-segmentation"}
468468
- {"target": "traffic-flow-test-only","ha": "noHA", "gateway-mode": "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "traffic-flow-tests": "1-24", "network-segmentation": "enable-network-segmentation"}
469469
- {"target": "tools", "ha": "noHA", "gateway-mode": "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "SnatGW", "second-bridge": "1br", "ic": "ic-single-node-zones", "network-segmentation": "enable-network-segmentation"}
470470
needs: [ build-pr ]
471471
env:
472472
JOB_NAME: "${{ matrix.target }}-${{ matrix.ha }}-${{ matrix.gateway-mode }}-${{ matrix.ipfamily }}-${{ matrix.disable-snat-multiple-gws }}-${{ matrix.second-bridge }}-${{ matrix.ic }}"
473473
OVN_HYBRID_OVERLAY_ENABLE: ${{ (matrix.target == 'control-plane' || matrix.target == 'control-plane-helm') && (matrix.ipfamily == 'ipv4' || matrix.ipfamily == 'dualstack' ) }}
474-
OVN_MULTICAST_ENABLE: "${{ matrix.target == 'control-plane' || matrix.target == 'control-plane-helm' || matrix.target == 'network-segmentation' }}"
475-
OVN_EMPTY_LB_EVENTS: "${{ matrix.target == 'control-plane' || matrix.target == 'control-plane-helm' }}"
474+
OVN_MULTICAST_ENABLE: "${{ matrix.target == 'control-plane' || matrix.target == 'control-plane-helm' || matrix.target == 'network-segmentation' || matrix.target == 'bgp' }}"
475+
OVN_EMPTY_LB_EVENTS: "${{ matrix.target == 'control-plane' || matrix.target == 'control-plane-helm' || matrix.target == 'bgp' }}"
476476
OVN_HA: "${{ matrix.ha == 'HA' }}"
477477
OVN_DISABLE_SNAT_MULTIPLE_GWS: "${{ matrix.disable-snat-multiple-gws == 'noSnatGW' }}"
478478
KIND_INSTALL_METALLB: "${{ matrix.target == 'control-plane' || matrix.target == 'control-plane-helm' || matrix.target == 'network-segmentation' }}"
@@ -559,7 +559,7 @@ jobs:
559559
echo OVN_TEST_EX_GW_NETWORK=xgw >> $GITHUB_ENV
560560
echo OVN_ENABLE_EX_GW_NETWORK_BRIDGE=true >> $GITHUB_ENV
561561
fi
562-
if [[ "$JOB_NAME" == *"shard-conformance"* ]] && [ "$ADVERTISE_DEFAULT_NETWORK" == "true" ]; then
562+
if [ "$ADVERTISE_DEFAULT_NETWORK" == "true" ]; then
563563
echo "ADVERTISE_DEFAULT_NETWORK=true" >> $GITHUB_ENV
564564
565565
# Use proper variable declaration with default values
@@ -616,7 +616,9 @@ jobs:
616616
- name: Run Tests
617617
# e2e tests take ~60 minutes normally, 120 should be more than enough
618618
# set 3 hours for control-plane tests as these might take a while
619-
timeout-minutes: ${{ matrix.target == 'control-plane' && 180 || matrix.target == 'control-plane-helm' && 180 || matrix.target == 'external-gateway' && 180 || 120 }}
619+
# give 10m extra to give ginkgo chance to timeout before github so that we
620+
# get its output
621+
timeout-minutes: ${{ matrix.target == 'bgp' && 190 || matrix.target == 'control-plane' && 190 || matrix.target == 'control-plane-helm' && 190 || matrix.target == 'external-gateway' && 190 || 130 }}
620622
run: |
621623
# used by e2e diagnostics package
622624
export OVN_IMAGE="ovn-daemonset-fedora:pr"
@@ -641,7 +643,7 @@ jobs:
641643
elif [ "${{ matrix.target }}" == "network-segmentation" ]; then
642644
make -C test control-plane WHAT="Network Segmentation"
643645
elif [ "${{ matrix.target }}" == "bgp" ]; then
644-
make -C test control-plane WHAT="BGP"
646+
make -C test control-plane
645647
elif [ "${{ matrix.target }}" == "tools" ]; then
646648
make -C go-controller build
647649
make -C test tools

contrib/kind-common

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,13 @@ deploy_bgp_external_server() {
751751
echo "FRR kind network IPv6: ${bgp_network_frr_v6}"
752752
$OCI_BIN exec bgpserver ip -6 route replace default via "$bgp_network_frr_v6"
753753
fi
754+
# disable the default route to make sure the container only routes accross
755+
# directly connected or learnt networks (doing this at the very end since
756+
# docker changes the routing table when a new network is connected)
757+
docker exec frr ip route delete default
758+
docker exec frr ip route
759+
docker exec frr ip -6 route delete default
760+
docker exec frr ip -6 route
754761
}
755762

756763
destroy_bgp() {
@@ -817,7 +824,7 @@ EOF
817824

818825
rm -rf "${FRR_TMP_DIR}"
819826
# Add routes for pod networks dynamically into the github runner for return traffic to pass back
820-
if [ -n "${JOB_NAME:-}" ] && [[ "$JOB_NAME" == *"shard-conformance"* ]] && [ "$ADVERTISE_DEFAULT_NETWORK" == "true" ]; then
827+
if [ "$ADVERTISE_DEFAULT_NETWORK" = "true" ]; then
821828
echo "Adding routes for Kubernetes pod networks..."
822829
NODES=$(kubectl get nodes -o jsonpath='{.items[*].metadata.name}')
823830
echo "Found nodes: $NODES"
@@ -835,7 +842,7 @@ EOF
835842
# Add IPv4 route
836843
if [ -n "$ipv4_subnet" ] && [ -n "$node_ipv4" ]; then
837844
echo "Adding IPv4 route for $node ($node_ipv4): $ipv4_subnet"
838-
sudo ip route add $ipv4_subnet via $node_ipv4
845+
sudo ip route replace $ipv4_subnet via $node_ipv4
839846
fi
840847
fi
841848

@@ -847,7 +854,7 @@ EOF
847854

848855
if [ -n "$ipv6_subnet" ] && [ -n "$node_ipv6" ]; then
849856
echo "Adding IPv6 route for $node ($node_ipv6): $ipv6_subnet"
850-
sudo ip -6 route add $ipv6_subnet via $node_ipv6
857+
sudo ip -6 route replace $ipv6_subnet via $node_ipv6
851858
fi
852859
fi
853860
done

go-controller/pkg/node/gateway_shared_intf.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1676,7 +1676,7 @@ func flowsForDefaultBridge(bridge *bridgeConfiguration, extraIPs []net.IP) ([]st
16761676
// at the GR load balancer or switch load balancer. It means the correct port wasn't provided.
16771677
// nodeCIDR->serviceCIDR traffic flow is internal and it shouldn't be carried to outside the cluster
16781678
dftFlows = append(dftFlows,
1679-
fmt.Sprintf("cookie=%s, priority=105, in_port=%s, %s, %s_dst=%s,"+
1679+
fmt.Sprintf("cookie=%s, priority=115, in_port=%s, %s, %s_dst=%s,"+
16801680
"actions=drop", defaultOpenFlowCookie, netConfig.ofPortPatch, protoPrefix, protoPrefix, svcCIDR))
16811681
}
16821682
}

go-controller/pkg/ovn/master_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1639,7 +1639,7 @@ var _ = ginkgo.Describe("Default network controller operations", func() {
16391639
gomega.Expect(err).NotTo(gomega.HaveOccurred())
16401640

16411641
ginkgo.By("adding the node becomes possible")
1642-
gomega.Expect(oc.retryNodes.ResourceHandler.AddResource(&testNode, false)).To(gomega.Succeed())
1642+
gomega.Eventually(oc.retryNodes.ResourceHandler.AddResource).WithArguments(&testNode, false).Should(gomega.Succeed())
16431643

16441644
return nil
16451645
}

test/scripts/e2e-cp.sh

Lines changed: 88 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -33,147 +33,152 @@ queries to the hostNetworked server pod on another node shall work for UDP|\
3333
ipv4 pod"
3434

3535
SKIPPED_TESTS=""
36+
skip() {
37+
if [ "$SKIPPED_TESTS" != "" ]; then
38+
SKIPPED_TESTS+="|"
39+
fi
40+
SKIPPED_TESTS+=$*
41+
}
3642

3743
if [ "$PLATFORM_IPV4_SUPPORT" == true ]; then
38-
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
39-
# No support for these features in dual-stack yet
40-
SKIPPED_TESTS="hybrid.overlay"
41-
else
42-
# Skip sflow in IPv4 since it's a long test (~5 minutes)
43-
# We're validating netflow v5 with an ipv4 cluster, sflow with an ipv6 cluster
44-
SKIPPED_TESTS="Should validate flow data of br-int is sent to an external gateway with sflow|ipv6 pod"
45-
fi
44+
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
45+
# No support for these features in dual-stack yet
46+
skip "hybrid.overlay"
47+
else
48+
# Skip sflow in IPv4 since it's a long test (~5 minutes)
49+
# We're validating netflow v5 with an ipv4 cluster, sflow with an ipv6 cluster
50+
skip "Should validate flow data of br-int is sent to an external gateway with sflow|ipv6 pod"
51+
fi
4652
fi
4753

4854
if [ "$PLATFORM_IPV4_SUPPORT" == false ]; then
49-
SKIPPED_TESTS+="\[IPv4\]"
55+
skip "\[IPv4\]"
5056
fi
5157

5258
if [ "$OVN_HA" == false ]; then
53-
if [ "$SKIPPED_TESTS" != "" ]; then
54-
SKIPPED_TESTS+="|"
55-
fi
5659
# No support for these features in no-ha mode yet
5760
# TODO streamline the db delete tests
58-
SKIPPED_TESTS+="recovering from deleting db files while maintaining connectivity|\
59-
Should validate connectivity before and after deleting all the db-pods at once in HA mode"
61+
skip "recovering from deleting db files while maintaining connectivity"
62+
skip "Should validate connectivity before and after deleting all the db-pods at once in HA mode"
6063
else
61-
if [ "$SKIPPED_TESTS" != "" ]; then
62-
SKIPPED_TESTS+="|"
63-
fi
64-
65-
SKIPPED_TESTS+="Should validate connectivity before and after deleting all the db-pods at once in Non-HA mode|\
66-
e2e br-int NetFlow export validation"
64+
skip "Should validate connectivity before and after deleting all the db-pods at once in Non-HA mode"
65+
skip "e2e br-int NetFlow export validation"
6766
fi
6867

6968
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
70-
if [ "$SKIPPED_TESTS" != "" ]; then
71-
SKIPPED_TESTS+="|"
72-
fi
7369
# No support for these tests in IPv6 mode yet
74-
SKIPPED_TESTS+=$IPV6_SKIPPED_TESTS
70+
skip $IPV6_SKIPPED_TESTS
7571
fi
7672

7773
if [ "$OVN_DISABLE_SNAT_MULTIPLE_GWS" == false ]; then
78-
if [ "$SKIPPED_TESTS" != "" ]; then
79-
SKIPPED_TESTS+="|"
80-
fi
81-
SKIPPED_TESTS+="e2e multiple external gateway stale conntrack entry deletion validation"
74+
skip "e2e multiple external gateway stale conntrack entry deletion validation"
8275
fi
8376

8477
if [ "$OVN_GATEWAY_MODE" == "shared" ]; then
85-
if [ "$SKIPPED_TESTS" != "" ]; then
86-
SKIPPED_TESTS+="|"
87-
fi
88-
SKIPPED_TESTS+="Should ensure load balancer service|LGW"
8978
# See https://github.com/ovn-org/ovn-kubernetes/issues/4138 for details
79+
skip "Should ensure load balancer service|LGW"
9080
fi
9181

9282
if [ "$OVN_GATEWAY_MODE" == "local" ]; then
93-
# See https://github.com/ovn-org/ovn-kubernetes/labels/ci-ipv6 for details:
83+
# See https://github.com/ovn-org/ovn-kubernetes/labels/ci-ipv6 for details
9484
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
95-
if [ "$SKIPPED_TESTS" != "" ]; then
96-
SKIPPED_TESTS+="|"
97-
fi
98-
SKIPPED_TESTS+="Should be allowed by nodeport services|\
99-
Should successfully create then remove a static pod|\
100-
Should validate connectivity from a pod to a non-node host address on same node|\
101-
Should validate connectivity within a namespace of pods on separate nodes|\
102-
Services"
85+
skip "Should be allowed by nodeport services"
86+
skip "Should successfully create then remove a static pod"
87+
skip "Should validate connectivity from a pod to a non-node host address on same node"
88+
skip "Should validate connectivity within a namespace of pods on separate nodes"
89+
skip "Services"
10390
fi
10491
fi
10592

10693
# skipping the egress ip legacy health check test because it requires two
10794
# sequenced rollouts of both ovnkube-node and ovnkube-master that take a lot of
10895
# time.
109-
SKIPPED_TESTS+="${SKIPPED_TESTS:+|}disabling egress nodes impeding Legacy health check"
96+
skip "disabling egress nodes impeding Legacy health check"
11097

11198
if [ "$ENABLE_MULTI_NET" != "true" ]; then
112-
if [ "$SKIPPED_TESTS" != "" ]; then
113-
SKIPPED_TESTS+="|"
114-
fi
115-
SKIPPED_TESTS+="Multi Homing"
99+
skip "Multi Homing"
116100
fi
117101

118102
if [ "$OVN_NETWORK_QOS_ENABLE" != "true" ]; then
119-
if [ "$SKIPPED_TESTS" != "" ]; then
120-
SKIPPED_TESTS+="|"
121-
fi
122-
SKIPPED_TESTS+="e2e NetworkQoS validation"
103+
skip "e2e NetworkQoS validation"
123104
fi
124105

125106
# Only run Node IP/MAC address migration tests if they are explicitly requested
126107
IP_MIGRATION_TESTS="Node IP and MAC address migration"
127108
if [[ "${WHAT}" != "${IP_MIGRATION_TESTS}"* ]]; then
128-
if [ "$SKIPPED_TESTS" != "" ]; then
129-
SKIPPED_TESTS+="|"
130-
fi
131-
SKIPPED_TESTS+="Node IP and MAC address migration"
109+
skip "Node IP and MAC address migration"
132110
fi
133111

134112
# Only run Multi node zones interconnect tests if they are explicitly requested
135113
MULTI_NODE_ZONES_TESTS="Multi node zones interconnect"
136114
if [[ "${WHAT}" != "${MULTI_NODE_ZONES_TESTS}"* ]]; then
137-
if [ "$SKIPPED_TESTS" != "" ]; then
138-
SKIPPED_TESTS+="|"
139-
fi
140-
SKIPPED_TESTS+="Multi node zones interconnect"
115+
skip "Multi node zones interconnect"
141116
fi
142117

143118
# Only run external gateway tests if they are explicitly requested
144119
EXTERNAL_GATEWAY_TESTS="External Gateway"
145120
if [[ "${WHAT}" != "${EXTERNAL_GATEWAY_TESTS}"* ]]; then
146-
if [ "$SKIPPED_TESTS" != "" ]; then
147-
SKIPPED_TESTS+="|"
148-
fi
149-
SKIPPED_TESTS+="External Gateway"
121+
skip "External Gateway"
150122
fi
151123

152124
# Only run kubevirt virtual machines tests if they are explicitly requested
153125
KV_LIVE_MIGRATION_TESTS="Kubevirt Virtual Machines"
154126
if [[ "${WHAT}" != "${KV_LIVE_MIGRATION_TESTS}"* ]]; then
155-
if [ "$SKIPPED_TESTS" != "" ]; then
156-
SKIPPED_TESTS+="|"
157-
fi
158-
SKIPPED_TESTS+=$KV_LIVE_MIGRATION_TESTS
127+
skip $KV_LIVE_MIGRATION_TESTS
159128
fi
160129

161130
# Only run network segmentation tests if they are explicitly requested
162131
NETWORK_SEGMENTATION_TESTS="Network Segmentation"
163132
if [[ "${WHAT}" != "${NETWORK_SEGMENTATION_TESTS}"* ]]; then
164-
if [ "$SKIPPED_TESTS" != "" ]; then
165-
SKIPPED_TESTS+="|"
166-
fi
167-
SKIPPED_TESTS+=$NETWORK_SEGMENTATION_TESTS
133+
skip $NETWORK_SEGMENTATION_TESTS
168134
fi
169135

170-
# Only run bgp tests if they are explicitly requested
171136
BGP_TESTS="BGP"
172-
if [[ "${WHAT}" != "${BGP_TESTS}"* ]]; then
173-
if [ "$SKIPPED_TESTS" != "" ]; then
174-
SKIPPED_TESTS+="|"
137+
if [ "$ENABLE_ROUTE_ADVERTISEMENTS" != true ]; then
138+
skip $BGP_TESTS
139+
else
140+
if [ "$ADVERTISE_DEFAULT_NETWORK" = true ]; then
141+
# Some test don't work when the default network is advertised, either because
142+
# the configuration that the test excercises does not make sense for an advertised network, or
143+
# there is some bug or functional gap
144+
# call out case by case
145+
146+
# pod reached from default network through secondary interface, asymetric, configuration does not make sense
147+
# TODO: perhaps the secondary network attached pods should not be attached to default network
148+
skip "Multi Homing A single pod with an OVN-K secondary network attached to a localnet network mapped to breth0 can be reached by a client pod in the default network on the same node"
149+
skip "Multi Homing A single pod with an OVN-K secondary network attached to a localnet network mapped to breth0 can be reached by a client pod in the default network on a different node"
150+
151+
# these tests require metallb but the configuration we do for it is not compatible with the configuration we do to advertise the default network
152+
# TODO: consolidate configuration
153+
skip "Load Balancer Service Tests with MetalLB"
154+
skip "EgressService"
155+
156+
# tests that specifically expect the node SNAT to happen
157+
# TODO: expect the pod IP where it makes sense
158+
skip "e2e egress firewall policy validation with external containers"
159+
skip "e2e egress IP validation Cluster Default Network \[OVN network\] Using different methods to disable a node's availability for egress Should validate the egress IP functionality against remote hosts"
160+
skip "e2e egress IP validation Cluster Default Network \[OVN network\] Should validate the egress IP SNAT functionality against host-networked pods"
161+
skip "e2e egress IP validation Cluster Default Network Should validate egress IP logic when one pod is managed by more than one egressIP object"
162+
skip "e2e egress IP validation Cluster Default Network Should re-assign egress IPs when node readiness / reachability goes down/up"
163+
skip "Pod to external server PMTUD when a client ovnk pod targeting an external server is created when tests are run towards the agnhost echo server queries to the hostNetworked server pod on another node shall work for UDP"
164+
165+
# https://issues.redhat.com/browse/OCPBUGS-55028
166+
skip "e2e egress IP validation Cluster Default Network \[secondary-host-eip\]"
167+
168+
# https://issues.redhat.com/browse/OCPBUGS-50636
169+
skip "Services of type NodePort should listen on each host addresses"
170+
skip "Services of type NodePort should work on secondary node interfaces for ETP=local and ETP=cluster when backend pods are also served by EgressIP"
171+
172+
# https://github.com/ovn-kubernetes/ovn-kubernetes/issues/5240
173+
skip "e2e control plane test node readiness according to its defaults interface MTU size should get node not ready with a too small MTU"
174+
175+
# buggy tests that don't work in dual stack mode
176+
skip "Service Hairpin SNAT Should ensure service hairpin traffic is NOT SNATed to hairpin masquerade IP; GR LB"
177+
skip "Services when a nodePort service targeting a pod with hostNetwork:false is created when tests are run towards the agnhost echo service queries to the nodePort service shall work for TCP"
178+
skip "Services when a nodePort service targeting a pod with hostNetwork:true is created when tests are run towards the agnhost echo service queries to the nodePort service shall work for TCP"
179+
skip "Services when a nodePort service targeting a pod with hostNetwork:false is created when tests are run towards the agnhost echo service queries to the nodePort service shall work for UDP"
180+
skip "Services when a nodePort service targeting a pod with hostNetwork:true is created when tests are run towards the agnhost echo service queries to the nodePort service shall work for UDP"
175181
fi
176-
SKIPPED_TESTS+=$BGP_TESTS
177182
fi
178183

179184
# setting these is required to make RuntimeClass tests work ... :/
@@ -182,15 +187,20 @@ export KUBE_CONTAINER_RUNTIME_ENDPOINT=unix:///run/containerd/containerd.sock
182187
export KUBE_CONTAINER_RUNTIME_NAME=containerd
183188
export NUM_NODES=2
184189

185-
FOCUS=$(echo ${@:1} | sed 's/ /\\s/g')
190+
FOCUS=$(echo "${@:1}" | sed 's/ /\\s/g')
191+
192+
# Ginkgo test timeout needs to be lower than both github's timeout and go test
193+
# timeout to be able to get proper Ginkgo output when it happens.
194+
TEST_TIMEOUT=${TEST_TIMEOUT:-180}
195+
GO_TEST_TIMEOUT=$((TEST_TIMEOUT + 5))
186196

187197
pushd e2e
188198

189199
go mod download
190-
go test -test.timeout 180m -v . \
200+
go test -test.timeout ${GO_TEST_TIMEOUT}m -v . \
191201
-ginkgo.v \
192202
-ginkgo.focus ${FOCUS:-.} \
193-
-ginkgo.timeout 3h \
203+
-ginkgo.timeout ${TEST_TIMEOUT}m \
194204
-ginkgo.flake-attempts ${FLAKE_ATTEMPTS:-2} \
195205
-ginkgo.skip="${SKIPPED_TESTS}" \
196206
-ginkgo.junit-report=${E2E_REPORT_DIR}/junit_${E2E_REPORT_PREFIX}report.xml \

test/scripts/e2e-kind.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ fi
200200
# timeout needs to be lower than github's timeout. Otherwise github terminates
201201
# the job and doesn't give ginkgo a chance to print status so that we know why
202202
# the timeout happened.
203-
TEST_TIMEOUT=${TEST_TIMEOUT:-100m}
203+
TEST_TIMEOUT=${TEST_TIMEOUT:-120m}
204204

205205
ginkgo --nodes=${NUM_NODES} \
206206
--focus=${FOCUS} \

0 commit comments

Comments
 (0)