Skip to content

Commit 1fde61a

Browse files
Merge pull request #2676 from openshift/d/s-merge-07-17-2025
OCPBUGS-59248: DownStream Merge [07-17-2025]
2 parents 86953f3 + 4caac66 commit 1fde61a

File tree

115 files changed

+3502
-1511
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+3502
-1511
lines changed

.github/workflows/test.yml

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
# separate job for parallelism
3939
lint:
4040
name: Lint
41-
runs-on: ubuntu-22.04
41+
runs-on: ubuntu-24.04
4242
steps:
4343
- name: Check out code
4444
uses: actions/checkout@v4
@@ -63,7 +63,7 @@ jobs:
6363

6464
build-master:
6565
name: Build-master
66-
runs-on: ubuntu-22.04
66+
runs-on: ubuntu-24.04
6767
steps:
6868
# Create a cache for the built master image
6969
- name: Restore master image cache
@@ -156,7 +156,7 @@ jobs:
156156

157157
build-pr:
158158
name: Build-PR
159-
runs-on: ubuntu-22.04
159+
runs-on: ubuntu-24.04
160160
steps:
161161
# Create a cache for the build PR image
162162
- name: Restore PR image cache
@@ -271,7 +271,7 @@ jobs:
271271
ovn-upgrade-e2e:
272272
name: Upgrade OVN from Master to PR branch based image
273273
if: github.event_name != 'schedule'
274-
runs-on: ubuntu-22.04
274+
runs-on: ubuntu-24.04
275275
timeout-minutes: 120
276276
needs:
277277
- build-master
@@ -319,10 +319,9 @@ jobs:
319319
sudo rm -rf /usr/local/lib/android/sdk
320320
sudo apt-get update
321321
sudo eatmydata apt-get purge --auto-remove -y \
322-
azure-cli aspnetcore-* dotnet-* ghc-* firefox \
322+
azure-cli firefox \
323323
google-chrome-stable \
324-
llvm-* microsoft-edge-stable mono-* \
325-
msbuild mysql-server-core-* php-* php7* \
324+
llvm-* microsoft-edge-stable \
326325
powershell temurin-* zulu-*
327326
# clean unused packages
328327
sudo apt-get autoclean
@@ -387,6 +386,7 @@ jobs:
387386
uses: actions/checkout@v4
388387

389388
- name: Runner Diagnostics
389+
if: always()
390390
uses: ./.github/actions/diagnostics
391391

392392
- name: ovn upgrade
@@ -395,13 +395,15 @@ jobs:
395395
make -C test upgrade-ovn
396396
397397
- name: Runner Diagnostics
398+
if: always()
398399
uses: ./.github/actions/diagnostics
399400

400401
- name: Run E2E shard-conformance
401402
run: |
402403
make -C test shard-conformance
403404
404405
- name: Runner Diagnostics
406+
if: always()
405407
uses: ./.github/actions/diagnostics
406408

407409
- name: Export kind logs
@@ -419,7 +421,7 @@ jobs:
419421

420422
e2e:
421423
name: e2e
422-
runs-on: ubuntu-22.04
424+
runs-on: ubuntu-24.04
423425
# 30 mins for kind, 180 mins for control-plane tests, 10 minutes for all other steps
424426
timeout-minutes: 220
425427
strategy:
@@ -492,7 +494,6 @@ jobs:
492494
OVN_SECOND_BRIDGE: "${{ matrix.second-bridge == '2br' }}"
493495
ENABLE_MULTI_NET: "${{ matrix.target == 'multi-homing' || matrix.target == 'kv-live-migration' || matrix.target == 'network-segmentation' || matrix.target == 'tools' || matrix.target == 'multi-homing-helm' || matrix.target == 'traffic-flow-test-only' || matrix.routeadvertisements != '' }}"
494496
ENABLE_NETWORK_SEGMENTATION: "${{ matrix.target == 'network-segmentation' || matrix.network-segmentation == 'enable-network-segmentation' }}"
495-
DISABLE_UDN_HOST_ISOLATION: "true"
496497
PLATFORM_IPV4_SUPPORT: "${{ matrix.ipfamily == 'IPv4' || matrix.ipfamily == 'dualstack' }}"
497498
PLATFORM_IPV6_SUPPORT: "${{ matrix.ipfamily == 'IPv6' || matrix.ipfamily == 'dualstack' }}"
498499
KIND_INSTALL_KUBEVIRT: "${{ matrix.target == 'kv-live-migration' }}"
@@ -523,10 +524,9 @@ jobs:
523524
sudo rm -rf /usr/local/lib/android/sdk
524525
sudo apt-get update
525526
sudo eatmydata apt-get purge --auto-remove -y \
526-
azure-cli aspnetcore-* dotnet-* ghc-* firefox \
527+
azure-cli firefox \
527528
google-chrome-stable \
528-
llvm-* microsoft-edge-stable mono-* \
529-
msbuild mysql-server-core-* php-* php7* \
529+
llvm-* microsoft-edge-stable \
530530
powershell temurin-* zulu-*
531531
# clean unused packages
532532
sudo apt-get autoclean
@@ -634,6 +634,7 @@ jobs:
634634
run: make -C test traffic-flow-tests WHAT="setup"
635635

