From 94489ef5f867941c6d7c8fe165f59db3c0bbe7d1 Mon Sep 17 00:00:00 2001 From: Alejandro Pedraza Date: Thu, 14 Mar 2024 09:51:57 -0500 Subject: [PATCH] matrix test for legacy/nft --- .github/workflows/cni-plugin-integration.yml | 29 +++++-------------- .../manifests/calico/linkerd-cni.yaml | 2 +- .../manifests/cilium/linkerd-cni.yaml | 2 +- .../manifests/flannel/linkerd-cni.yaml | 2 +- cni-plugin/integration/run.sh | 8 +++-- 5 files changed, 16 insertions(+), 27 deletions(-) diff --git a/.github/workflows/cni-plugin-integration.yml b/.github/workflows/cni-plugin-integration.yml index 4e80b8e4..d08c7826 100644 --- a/.github/workflows/cni-plugin-integration.yml +++ b/.github/workflows/cni-plugin-integration.yml @@ -12,33 +12,20 @@ on: - justfile* jobs: - cni-flannel-test: - continue-on-error: true - timeout-minutes: 15 - runs-on: ubuntu-latest - steps: - - uses: linkerd/dev/actions/setup-tools@v43 - - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 - - name: Run CNI integration tests - run: just cni-plugin-test-integration-flannel - cni-calico-test: - continue-on-error: true - timeout-minutes: 15 - runs-on: ubuntu-latest - steps: - - uses: linkerd/dev/actions/setup-tools@v43 - - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 - - name: Run CNI integration tests - run: just cni-plugin-test-integration-calico - cni-cilium-test: - continue-on-error: true + cni-test: + strategy: + matrix: + cni: [flannel, calico, cilium] + iptables-mode: [legacy, nft] timeout-minutes: 15 runs-on: ubuntu-latest steps: - uses: linkerd/dev/actions/setup-tools@v43 - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 - name: Run CNI integration tests - run: just cni-plugin-test-integration-cilium + env: + IPTABLES_MODE: ${{ matrix.iptables-mode }} + run: just cni-plugin-test-integration-${{ matrix.cni }} ordering-test: continue-on-error: true timeout-minutes: 15 diff --git a/cni-plugin/integration/manifests/calico/linkerd-cni.yaml b/cni-plugin/integration/manifests/calico/linkerd-cni.yaml index df861381..ec009421 100644 --- a/cni-plugin/integration/manifests/calico/linkerd-cni.yaml +++ b/cni-plugin/integration/manifests/calico/linkerd-cni.yaml @@ -81,7 +81,7 @@ data: "inbound-ports-to-ignore": ["4191","4190"], "simulate": false, "use-wait-flag": false, - "iptables-mode": "legacy", + "iptables-mode": "$IPTABLES_MODE", "ipv6": true } } diff --git a/cni-plugin/integration/manifests/cilium/linkerd-cni.yaml b/cni-plugin/integration/manifests/cilium/linkerd-cni.yaml index df861381..ec009421 100644 --- a/cni-plugin/integration/manifests/cilium/linkerd-cni.yaml +++ b/cni-plugin/integration/manifests/cilium/linkerd-cni.yaml @@ -81,7 +81,7 @@ data: "inbound-ports-to-ignore": ["4191","4190"], "simulate": false, "use-wait-flag": false, - "iptables-mode": "legacy", + "iptables-mode": "$IPTABLES_MODE", "ipv6": true } } diff --git a/cni-plugin/integration/manifests/flannel/linkerd-cni.yaml b/cni-plugin/integration/manifests/flannel/linkerd-cni.yaml index d7216f4d..3774ca7a 100644 --- a/cni-plugin/integration/manifests/flannel/linkerd-cni.yaml +++ b/cni-plugin/integration/manifests/flannel/linkerd-cni.yaml @@ -85,7 +85,7 @@ data: "inbound-ports-to-ignore": ["4191","4190"], "simulate": false, "use-wait-flag": false, - "iptables-mode": "legacy", + "iptables-mode": "$IPTABLES_MODE", "ipv6": true } } diff --git a/cni-plugin/integration/run.sh b/cni-plugin/integration/run.sh index 29414462..3b51339a 100755 --- a/cni-plugin/integration/run.sh +++ b/cni-plugin/integration/run.sh @@ -4,9 +4,8 @@ set -euxo pipefail cd "${BASH_SOURCE[0]%/*}" -# Integration tests to run. Scenario is passed in as an environment variable. -# Default is 'flannel' SCENARIO=${CNI_TEST_SCENARIO:-flannel} +IPTABLES_MODE=${IPTABLES_MODE:-legacy} # Run kubectl with the correct context. function k() { @@ -25,7 +24,10 @@ function create_test_lab() { # can enable a testing matrix? # Apply all files in scenario directory. For non-flannel CNIs, this will # include the CNI manifest itself. - k apply -f "manifests/$SCENARIO/" + for f in ./manifests/"$SCENARIO"/*.yaml + do + envsubst < "$f" | k apply -f - + done } function cleanup() {