On 10/21/25 3:22 PM, Ales Musil wrote:
> On Fri, Oct 17, 2025 at 12:01 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]>
>> ---
>> V2:
>> - rebased now that
>>   https://github.com/ovn-kubernetes/ovn-kubernetes/pull/5661 fixes the
>>   ovn-kubernetes CI test on their release-1.1 branch.
>> ---
>>  .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.51.0
>>
>>
> Looks good to me, thanks.
> Acked-by: Ales Musil <[email protected]>
> 

Hi Ales,

Thanks for the review!

Applied to main, 25.09 and 25.03.  I didn't backport this further as
older stable branches use ovn-kubernetes older release-1.0 versions.

Regards,
Dumitru

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

Reply via email to