636636
- name: Runner Diagnostics
637+
if: always()
637638
uses: ./.github/actions/diagnostics
638639

639640
- name: Run Tests
@@ -687,6 +688,7 @@ jobs:
687688
fi
688689
689690
- name: Runner Diagnostics
691+
if: always()
690692
uses: ./.github/actions/diagnostics
691693

692694
- name: Export kind logs
@@ -708,7 +710,7 @@ jobs:
708710
e2e-dual-conversion:
709711
name: e2e-dual-conversion
710712
if: github.event_name != 'schedule'
711-
runs-on: ubuntu-22.04
713+
runs-on: ubuntu-24.04
712714
timeout-minutes: 60
713715
strategy:
714716
fail-fast: false
@@ -757,10 +759,9 @@ jobs:
757759
sudo rm -rf /usr/local/lib/android/sdk
758760
sudo apt-get update
759761
sudo eatmydata apt-get purge --auto-remove -y \
760-
azure-cli aspnetcore-* dotnet-* ghc-* firefox \
762+
azure-cli firefox \
761763
google-chrome-stable \
762-
llvm-* microsoft-edge-stable mono-* \
763-
msbuild mysql-server-core-* php-* php7* \
764+
llvm-* microsoft-edge-stable \
764765
powershell temurin-* zulu-*
765766
# clean unused packages
766767
sudo apt-get autoclean
@@ -799,20 +800,23 @@ jobs:
799800
./contrib/kind-dual-stack-conversion.sh
800801
801802
- name: Runner Diagnostics
803+
if: always()
802804
uses: ./.github/actions/diagnostics
803805

804806
- name: Run Dual-Stack Tests
805807
run: |
806808
make -C test shard-test WHAT="Networking Granular Checks\|DualStack"
807809
808810
- name: Runner Diagnostics
811+
if: always()
809812
uses: ./.github/actions/diagnostics
810813

811814
- name: Run Dual-Stack Control-Plane Tests
812815
run: |
813816
make -C test control-plane WHAT="DualStack"
814817
815818
- name: Runner Diagnostics
819+
if: always()
816820
uses: ./.github/actions/diagnostics
817821

818822
- name: Export kind logs

contrib/kind-common

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -174,16 +174,16 @@ EOF
174174
# Override GOBIN until https://github.com/metallb/metallb/issues/2218 is fixed.
175175
GOBIN="" inv dev-env -n ovn -b frr -p bgp -i "${ip_family}"
176176

177-
docker network rm -f clientnet
178-
docker network create --subnet="${METALLB_CLIENT_NET_SUBNET_IPV4}" ${ipv6_network} --driver bridge clientnet
179-
docker network connect clientnet frr
177+
$OCI_BIN network rm -f clientnet
178+
$OCI_BIN network create --subnet="${METALLB_CLIENT_NET_SUBNET_IPV4}" ${ipv6_network} --driver bridge clientnet
179+
$OCI_BIN network connect clientnet frr
180180
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
181181
# Enable IPv6 forwarding in FRR
182-
docker exec frr sysctl -w net.ipv6.conf.all.forwarding=1
182+
$OCI_BIN exec frr sysctl -w net.ipv6.conf.all.forwarding=1
183183
fi
184184
# Note: this image let's us use it also for creating load balancer backends that can send big packets
185-
docker rm -f lbclient
186-
docker run --cap-add NET_ADMIN --user 0 -d --network clientnet --rm --name lbclient quay.io/itssurya/dev-images:metallb-lbservice
185+
$OCI_BIN rm -f lbclient
186+
$OCI_BIN run --cap-add NET_ADMIN --user 0 -d --network clientnet --rm --name lbclient quay.io/itssurya/dev-images:metallb-lbservice
187187
popd
188188
delete_metallb_dir
189189

@@ -197,18 +197,18 @@ EOF
197197
kubectl label node "$n" node.kubernetes.io/exclude-from-external-load-balancers-
198198
done
199199

