On 12/20/22 16:30, Dumitru Ceara wrote:
One example is to allow us to change the ovn-kubernetes code that
decides what e2e tests are run. That's needed on older stable branches
that don't support all the features that newer OVN versions do.
Currently, on the main branch, there's no custom change required but on
older branches (branch-22.09 -> branch-22.03) the affinity timeout
related tests should be disabled because the OVN feature didn't exist
there. An upcoming patch does that.
Signed-off-by: Dumitru Ceara <[email protected]>
---
.ci/ovn-kubernetes/Dockerfile | 10 +++++++++-
.ci/ovn-kubernetes/custom.patch | 0
.ci/ovn-kubernetes/prepare.sh | 20 ++++++++++++++++++++
.github/workflows/ovn-kubernetes.yml | 7 +++++++
Makefile.am | 2 ++
5 files changed, 38 insertions(+), 1 deletion(-)
create mode 100644 .ci/ovn-kubernetes/custom.patch
create mode 100755 .ci/ovn-kubernetes/prepare.sh
diff --git a/.ci/ovn-kubernetes/Dockerfile
b/.ci/ovn-kubernetes/Dockerfile
index e74b620be8..7edf86a13a 100644
--- a/.ci/ovn-kubernetes/Dockerfile
+++ b/.ci/ovn-kubernetes/Dockerfile
@@ -47,9 +47,17 @@ RUN GO111MODULE=on go install
github.com/ovn-org/libovsdb/cmd/modelgen@${LIBOVSD
<http://github.com/ovn-org/libovsdb/cmd/modelgen@$%7BLIBOVSD>
# Clone OVN Kubernetes and build the binary based on the commit passed
as argument
WORKDIR /root
RUN git clone https://github.com/ovn-org/ovn-kubernetes.git
-WORKDIR /root/ovn-kubernetes/go-controller
+WORKDIR /root/ovn-kubernetes
RUN git checkout ${OVNKUBE_COMMIT} && git log -n 1
+# Copy the ovn-kubernetes scripts from the OVN sources and apply any
+# custom changes if needed.
+RUN mkdir -p /tmp/ovn/.ci/ovn-kubernetes
+COPY .ci/ovn-kubernetes /tmp/ovn/.ci/ovn-kubernetes
+WORKDIR /tmp/ovn
+RUN .ci/ovn-kubernetes/prepare.sh /root/ovn-kubernetes
+
+WORKDIR /root/ovn-kubernetes/go-controller
# Make sure we use the OVN NB/SB schema from the local code.
COPY --from=ovnbuilder /tmp/ovn/ovn-nb.ovsschema
pkg/nbdb/ovn-nb.ovsschema
COPY --from=ovnbuilder /tmp/ovn/ovn-sb.ovsschema
pkg/sbdb/ovn-sb.ovsschema
diff --git a/.ci/ovn-kubernetes/custom.patch
b/.ci/ovn-kubernetes/custom.patch
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/.ci/ovn-kubernetes/prepare.sh
b/.ci/ovn-kubernetes/prepare.sh
new file mode 100755
index 0000000000..8fc9652afd
--- /dev/null
+++ b/.ci/ovn-kubernetes/prepare.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+set -ev
+
+ovnk8s_path=$1
+topdir=$PWD
+
+pushd ${ovnk8s_path}
+
+# Add here any custom operations that need to performed on the
+# ovn-kubernetes cloned repo, e.g., custom patches.
+
+# git apply --allow-empty is too new so not all git versions from major
+# distros support it, just check if the custom patch file is not empty
+# before applying it.
+[ -s ${topdir}/.ci/ovn-kubernetes/custom.patch ] && \
+ git apply -v ${topdir}/.ci/ovn-kubernetes/custom.patch
+
+popd # ${ovnk8s_path}
+exit 0
diff --git a/.github/workflows/ovn-kubernetes.yml
b/.github/workflows/ovn-kubernetes.yml
index 344937e53a..070d96bcb3 100644
--- a/.github/workflows/ovn-kubernetes.yml
+++ b/.github/workflows/ovn-kubernetes.yml
@@ -91,12 +91,19 @@ jobs:
go-version: ${{ env.GO_VERSION }}
id: go
+ - name: Check out ovn
+ uses: actions/checkout@v2
+
This should be actions/checkout@v3, I will fix it in v2 after v1 gets
some review time.
- name: Check out ovn-kubernetes
uses: actions/checkout@v3
with:
path: src/github.com/ovn-org/ovn-kubernetes
repository: ovn-org/ovn-kubernetes
+ - name: Prepare
+ run: |
+ .ci/ovn-kubernetes/prepare.sh src/
github.com/ovn-org/ovn-kubernetes
+
- name: Set up environment
run: |
export GOPATH=$(go env GOPATH)
diff --git a/Makefile.am b/Makefile.am
index 3b0df83938..8c60d4a719 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -91,6 +91,8 @@ EXTRA_DIST = \
.ci/osx-build.sh \
.ci/osx-prepare.sh \
.ci/ovn-kubernetes/Dockerfile \
+ .ci/ovn-kubernetes/prepare.sh \
+ .ci/ovn-kubernetes/custom.patch \
.github/workflows/test.yml \
.github/workflows/ovn-kubernetes.yml \
boot.sh \
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev