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
>  # 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

Reply via email to