Scheduled E2E #654
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Scheduled E2E | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "40 16 * * *" | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: true | |
env: | |
GO_VERSION: '' | |
KIND_VERSION: v0.23.0 | |
HELM_VERSION: v3.14.4 | |
SUBMARINER_VERSION: '0.17.1' | |
jobs: | |
k8s-conformance-e2e: | |
name: Kubernetes Conformance E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 60 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
ip-family: | |
- ipv4 | |
- ipv6 | |
- dual | |
mode: | |
- overlay | |
- underlay | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove DNS search domain | |
run: | | |
sudo sed -i '/^search/d' /etc/resolv.conf | |
sudo systemctl restart docker | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-${{ matrix.ip-family }} | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-${{ matrix.mode }}-${{ matrix.ip-family }} | |
- name: Run E2E | |
env: | |
E2E_BRANCH: ${{ matrix.branch }} | |
E2E_IP_FAMILY: ${{ matrix.ip-family }} | |
E2E_NETWORK_MODE: ${{ matrix.mode }} | |
run: make k8s-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
k8s-netpol-e2e: | |
name: Kubernetes Network Policy E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 90 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
ip-family: | |
- ipv4 | |
- ipv6 | |
- dual | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove DNS search domain | |
run: | | |
sudo sed -i '/^search/d' /etc/resolv.conf | |
sudo systemctl restart docker | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-${{ matrix.ip-family }} | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-${{ matrix.ip-family }} | |
- name: Run E2E | |
run: make k8s-netpol-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
cyclonus-netpol-e2e: | |
name: Cyclonus Network Policy E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
ip-family: | |
- ipv4 | |
- ipv6 | |
- dual | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove DNS search domain | |
run: | | |
sudo sed -i '/^search/d' /etc/resolv.conf | |
sudo systemctl restart docker | |
- name: Create branch directory | |
run: mkdir -p test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-${{ matrix.ip-family }} | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-${{ matrix.ip-family }} | |
- name: Run E2E | |
run: make cyclonus-netpol-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
kube-ovn-conformance-e2e: | |
name: Kube-OVN Conformance E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 40 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
- release-1.12-mc | |
ip-family: | |
- ipv4 | |
- ipv6 | |
- dual | |
mode: | |
- overlay | |
- underlay | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-${{ matrix.ip-family }} | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-${{ matrix.mode }}-${{ matrix.ip-family }} | |
- name: Run E2E | |
env: | |
E2E_BRANCH: ${{ matrix.branch }} | |
E2E_IP_FAMILY: ${{ matrix.ip-family }} | |
E2E_NETWORK_MODE: ${{ matrix.mode }} | |
run: make kube-ovn-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
kube-ovn-ic-conformance-e2e: | |
name: Kube-OVN IC Conformance E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-ovn-ic | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-ovn-ic | |
- name: Run E2E | |
env: | |
E2E_BRANCH: ${{ matrix.branch }} | |
run: make kube-ovn-ic-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
underlay-logical-gateway-installation-test: | |
name: Underlay Logical Gateway Installation Test | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-dual | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-underlay-logical-gateway-dual | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
no-ovn-lb-test: | |
name: Disable OVN LB Test | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN without LoadBalancer | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
env: | |
ENABLE_LB: "false" | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
no-np-test: | |
name: Disable Network Policy Test | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
env: | |
ENABLE_NP: "false" | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
lb-svc-e2e: | |
name: LB Service E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
- release-1.12-mc | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Multus and Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
docker pull kubeovn/vpc-nat-gateway:$version | |
VERSION=$version make kind-install-lb-svc | |
- name: Run E2E | |
run: make kube-ovn-lb-svc-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: make check-kube-ovn-pod-restarts | |
kubevirt-e2e: | |
name: Kubevirt VM E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.12-mc | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install | |
VERSION=$version make kind-install-kubevirt | |
- name: Run E2E | |
run: make kube-ovn-kubevirt-e2e | |
- name: Check kube ovn pod restarts | |
run: make check-kube-ovn-pod-restarts | |
webhook-e2e: | |
name: Webhook E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-webhook | |
- name: Run E2E | |
run: make kube-ovn-webhook-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
installation-compatibility-test: | |
name: Installation Compatibility Test | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Create kind cluster | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH k8s_version=v1.23.13 make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install | |
- name: Check kube ovn pod restarts | |
run: make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
cilium-chaining-e2e: | |
name: Cilium Chaining E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azure/[email protected] | |
with: | |
version: '${{ env.HELM_VERSION }}' | |
- name: Remove DNS search domain | |
run: | | |
sudo sed -i '/^search/d' /etc/resolv.conf | |
sudo systemctl restart docker | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-cilium-chaining || \ | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN with Cilium chaining | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-cilium-chaining | |
- name: Run E2E | |
env: | |
E2E_CILIUM_CHAINING: "true" | |
run: make k8s-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
kube-ovn-ha-e2e: | |
name: Kube-OVN HA E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.11 | |
- release-1.12-mc | |
ssl: | |
- "true" | |
- "false" | |
bind-local: | |
- "true" | |
- "false" | |
ip-family: | |
- ipv4 | |
- ipv6 | |
- dual | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-ha-${{ matrix.ip-family }} | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
sudo VERSION=$version ENABLE_SSL=${{ matrix.ssl }} \ | |
ENABLE_BIND_LOCAL_IP=${{ matrix.bind-local }} \ | |
make kind-install-${{ matrix.ip-family }} | |
- name: Run E2E | |
env: | |
E2E_BRANCH: ${{ matrix.branch }} | |
E2E_IP_FAMILY: ${{ matrix.ip-family }} | |
run: | | |
make kube-ovn-security-e2e | |
make kube-ovn-ha-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
run: sh dist/images/cleanup.sh | |
chart-upgrade-e2e: | |
name: Chart Upgrade E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
case: | |
- release-1.11 => release-1.12 | |
- release-1.11 => master | |
- release-1.12 => master | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azure/[email protected] | |
with: | |
version: '${{ env.HELM_VERSION }}' | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Parse versions | |
run: | | |
version_from=$(echo '${{ matrix.case }}' | awk '{print $1}') | |
version_to=$(echo '${{ matrix.case }}' | awk '{print $3}') | |
echo "VERSION_FROM=$version_from" >> "$GITHUB_ENV" | |
echo "VERSION_TO=$version_to" >> "$GITHUB_ENV" | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.VERSION_FROM }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ env.VERSION_FROM }} | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.VERSION_TO }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ env.VERSION_TO }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
working-directory: ${{ env.E2E_DIR }} | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-ha | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ env.VERSION_FROM }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-chart | |
- name: Upgrade Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ env.VERSION_TO }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-upgrade-chart | |
- name: Run E2E | |
env: | |
E2E_BRANCH: ${{ env.VERSION_TO }} | |
run: make k8s-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ env.VERSION_TO }} | |
run: sh dist/images/cleanup.sh | |
kube-ovn-submariner-conformance-e2e: | |
name: Kube-OVN Submariner Conformance E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install submariner subctl | |
env: | |
VERSION: v${{ env.SUBMARINER_VERSION }} | |
DESTDIR: /usr/local/bin | |
run: curl -Ls https://get.submariner.io | bash | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init-ovn-submariner | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install-ovn-submariner | |
- name: Run E2E | |
run: make kube-ovn-submariner-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
- name: Cleanup | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: sh dist/images/cleanup.sh | |
iptables-vpc-nat-gw-conformance-e2e: | |
name: Iptables VPC NAT Gateway E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN with VPC NAT gateway enabled | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
docker pull kubeovn/vpc-nat-gateway:$version | |
VERSION=$version make kind-install-vpc-nat-gw | |
- name: Run E2E | |
run: make iptables-vpc-nat-gw-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts | |
ovn-vpc-nat-gw-conformance-e2e: | |
name: OVN VPC NAT Gateway E2E | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
branch: | |
- master | |
- release-1.12 | |
- release-1.12-mc | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION || '' }} | |
go-version-file: go.mod | |
check-latest: true | |
cache: false | |
- name: Export Go full version | |
run: echo "GO_FULL_VER=$(go env GOVERSION)" >> "$GITHUB_ENV" | |
- name: Go cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86-${{ hashFiles('**/go.sum') }} | |
restore-keys: ${{ runner.os }}-e2e-${{ env.GO_FULL_VER }}-x86- | |
- name: Create branch directory | |
run: mkdir -p test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Check out branch | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
fetch-depth: 1 | |
path: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
- name: Install kind | |
uses: helm/[email protected] | |
with: | |
version: ${{ env.KIND_VERSION }} | |
install_only: true | |
- name: Install ginkgo | |
run: go install -v -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install jinjanator j2cli | |
sudo PATH=~/.local/bin:$PATH make kind-init | |
sudo cp -r /root/.kube/ ~/.kube/ | |
sudo chown -R $(id -un). ~/.kube/ | |
- name: Install Kube-OVN | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
version=$(grep -E '^VERSION="v([0-9]+\.){2}[0-9]+"$' dist/images/install.sh | head -n1 | awk -F= '{print $2}' | tr -d '"') | |
docker pull kubeovn/kube-ovn:$version | |
VERSION=$version make kind-install | |
- name: Run E2E | |
run: make ovn-vpc-nat-gw-conformance-e2e | |
- name: Check kube ovn pod restarts | |
run: | | |
make check-kube-ovn-pod-restarts |