200-
kind_network_v4=$(docker inspect -f '{{index .NetworkSettings.Networks "kind" "IPAddress"}}' frr)
200+
kind_network_v4=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.kind.IPAddress}}' frr)
201201
echo "FRR kind network IPv4: ${kind_network_v4}"
202-
kind_network_v6=$(docker inspect -f '{{index .NetworkSettings.Networks "kind" "GlobalIPv6Address"}}' frr)
202+
kind_network_v6=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.kind.GlobalIPv6Address}}' frr)
203203
echo "FRR kind network IPv6: ${kind_network_v6}"
204204
local client_network_v4 client_network_v6
205-
client_network_v4=$(docker inspect -f '{{index .NetworkSettings.Networks "clientnet" "IPAddress"}}' frr)
205+
client_network_v4=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.clientnet.IPAddress}}' frr)
206206
echo "FRR client network IPv4: ${client_network_v4}"
207-
client_network_v6=$(docker inspect -f '{{index .NetworkSettings.Networks "clientnet" "GlobalIPv6Address"}}' frr)
207+
client_network_v6=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.clientnet.GlobalIPv6Address}}' frr)
208208
echo "FRR client network IPv6: ${client_network_v6}"
209209

210210
local client_subnets
211-
client_subnets=$(docker network inspect clientnet -f '{{range .IPAM.Config}}{{.Subnet}}#{{end}}')
211+
client_subnets=$($OCI_BIN network inspect clientnet -f '{{range .IPAM.Config}}{{.Subnet}}#{{end}}')
212212
echo "${client_subnets}"
213213
local client_subnets_v4 client_subnets_v6
214214
client_subnets_v4=$(echo "${client_subnets}" | cut -d '#' -f 1)
@@ -219,21 +219,21 @@ EOF
219219
KIND_NODES=$(kind_get_nodes)
220220
for n in ${KIND_NODES}; do
221221
if [ "$PLATFORM_IPV4_SUPPORT" == true ]; then
222-
docker exec "${n}" ip route add "${client_subnets_v4}" via "${kind_network_v4}"
222+
$OCI_BIN exec "${n}" ip route add "${client_subnets_v4}" via "${kind_network_v4}"
223223
fi
224224
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
225-
docker exec "${n}" ip -6 route add "${client_subnets_v6}" via "${kind_network_v6}"
225+
$OCI_BIN exec "${n}" ip -6 route add "${client_subnets_v6}" via "${kind_network_v6}"
226226
fi
227227
done
228228

229229
# for now, we only run one test with metalLB load balancer for which this
230230
# one svcVIP (192.168.10.0/fc00:f853:ccd:e799::) is more than enough since at a time we will only
231231
# have one load balancer service
232232
if [ "$PLATFORM_IPV4_SUPPORT" == true ]; then
233-
docker exec lbclient ip route add 192.168.10.0 via "${client_network_v4}" dev eth0
233+
$OCI_BIN exec lbclient ip route add 192.168.10.0 via "${client_network_v4}" dev eth0
234234
fi
235235
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
236-
docker exec lbclient ip -6 route add fc00:f853:ccd:e799:: via "${client_network_v6}" dev eth0
236+
$OCI_BIN exec lbclient ip -6 route add fc00:f853:ccd:e799:: via "${client_network_v6}" dev eth0
237237
fi
238238
sleep 30
239239
}
@@ -254,14 +254,14 @@ install_plugins() {
254254
}
255255

256256
destroy_metallb() {
257-
if docker ps --format '{{.Names}}' | grep -Eq '^lbclient$'; then
258-
docker stop lbclient
257+
if $OCI_BIN ps --format '{{.Names}}' | grep -Eq '^lbclient$'; then
258+
$OCI_BIN stop lbclient
259259
fi
260-
if docker ps --format '{{.Names}}' | grep -Eq '^frr$'; then
261-
docker stop frr
260+
if $OCI_BIN ps --format '{{.Names}}' | grep -Eq '^frr$'; then
261+
$OCI_BIN stop frr
262262
fi
263-
if docker network ls --format '{{.Name}}' | grep -q '^clientnet$'; then
264-
docker network rm clientnet
263+
if $OCI_BIN network ls --format '{{.Name}}' | grep -q '^clientnet$'; then
264+
$OCI_BIN network rm clientnet
265265
fi
266266
delete_metallb_dir
267267
}
@@ -708,7 +708,7 @@ deploy_frr_external_container() {
708708
popd || exit 1
709709
if [ "$PLATFORM_IPV6_SUPPORT" == true ]; then
710710
# Enable IPv6 forwarding in FRR
711-
docker exec frr sysctl -w net.ipv6.conf.all.forwarding=1
711+
$OCI_BIN exec frr sysctl -w net.ipv6.conf.all.forwarding=1
712712
fi
713713
}
714714

