Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
606bb1b
Add PodSecurity compliance to util.go
jechen0648 Jan 20, 2026
da48d2f
Remove IC zone migration HACK code
Jan 21, 2026
9de93f9
Fix IC cluster cleanup tests zone configuration
Jan 28, 2026
f4b5c46
Clear stale conntrack UDP entries for nodePorts
pliurh Aug 27, 2025
73fc27f
Add a e2e test for NodePort service
pliurh Sep 8, 2025
44e67f3
Add missing BGP support to kind-helm.sh
trozet Jan 26, 2026
293e4c4
Fix kind-helm.sh image
trozet Jan 26, 2026
6177218
Add shell extension to kind-common
trozet Jan 26, 2026
03ea9b3
Enable bgp helm lane
trozet Jan 26, 2026
8ce7a35
Add frr install to helm as well
trozet Jan 27, 2026
e4cae49
Consolidate BGP related params into kind-common.sh
trozet Jan 27, 2026
a73f5ed
Consolidate variables between kind-helm.sh and kind.sh
trozet Jan 27, 2026
e18ffe3
Remove stale methods from kind-helm.sh
trozet Jan 27, 2026
d3dac6f
conslidate delete function to kind-common.sh
trozet Jan 27, 2026
a409e9d
Add missing Get permissions for RA controller
trozet Jan 27, 2026
2eb5b23
Unify kind create cluster
trozet Jan 27, 2026
a51b52a
E2E skip mulihoming ipv6 and dualstack for ipv4
trozet Jan 27, 2026
feb1a9f
Unify checking depenencies between kind and kind-helm
trozet Jan 27, 2026
f2e8206
Align HA labeling and removing taints
trozet Jan 28, 2026
adbc698
UDN controller: Add EVPN configuration translation to NAD
mattedallo Dec 10, 2025
fab138f
UDN controller: Add cluster-wide VID allocation for EVPN
mattedallo Dec 15, 2025
0847f6e
UDN controller: Add VTEP validation for EVPN CUDNs
mattedallo Jan 19, 2026
7f841aa
UDN controller: Add EVPN feature flag gating
mattedallo Jan 27, 2026
82c1337
Fix race condition in GetNadNamespaces
kyrtapz Jan 29, 2026
f8f5302
Add EVPN support to RouteAdvertisements controller
kyrtapz Dec 17, 2025
923993b
RA controller: require EVPN feature flag for EVPN networks
kyrtapz Jan 30, 2026
e4cb76a
move mtu caculation out of loop
cathy-zhou Jan 7, 2026
c269a48
no OVS bridges on dpu-host
cathy-zhou Jan 7, 2026
ff0d528
Set always_learn_from_arp_request to false for cluster router
cathy-zhou Jan 8, 2026
0c0cb98
cleanup gateway manager only for primary network
cathy-zhou Jan 8, 2026
fcd4873
update node switch external-ids
cathy-zhou Jan 8, 2026
3cdf5cd
misc fixes
cathy-zhou Jan 8, 2026
28b6c2f
Fixes race with cluster manager UDN test
trozet Feb 2, 2026
23fa1c3
fix: panic in runKubeletRestartTracker when reading from closed dbus …
booxter Feb 2, 2026
0c9af24
Remove limit on ovs-node
jtaleric Feb 2, 2026
a4eb78c
Prevent restoration of k8s.ovn.org/egressip-mark annotation
arghosh93 Jan 22, 2026
a7fe7c2
Add ValidatingAdmissionPolicy for EgressIP
arghosh93 Nov 18, 2025
8e52cda
egressip: fix duplicate IP assignment on control-plane restart
cgoncalves Nov 27, 2025
250ff2c
parallelize multi-platform Docker image builds
Soli0222 Jan 15, 2026
1bc4ff2
use native arm64 runners instead of QEMU emulation
Soli0222 Jan 19, 2026
feae59d
enable fail-fast to prevent partial releases
Soli0222 Jan 19, 2026
fdace3b
no-overlay: Add no-overlay and managed BGP configuration options
pliurh Oct 23, 2025
43c8ade
no-overlay: Kind support for deploying no-overlay enabled clusters
pliurh Oct 24, 2025
cf63a49
no-overlay: Helm support for no-overlay enabeld clusters
pliurh Jan 23, 2026
746abb8
no-overlay: Set transport defaults and add validation
pliurh Oct 24, 2025
47e8d52
no-overlay: Implement no-overlay for the default network
pliurh Jan 23, 2026
621c007
no-overlay: add toReceive routes for pod subnets to FrrConfiguration
pliurh Dec 23, 2025
c7a2ec6
no-overlay: add CI test lanes
pliurh Nov 18, 2025
de6dd06
test: mark test IP as deprecated to prevent gateway IP selection
pliurh Dec 1, 2025
547a736
ANP: Skip redundant status updates to reduce API server load
tssurya Feb 4, 2026
a56ce44
e2e: Collect binaries for collected coredumps
booxter Feb 2, 2026
1e07472
Organize and add CUDN/UDN workloads
jtaleric Jan 28, 2026
87007d2
nodeallocator: fix subnet leak when hybrid overlay is enabled
Dec 11, 2025
30be4d4
EgressFirewall: Use exponential backoff to refresh IP addresses for D…
arkadeepsen Jan 21, 2026
7646173
Add gateway options for dpu in IC mode
crnithya Dec 11, 2025
05bf92a
Enable DPUs to watch on a separate DPU Host cluster
crnithya Dec 11, 2025
b508530
Enable interconnect and networksegmentation in DPU-Hosts podspec
crnithya Dec 11, 2025
b3e3b0b
Helm chart changes for supporing DPU in IC mode
crnithya Dec 12, 2025
0aa9858
Daemonset changes for supporting DPU in IC mode
crnithya Jan 12, 2026
c4c4e08
Documentation for launching DPU and DPU Host clusters
crnithya Jan 14, 2026
d6d9cde
Add ENABLE_NO_OVERLAY in dpu and dpu host helm charts
crnithya Feb 6, 2026
2137f4b
Move from chassis hostname -> chassis ID
trozet Feb 4, 2026
02731f8
Fix asynchronous race with nad controller UT
trozet Feb 9, 2026
a96e746
Fixes e2e sflow test
trozet Feb 10, 2026
7730da3
update test annotations
jluhrsen Feb 25, 2026
fb17f34
make new tests informing by default
jluhrsen Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 206 additions & 18 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,24 @@ env:
UBUNTU_IMAGE_NAME: ovn-kube-ubuntu
BUILDER_IMAGE: quay.io/projectquay/golang:1.24
jobs:
build:
name: Build Images
runs-on: ubuntu-latest
# Build Fedora image for each platform
build-fedora:
name: Build Fedora (${{ matrix.platform }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: true
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV

- name: Check out code into the Go module directory
uses: actions/checkout@v4

Expand All @@ -39,8 +53,8 @@ jobs:
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up environment
run: |
export GOPATH=$(go env GOPATH)
Expand All @@ -64,23 +78,19 @@ jobs:
pushd dist/images
echo "ref: ${BRANCH} commit: ${COMMIT}" > git_info
popd

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Extract metadata (tags, labels) for fedora ovn-k image
id: meta-fedora
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.FEDORA_IMAGE_NAME }}

