Skip to content

Commit

Permalink
adding CNCF runner
Browse files Browse the repository at this point in the history
Signed-off-by: KMAnju-2021 <[email protected]>
  • Loading branch information
KMAnju-2021 committed Jan 22, 2025
1 parent 5ee28ec commit 8cad832
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 1 deletion.
61 changes: 61 additions & 0 deletions .github/workflows/kind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,67 @@ jobs:
path: log.tar.gz
retention-days: 30

test-e2e-ipam-feature-enabled:
name: E2e tests on a Kind cluster on Linux with FlexibleIPAM feature enabled
needs: [build-antrea-coverage-image]
runs-on: [ubuntu-latest-4-cores]
steps:
- uses: actions/checkout@v4
with:
show-progress: false
- uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- name: Download Antrea image from previous job
uses: actions/download-artifact@v4
with:
name: antrea-ubuntu-cov
- name: Load Antrea image
run: |
docker load -i antrea-ubuntu.tar
- name: Install Kind
run: |
KIND_VERSION=$(head -n1 ./ci/kind/version)
curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-$(uname)-amd64
chmod +x ./kind
sudo mv kind /usr/local/bin
- name: Run ipam e2e tests
run: |
mkdir log
mkdir test-ipam-e2e-coverage
ANTREA_LOG_DIR=$PWD/log ANTREA_COV_DIR=$PWD/test-ipam-e2e-coverage ./ci/kind/test-e2e-kind.sh \
--encap-mode noEncap \
--coverage \
--flexible-ipam
- name: Tar coverage files
run: tar -czf test-ipam-e2e-coverage.tar.gz test-ipam-e2e-coverage
- name: Upload coverage for test-ipam-e2e-coverage
uses: actions/upload-artifact@v4
with:
name: test-ipam-e2e-coverage
path: test-ipam-e2e-coverage.tar.gz
retention-days: 30
- name: Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: '*.cov.out*'
disable_search: true
flags: kind-e2e-tests
name: test-ipam-e2e-coverage
directory: test-ipam-e2e-coverage
fail_ci_if_error: ${{ github.event_name == 'push' }}
- name: Tar log files
if: ${{ failure() }}
run: tar -czf log.tar.gz log
- name: Upload test log
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: e2e-kind-ipam-features-enabled.tar.gz
path: log.tar.gz
retention-days: 30

test-e2e-noencap:
name: E2e tests on a Kind cluster on Linux (noEncap)
needs: [build-antrea-coverage-image]
Expand Down
26 changes: 25 additions & 1 deletion ci/kind/kind-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,19 @@ function configure_vlan_subnets {
docker_run_with_host_net iptables -t filter -A FORWARD -i ${vlan_interfaces[j]} -o ${vlan_interfaces[i]} -j ACCEPT
done
done

# Adding ipset rules to prevent SNAT based on flexibleIPAM e2e tests
if [[ $FLEXIBLE_IPAM == true ]]; then
docker_run_with_host_net ipset create excluded_subnets hash:net
docker_run_with_host_net ipset add excluded_subnets 192.168.241.0/24
docker_run_with_host_net ipset add excluded_subnets 192.168.242.0/24
docker_run_with_host_net ipset add excluded_subnets 192.168.240.0/24
docker_run_with_host_net ipset list excluded_subnets

docker_run_with_host_net iptables -t nat -I POSTROUTING 1 ! -o $bridge_interface -s 192.168.240.0/24 -m set ! --match-set excluded_subnets dst -j MASQUERADE
docker_run_with_host_net iptables -t nat -A POSTROUTING ! -o $bridge_interface -s 10.244.0.0/16 -m set ! --match-set excluded_subnets dst -j MASQUERADE
fi

}

