Skip to main content
Version: v1.0.0

Test

E2E Tests

meridio-e2e-kind-meridio

meridio-e2e-kind-tapa

meridio-e2e-kind-nsm

meridio-e2e-kind-ip-family

meridio-e2e-kind-kubernetes

(These reports are for the last 1000 test runs only)

Environment / Framework

Initial Deployment

The picture below shows the initial deployment that should be installed in a kubernetes cluster in order to execute the complete e2e test suite in dualstack. With only IPv4, elements containing v6 are not used, and with only IPv6, elements containing v4 are not used. Elements between [] are configurable via parameters, see the Configuration section.

Initial-Deployment-E2E

Configuration

NameTypeDescription
traffic-generator-cmdstringCommand to use to connect to the traffic generator. All occurences of '{trench}' will be replaced with the trench name.
scriptstringPath + script used by the e2e tests
skipstringSkip specific tests
focusstringFocus on specific tests
log-collector-enabledboolIs log collector enabled
k8s-namespacestringName of the namespace
target-a-deployment-namestringName of the target deployment
trench-astringName of the trench
attractor-a-1stringName of the attractor
conduit-a-1stringName of the conduit
stream-a-IstringName of the stream
stream-a-IIstringName of the stream
flow-a-z-tcpstringName of the flow
flow-a-z-tcp-destination-port-0intDestination port 0
flow-a-z-udpstringName of the flow
flow-a-z-udp-destination-port-0intDestination port 0
flow-a-x-tcpstringName of the flow
flow-a-x-tcp-destination-port-0intDestination port 0
vip-1-v4stringAddress of the vip v4 number 1
vip-1-v6stringAddress of the vip v6 number 1
target-b-deployment-namestringName of the target deployment
trench-bstringName of the trench
conduit-b-1stringName of the conduit
stream-b-IstringName of the stream
vip-2-v4stringAddress of the vip v4 number 2
vip-2-v6stringAddress of the vip v6 number 2
stateless-lb-fe-deployment-name-attractor-a-1stringName of stateless-lb-fe deployment in attractor-a-1
stateless-lb-fe-deployment-name-attractor-b-1stringName of stateless-lb-fe deployment in attractor-b-1
ip-familystringIP Family

For more details about each parameter, check the picture above in the Initial Deployment section.

Script

A bash script file must be passed as parameter of the e2e tests. The script is required to allowed the e2e tests to be run in every environment (Helm/Operator deployement...). The following functions has to be implemented in the script:

NameDescription
init () errorExecuted once before running the tests
end () errorExecuted once after running the tests
on_failure () errorExecuted on failure
configuration_new_vip () errorExecuted just before running the new-vip test
configuration_new_vip_revert () errorExecuted just after running the new-vip test

List of tests

NameTypeDescription
TCP-IPv4IngressTrafficSend TCP traffic in trench-a with vip-1-v4 as destination IP and flow-a-z-tcp-destination-port-0 as destination port
TCP-IPv6IngressTrafficSend TCP traffic in trench-a with vip-1-v6 as destination IP and flow-a-z-tcp-destination-port-0 as destination port
UDP-IPv4IngressTrafficSend UDP traffic in trench-a with vip-1-v4 as destination IP and flow-a-z-udp-destination-port-0 as destination port
UDP-IPv6IngressTrafficSend UDP traffic in trench-a with vip-1-v6 as destination IP and flow-a-z-udp-destination-port-0 as destination port
MT-SwitchMultiTrenchesDisconnect a target from target-a-deployment-name from trench-a and connect it to trench-b
MT-ParallelMultiTrenchesSend traffic in trench-a and trench-b at the same time
Scale-DownScalingScale down target-a-deployment-name
Scale-UpScalingScale up target-a-deployment-name
close-openTAPAClose stream-a-I in one of the target from target-a-deployment-name and re-open it
new-vipConfigurationConfigure vip-2-v4 and vip-2-v6 in flow-a-z-tcp and attractor-a-1
<!-- TODO:openTAPA

Steps (Kind + Helm)

  1. Deploy environment (Kind + Gateways + NSM + Spire) and Meridio (trench-a + trench-b + target-a + target-b)
make -s -C test/e2e/environment/kind-helm/ KUBERNETES_VERSION=v1.25 NSM_VERSION=v1.6.1 KUBERNETES_IP_FAMILY=dualstack KUBERNETES_WORKERS=2
  1. Run e2e tests
make e2e
  1. Uninstall environment
make -s -C docs/demo/scripts/kind/ clean