- name: Build and push Fedora based Docker image
id: build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
Expand All @@ -89,23 +99,201 @@ jobs:
push: true
build-args: |
BUILDER_IMAGE=${{ env.BUILDER_IMAGE }}
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta-fedora.outputs.tags }}
labels: ${{ steps.meta-fedora.outputs.labels }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=fedora-${{ env.PLATFORM_PAIR }}
cache-to: type=gha,mode=max,scope=fedora-${{ env.PLATFORM_PAIR }}
outputs: type=image,name=${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.FEDORA_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-fedora-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

# Merge Fedora multi-platform images
merge-fedora:
name: Merge Fedora
runs-on: ubuntu-latest
needs: build-fedora
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-fedora-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to the GH Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for fedora ovn-k image
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.FEDORA_IMAGE_NAME }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.FEDORA_IMAGE_NAME }}@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.FEDORA_IMAGE_NAME }}:${{ steps.meta.outputs.version }}

# Build Ubuntu image for each platform
build-ubuntu:
name: Build Ubuntu (${{ matrix.platform }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: true
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV

- name: Check out code into the Go module directory
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go-controller/go.mod'
# Disabling cache to avoid warnings until these two issues are fixed
# https://github.com/actions/setup-go/issues/424
# https://github.com/actions/setup-go/issues/403
# cache-dependency-path: "**/*.sum"
cache: false
id: go

- name: Log in to the GH Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up environment
run: |
export GOPATH=$(go env GOPATH)
echo "GOPATH=$GOPATH" >> $GITHUB_ENV
echo "$GOPATH/bin" >> $GITHUB_PATH

- name: Build ovnkube-binaries copy to context
run: |
pushd go-controller
make
popd

pushd dist/images
cp -r ../../go-controller/_output/go/bin/* .
popd

- name: Generate git-info to write to image
run: |
BRANCH=$(git rev-parse --short "$GITHUB_SHA")
COMMIT=$(git rev-parse HEAD)
pushd dist/images
echo "ref: ${BRANCH} commit: ${COMMIT}" > git_info
popd

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Extract metadata (tags, labels) for ubuntu ovn-k image
id: meta-ubuntu
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.UBUNTU_IMAGE_NAME }}

- name: Build and push Ubuntu based Docker image
id: build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./dist/images
file: ./dist/images/Dockerfile.ubuntu
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta-ubuntu.outputs.tags }}
labels: ${{ steps.meta-ubuntu.outputs.labels }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=ubuntu-${{ env.PLATFORM_PAIR }}
cache-to: type=gha,mode=max,scope=ubuntu-${{ env.PLATFORM_PAIR }}
outputs: type=image,name=${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.UBUNTU_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-ubuntu-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

# Merge Ubuntu multi-platform images
merge-ubuntu:
name: Merge Ubuntu
runs-on: ubuntu-latest
needs: build-ubuntu
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-ubuntu-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to the GH Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for ubuntu ovn-k image
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.UBUNTU_IMAGE_NAME }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.UBUNTU_IMAGE_NAME }}@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ env.REPOSITORY }}/${{ env.UBUNTU_IMAGE_NAME }}:${{ steps.meta.outputs.version }}
Loading