Scheduled E2E #407
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: '' | |
HELM_VERSION: v3.14.0 | |
SUBMARINER_VERSION: '0.16.3' | |
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 | |
- release-1.9 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 | |
- release-1.9 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 | |
- release-1.9 | |
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: v0.20.0 | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/k8s-network/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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.9 | |
- 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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 | |
- release-1.9 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 | |
- release-1.9 | |
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: v0.20.0 | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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 | |
- release-1.9 | |
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: v0.20.0 | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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 | |
- release-1.9 | |
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: v0.20.0 | |
install_only: true | |
- name: Create kind cluster | |
working-directory: test/e2e/kube-ovn/branches/${{ matrix.branch }} | |
run: | | |
sudo pip3 install j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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-kubevirt | |
- name: Run E2E | |
run: make kube-ovn-kubevirt-e2e | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 | |
- release-1.9 | |
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: v0.20.0 | |
install_only: true | |
- name: Create kind cluster | |
run: | | |
sudo pip3 install j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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 | |
- release-1.9 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azure/setup-helm@v3 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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.9 | |
- 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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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.9 => release-1.11 | |
- release-1.9 => release-1.12 | |
- release-1.9 => master | |
- release-1.11 => release-1.12 | |
- release-1.11 => master | |
- release-1.12 => master | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azure/setup-helm@v3 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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: 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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 | |
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 version | awk '{print $3}')" >> "$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: v0.20.0 | |
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 j2cli | |
sudo pip3 install "j2cli[yaml]" | |
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 |