On 9/8/25 7:58 AM, Ales Musil wrote: > On Fri, Sep 5, 2025 at 1:55 PM Dumitru Ceara <[email protected]> wrote: > >> Since [0] some feature tests have been moved out of the default >> "control-plane" CI lane in ovn-kubernetes. In order to run those, they >> have to be explicitly triggered. When that change happened the OVN CI >> lanes were not updated so we lost test coverage for those features. >> >> This lead to regressions like [1] creeping in. >> >> This commit re-enables the tests. >> >> [0] https://github.com/ovn-kubernetes/ovn-kubernetes/commit/cf116ea >> [1] >> https://mail.openvswitch.org/pipermail/ovs-dev/2025-September/426000.html >> >> Signed-off-by: Dumitru Ceara <[email protected]> >> --- >> .github/workflows/ovn-kubernetes.yml | 35 +++++++++++++++++++--------- >> 1 file changed, 24 insertions(+), 11 deletions(-) >> >> diff --git a/.github/workflows/ovn-kubernetes.yml >> b/.github/workflows/ovn-kubernetes.yml >> index 66fcdae013..05f1ba5b8b 100644 >> --- a/.github/workflows/ovn-kubernetes.yml >> +++ b/.github/workflows/ovn-kubernetes.yml >> @@ -76,19 +76,25 @@ jobs: >> fail-fast: false >> matrix: >> # Valid options are: >> - # target: ["shard-conformance", "control-plane" ] >> + # target: ["shard-conformance", "control-plane", >> "external-gateway" ] >> # shard-conformance: hybrid-overlay = multicast-enable = >> emptylb-enable = false >> # control-plane: hybrid-overlay = multicast-enable = >> emptylb-enable = true >> + # ha: ["HA", "noHA"] >> # gateway-mode: ["local", "shared"] >> # ipfamily: ["ipv4", "ipv6", "dualstack"] >> # disable-snat-multiple-gws: ["noSnatGW", "snatGW"] >> + # second-bridge: ["2br", "1br"] >> + # ic: ["ic-disabled", "ic-single-node-zones", >> "ic-multi-node-zones"] >> include: >> - - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "local", "ipfamily": "ipv6", "disable-snat-multiple-gws": "snatGW"} >> - - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "snatGW"} >> - - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW"} >> - - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "snatGW"} >> - - {"target": "control-plane", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW"} >> - - {"target": "control-plane", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW"} >> + - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "local", "ipfamily": "ipv6", "disable-snat-multiple-gws": "snatGW", >> "ic": "ic-disabled"} >> + - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "local", "ipfamily": "dualstack", "disable-snat-multiple-gws": "snatGW", >> "ic": "ic-disabled"} >> + - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", >> "ic": "ic-disabled"} >> + - {"target": "shard-conformance", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv6", "disable-snat-multiple-gws": "snatGW", >> "ic": "ic-disabled"} >> + - {"target": "control-plane", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", >> "ic": "ic-disabled"} >> + - {"target": "control-plane", "ha": "HA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "snatGW", >> "ic": "ic-disabled"} >> + - {"target": "external-gateway", "ha": "noHA", "gateway-mode": >> "shared", "ipfamily": "ipv4", "disable-snat-multiple-gws": "noSnatGW", >> "second-bridge": "2br", "ic": "ic-single-node-zones"} >> + - {"target": "external-gateway", "ha": "noHA", "gateway-mode": >> "local", "ipfamily": "ipv6", "disable-snat-multiple-gws": "noSnatGW", >> "second-bridge": "1br", "ic": "ic-single-node-zones"} >> + >> needs: [build] >> env: >> JOB_NAME: "${{ matrix.target }}-${{ matrix.ha }}-${{ >> matrix.gateway-mode }}-${{ matrix.ipfamily }}-${{ >> matrix.disable-snat-multiple-gws }}-${{ matrix.second-bridge }}" >> @@ -97,11 +103,14 @@ jobs: >> OVN_MULTICAST_ENABLE: "${{ matrix.target == 'control-plane' }}" >> OVN_EMPTY_LB_EVENTS: "${{ matrix.target == 'control-plane' }}" >> # TODO: We have been testing only non-interconnect ovn-k8s jobs >> until >> - # now. Both modes should be tested in the future. >> - OVN_ENABLE_INTERCONNECT: "false" >> - OVN_HA: "true" >> + # now. We only enable interconnect mode for the external-gateway >> jobs. >> + # However, both modes should be tested in the future, similar to >> what >> + # upstream ovn-k8s does. >> + OVN_ENABLE_INTERCONNECT: "${{ matrix.ic == 'ic-single-node-zones' >> || matrix.ic == 'ic-multi-node-zones'}}" >> + OVN_HA: "${{ matrix.ha == 'HA' }}" >> OVN_DISABLE_SNAT_MULTIPLE_GWS: "${{ >> matrix.disable-snat-multiple-gws == 'noSnatGW' }}" >> OVN_GATEWAY_MODE: "${{ matrix.gateway-mode }}" >> + OVN_SECOND_BRIDGE: "${{ matrix.second-bridge == '2br' }}" >> PLATFORM_IPV4_SUPPORT: "${{ matrix.ipfamily == 'IPv4' || >> matrix.ipfamily == 'dualstack' }}" >> PLATFORM_IPV6_SUPPORT: "${{ matrix.ipfamily == 'IPv6' || >> matrix.ipfamily == 'dualstack' }}" >> steps: >> @@ -168,7 +177,11 @@ jobs: >> # set 180 for control-plane tests as these might take a while >> timeout-minutes: ${{ matrix.target == 'control-plane' && 180 || 120 >> }} >> run: | >> - make -C test ${{ matrix.target }} >> + if [ "${{ matrix.target }}" == "external-gateway" ]; then >> + make -C test control-plane WHAT="External Gateway" >> + else >> + make -C test ${{ matrix.target }} >> + fi >> working-directory: src/github.com/ovn-kubernetes/ovn-kubernetes >> >> - name: Upload Junit Reports >> -- >> 2.50.1 >> >> > Recheck-request: github-robot-_ovn-kubernetes >
Hi, Unfortunately the failure is known to happen every now and then: https://github.com/ovn-kubernetes/ovn-kubernetes/issues/4432 It would be great to get some ovn-kubernetes help on this. 2025-09-05T13:07:37.4480391Z [0mExternal Gateway [38;5;243mWith Admin Policy Based External Route CRs [0mBFD [38;5;243me2e non-vxlan external gateway through a dynamic hop [0mShould validate TCP/UDP connectivity to an external gateway's loopback address via a pod with a dynamic hop [38;5;9m[1m[It] TCP ipv6[0m [38;5;204m[Feature:ExternalGateway][0m 2025-09-05T13:07:37.4483293Z [38;5;243m/home/runner/work/ovn/ovn/src/github.com/ovn-kubernetes/ovn-kubernetes/test/e2e/external_gateways.go:2314[0m 2025-09-05T13:07:37.4484251Z 2025-09-05T13:07:37.4485040Z [38;5;9m[FAILED] Failed to hit all the external gateways via for protocol tcp, diff map[string]struct{}{ 2025-09-05T13:07:37.4486248Z - "ex-gw-container1-80": {}, 2025-09-05T13:07:37.4486728Z "ex-gw-container2-80": {}, 2025-09-05T13:07:37.4486967Z } 2025-09-05T13:07:37.4487267Z [0m 2025-09-05T13:07:37.4488386Z [38;5;9mIn [1m[It][0m[38;5;9m at: [1m/home/runner/work/ovn/ovn/src/github.com/ovn-kubernetes/ovn-kubernetes/test/e2e/external_gateways.go:2290[0m [38;5;243m@ 09/05/25 13:07:33.629[0m Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