function delete_vlan_subnets {
Expand Down Expand Up @@ -327,6 +340,13 @@ function delete_networks {
docker network rm $networks > /dev/null 2>&1
echo "deleted networks $networks"
fi

if [[ $FLEXIBLE_IPAM == true ]]; then
networks=$(docker network ls -f name=kind --format '{{.Name}}')
networks="$(echo $networks)"
docker network rm $networks > /dev/null 2>&1
echo "deleted networks $networks"
fi
}

function load_images {
Expand Down Expand Up @@ -711,7 +731,6 @@ if [[ $ACTION == "destroy" ]]; then
exit
fi


kind_version=$(kind version | awk '{print $2}')
kind_version=${kind_version:1} # strip leading 'v'
function version_lt() { test "$(printf '%s\n' "$@" | sort -rV | head -n 1)" != "$1"; }
Expand All @@ -728,5 +747,10 @@ if [[ $ACTION == "create" ]]; then
echoerr "Only one of '--subnets' and '--extra-networks' can be specified"
exit 1
fi

# To run FlexibleIPAM e2e tests, kind network should be in 192.168.240.0/24 subnet.
if [[ $FLEXIBLE_IPAM == true ]]; then
docker network create -d bridge --subnet 192.168.240.0/24 kind
fi
create
fi
26 changes: 26 additions & 0 deletions ci/kind/test-e2e-kind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ setup_only=false
cleanup_only=false
test_only=false
run=""
flexible_ipam=false
antrea_controller_image="antrea/antrea-controller-ubuntu"
antrea_agent_image="antrea/antrea-agent-ubuntu"
use_non_default_images=false
Expand All @@ -110,6 +111,10 @@ case $key in
proxy_all=true
shift
;;
--flexible-ipam)
flexible_ipam=true
shift
;;
--no-kube-proxy)
no_kube_proxy=true
shift
Expand Down Expand Up @@ -249,6 +254,10 @@ if $flow_visibility; then
manifest_args="$manifest_args --feature-gates FlowExporter=true,L7FlowExporter=true --extra-helm-values-file $FLOW_VISIBILITY_HELM_VALUES"
fi

if $flexible_ipam; then
manifest_args="$manifest_args --flexible-ipam"
fi

COMMON_IMAGES_LIST=("registry.k8s.io/e2e-test-images/agnhost:2.40" \
"antrea/nginx:1.21.6-alpine" \
"antrea/toolbox:1.5-1")
Expand Down Expand Up @@ -302,6 +311,10 @@ if $extra_vlan; then
fi
fi

if $flexible_ipam; then
vlan_args="$vlan_args --vlan-subnets 11=192.168.241.1/24 --vlan-subnets 12=192.168.242.1/24"
fi

function setup_cluster {
args=$1

Expand Down Expand Up @@ -330,6 +343,10 @@ function setup_cluster {
fi

echo "creating test bed with args $args"
if $flexible_ipam; then
TESTBED_CMD="$TESTBED_CMD --flexible-ipam"
fi

eval "timeout 600 $TESTBED_CMD create kind $args"
}

Expand All @@ -353,6 +370,10 @@ function run_test {
timeout="75m"
fi

if $flexible_ipam; then
$YML_CMD --flexible-ipam --multicast --encap-mode $current_mode $manifest_args | docker exec -i kind-control-plane dd of=/root/antrea.yml
fi

if $flow_visibility; then
timeout="30m"
flow_visibility_args="-run=TestFlowAggregator --flow-visibility"
Expand Down Expand Up @@ -401,6 +422,11 @@ function run_test {
EXTRA_ARGS="$EXTRA_ARGS --external-frr-cid $external_frr_cid --external-frr-ips $external_frr_ips"
fi

if $flexible_ipam; then
EXTRA_ARGS="$EXTRA_ARGS --antrea-ipam"
timeout="100m"
fi

go test -v -timeout=$timeout $RUN_OPT antrea.io/antrea/test/e2e $flow_visibility_args -provider=kind --logs-export-dir=$ANTREA_LOG_DIR $np_evaluation_flag --skip-cases=$skiplist $coverage_args $EXTRA_ARGS

if $coverage; then
Expand Down

0 comments on commit 8cad832

Please sign in to comment.