@@ -735,40 +735,40 @@ deploy_bgp_external_server() {
735735
ip_family="ipv4"
736736
ipv6_network=""
737737
fi
738-
docker rm -f bgpserver
739-
docker network rm -f bgpnet
740-
docker network create --subnet="${BGP_SERVER_NET_SUBNET_IPV4}" ${ipv6_network} --driver bridge bgpnet
741-
docker network connect bgpnet frr
742-
docker run --cap-add NET_ADMIN --user 0 -d --network bgpnet --rm --name bgpserver -p 8080:8080 registry.k8s.io/e2e-test-images/agnhost:2.45 netexec
738+
$OCI_BIN rm -f bgpserver
739+
$OCI_BIN network rm -f bgpnet
740+
$OCI_BIN network create --subnet="${BGP_SERVER_NET_SUBNET_IPV4}" ${ipv6_network} --driver bridge bgpnet
741+
$OCI_BIN network connect bgpnet frr
742+
$OCI_BIN run --cap-add NET_ADMIN --user 0 -d --network bgpnet --rm --name bgpserver -p 8080:8080 registry.k8s.io/e2e-test-images/agnhost:2.45 netexec
743743
# let's make the bgp external server have its default route towards FRR router so that we don't need to add routes during tests back to the pods in the
744744
# cluster for return traffic
745745
local bgp_network_frr_v4 bgp_network_frr_v6
746-
bgp_network_frr_v4=$($OCI_BIN inspect -f '{{index .NetworkSettings.Networks "bgpnet" "IPAddress"}}' frr)
746+
bgp_network_frr_v4=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.bgpnet.IPAddress}}' frr)
747747
echo "FRR kind network IPv4: ${bgp_network_frr_v4}"
748748
$OCI_BIN exec bgpserver ip route replace default via "$bgp_network_frr_v4"
749749
if [ "$PLATFORM_IPV6_SUPPORT" == true ] ; then
750-
bgp_network_frr_v6=$($OCI_BIN inspect -f '{{index .NetworkSettings.Networks "bgpnet" "GlobalIPv6Address"}}' frr)
750+
bgp_network_frr_v6=$($OCI_BIN inspect -f '{{.NetworkSettings.Networks.bgpnet.GlobalIPv6Address}}' frr)
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
754754
# disable the default route to make sure the container only routes accross
755755
# directly connected or learnt networks (doing this at the very end since
756756
# 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
757+
$OCI_BIN exec frr ip route delete default
758+
$OCI_BIN exec frr ip route
759+
$OCI_BIN exec frr ip -6 route delete default
760+
$OCI_BIN exec frr ip -6 route
761761
}
762762

763763
destroy_bgp() {
764-
if docker ps --format '{{.Names}}' | grep -Eq '^bgpserver$'; then
765-
docker stop bgpserver
764+
if $OCI_BIN ps --format '{{.Names}}' | grep -Eq '^bgpserver$'; then
765+
$OCI_BIN stop bgpserver
766766
fi
767-
if docker ps --format '{{.Names}}' | grep -Eq '^frr$'; then
768-
docker stop frr
767+
if $OCI_BIN ps --format '{{.Names}}' | grep -Eq '^frr$'; then
768+
$OCI_BIN stop frr
769769
fi
770-
if docker network ls --format '{{.Name}}' | grep -q '^bgpnet$'; then
771-
docker network rm bgpnet
770+
if $OCI_BIN network ls --format '{{.Name}}' | grep -q '^bgpnet$'; then
771+
$OCI_BIN network rm bgpnet
772772
fi
773773
}
774774

@@ -807,7 +807,7 @@ install_ffr_k8s() {
807807
echo "Attempting to reach frr-k8s webhook"
808808
kind export kubeconfig --name ovn
809809
while true; do
810-
docker exec ovn-control-plane curl -ksS --connect-timeout 0.1 https://$(kubectl get svc -n frr-k8s-system frr-k8s-webhook-service -o jsonpath='{.spec.clusterIP}')
810+
$OCI_BIN exec ovn-control-plane curl -ksS --connect-timeout 0.1 https://$(kubectl get svc -n frr-k8s-system frr-k8s-webhook-service -o jsonpath='{.spec.clusterIP}')
811811
[ \$? -eq 0 ] && exit 0
812812
echo "Couldn't reach frr-k8s webhook, trying in 1s..."
813813
sleep 1s

0 commit comments

Comments
 (0)