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 External Gateway With Admin
Policy Based External Route CRs BFD e2e non-vxlan
external gateway through a dynamic hop Should validate TCP/UDP
connectivity to an external gateway's loopback address via a pod with a
dynamic hop [It] TCP ipv6
[Feature:ExternalGateway]
2025-09-05T13:07:37.4483293Z
/home/runner/work/ovn/ovn/src/github.com/ovn-kubernetes/ovn-kubernetes/test/e2e/external_gateways.go:2314
2025-09-05T13:07:37.4484251Z
2025-09-05T13:07:37.4485040Z   [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   
2025-09-05T13:07:37.4488386Z   In [It] at:
/home/runner/work/ovn/ovn/src/github.com/ovn-kubernetes/ovn-kubernetes/test/e2e/external_gateways.go:2290
@ 09/05/25 13:07:33.629

Regards,
Dumitru

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to