diff --git a/README.md b/README.md index 6802c1f..d721eef 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,7 @@ Default/Override Values: Launch Control: FT_HOSTONLY false FT_REQ_SERVER_NODE all - FT_REQ_REMOTE_CLIENT_NODE + FT_REQ_REMOTE_CLIENT_NODE first From YAML Files: NET_ATTACH_DEF_NAME ftnetattach SRIOV_RESOURCE_NAME openshift.io/mlnx_bf @@ -356,7 +356,7 @@ Default/Override Values: HTTP_SERVER_POD_NAME ft-http-server-pod-v4 CLEAN_ALL false FT_REQ_SERVER_NODE all - FT_REQ_REMOTE_CLIENT_NODE + FT_REQ_REMOTE_CLIENT_NODE first Label Management: FT_REQ_SERVER_NODE all FT_SERVER_NODE_LABEL ft.ServerPod @@ -437,7 +437,7 @@ Default/Override Values: IPERF_TIME 2 OVN_TRACE false OVN_TRACE_CMD ./ovnkube-trace -loglevel=5 -tcp - FT_REQ_REMOTE_CLIENT_NODE all + FT_REQ_REMOTE_CLIENT_NODE first OVN Trace Control: OVN_K_NAMESPACE ovn-kubernetes SSL_ENABLE -noSSL @@ -470,8 +470,8 @@ Queried Values: SERVER_POD_NODE ovn-worker3 LOCAL_CLIENT_NODE ovn-worker3 LOCAL_CLIENT_POD ft-client-pod-76qlj - REMOTE_CLIENT_NODE ovn-worker4 - REMOTE_CLIENT_POD ft-client-pod-566xj + REMOTE_CLIENT_NODE_LIST ovn-worker4 + REMOTE_CLIENT_POD_LIST ft-client-pod-566xj HTTP_CLUSTERIP_POD_SVC_IPV4 10.96.39.137 HTTP_CLUSTERIP_POD_SVC_PORT 8080 HTTP_NODEPORT_POD_SVC_IPV4 10.96.28.182 @@ -486,8 +486,8 @@ Queried Values: SERVER_HOST_NODE ovn-worker3 LOCAL_CLIENT_HOST_NODE ovn-worker3 LOCAL_CLIENT_HOST_POD ft-client-pod-host-kttz2 - REMOTE_CLIENT_HOST_NODE ovn-worker4 - REMOTE_CLIENT_HOST_POD ft-client-pod-host-hp5r2 + REMOTE_CLIENT_HOST_NODE_LIST ovn-worker4 + REMOTE_CLIENT_HOST_POD_LIST ft-client-pod-host-hp5r2 HTTP_CLUSTERIP_HOST_SVC_IPV4 10.96.21.56 HTTP_CLUSTERIP_HOST_SVC_PORT 8081 HTTP_NODEPORT_HOST_SVC_IPV4 10.96.252.33 @@ -801,6 +801,11 @@ To get the DNS domain suffixes for the fully qualified service names, examine th options ndots:5 ``` +In a single cluster environment, `FT_REQ_REMOTE_CLIENT_NODE` is defaulted to `first`. +This implies to choose the first Client Pod that is not on the same node as the Server Pod. +In a multi-cluster environment, `FT_REQ_REMOTE_CLIENT_NODE` is defaulted to `all`, which +causes the script to loop through all of the Client Pods that aren't on the same node as the Server Pod. + ### mccleanup.sh *'mccleanup.sh'* - Loops through all existing clusters and calls *'cleanup.sh'* on each cluster diff --git a/labels.sh b/labels.sh index b6fc244..8aca507 100755 --- a/labels.sh +++ b/labels.sh @@ -22,6 +22,7 @@ add_labels() { # - Assign label so SR-IOV Client DaemonSet Pod started on this Node. FOUND_SRIOV=true FT_SRIOV_CLIENT=true + echo " Applying Server Label \"$FT_CLIENT_NODE_LABEL=sriov\" to ${NODE_ARRAY[$i]}" kubectl label nodes ${NODE_ARRAY[$i]} --overwrite=true $FT_CLIENT_NODE_LABEL=sriov else # SR-IOV NOT detected. @@ -30,17 +31,19 @@ add_labels() { # - Assign label so Normal Client DaemonSet Pod started on this Node. FOUND_SRIOV=false FT_NORMAL_CLIENT=true + echo " Applying Server Label \"$FT_CLIENT_NODE_LABEL=client\" to ${NODE_ARRAY[$i]}" kubectl label nodes ${NODE_ARRAY[$i]} --overwrite=true $FT_CLIENT_NODE_LABEL=client fi if [ "$FOUND_NODE" == false ] && [ "$FT_REQ_SERVER_NODE" == all ] || [ "$FT_REQ_SERVER_NODE" == "${NODE_ARRAY[$i]}" ]; then - echo " Applying Server Label \"$FT_SERVER_NODE_LABEL\" to ${NODE_ARRAY[$i]}" + echo " Applying Server Label \"$FT_SERVER_NODE_LABEL=server\" to ${NODE_ARRAY[$i]}" kubectl label nodes ${NODE_ARRAY[$i]} --overwrite=true $FT_SERVER_NODE_LABEL=server FOUND_NODE=true if [ "$FOUND_SRIOV" == true ]; then FT_SRIOV_SERVER=true fi else + echo " Applying Server Label \"$FT_SERVER_NODE_LABEL=none\" to ${NODE_ARRAY[$i]}" kubectl label nodes ${NODE_ARRAY[$i]} --overwrite=true $FT_SERVER_NODE_LABEL=none fi fi diff --git a/mctest.sh b/mctest.sh index b823ad4..cb79448 100755 --- a/mctest.sh +++ b/mctest.sh @@ -40,7 +40,7 @@ do echo "${CLUSTER_ARRAY[$i]}" echo "-----------" echo - FT_NAMESPACE=${FT_NAMESPACE} FT_SVC_QUALIFIER=${FT_SVC_QUALIFIER} FT_NOTES=false ./test.sh + FT_NAMESPACE=${FT_NAMESPACE} FT_SVC_QUALIFIER=${FT_SVC_QUALIFIER} FT_NOTES=false FT_REQ_REMOTE_CLIENT_NODE=all ./test.sh else echo " Skipping testing on Full Deployment on Cluster ${CLUSTER_ARRAY[$i]}" fi diff --git a/test.sh b/test.sh index af5695e..71ae5cb 100755 --- a/test.sh +++ b/test.sh @@ -236,29 +236,32 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 1 ] && [ "$FT_HOSTONLY" == false ] echo "*** 1-b: Pod to Pod (Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="01-b-pod2pod-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="01-b-pod2pod-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_RSP=$POD_SERVER_STRING - process-curl - fi + if [ "$CURL" == true ]; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_RSP=$POD_SERVER_STRING + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_POD_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_POD_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE= - TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_POD_NAME - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE= + TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_POD_NAME + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -300,29 +303,32 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 2 ] && [ "$FT_HOSTONLY" == false ] echo "*** 2-b: Pod to Host (Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="02-b-pod2host-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="02-b-pod2host-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_RSP=$HOST_SERVER_STRING - process-curl - fi + if [ "$CURL" == true ]; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_RSP=$HOST_SERVER_STRING + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE= - TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_HOST_POD_NAME - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE= + TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_HOST_POD_NAME + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -369,7 +375,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 3 ] && [ "$FT_HOSTONLY" == false ] process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT @@ -382,47 +388,50 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 3 ] && [ "$FT_HOSTONLY" == false ] echo "*** 3-b: Pod -> Cluster IP Service traffic (Pod Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="03-b-pod2clusterIpSvc-podBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="03-b-pod2clusterIpSvc-podBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$POD_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$POD_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - if [ "$FT_CLIENTONLY" == false ] ; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + if [ "$FT_CLIENTONLY" == false ] ; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcEndPointIP:SvcPORT" + process-curl + elif [ "$FT_NOTES" == true ]; then + echo "curl SvcEndPointIP:SvcPORT" + echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" + echo + fi + + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_NAME TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcEndPointIP:SvcPORT" + echo "curl SvcName:SvcPORT" process-curl - elif [ "$FT_NOTES" == true ]; then - echo "curl SvcEndPointIP:SvcPORT" - echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" - echo fi - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi - - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_POD_SVC_IPV4 - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_POD_SVC_IPV4 + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -469,7 +478,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 4 ] && [ "$FT_HOSTONLY" == false ] process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT @@ -482,47 +491,50 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 4 ] && [ "$FT_HOSTONLY" == false ] echo "*** 4-b: Pod -> Cluster IP Service traffic (Host Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="04-b-pod2clusterIpSvc-hostBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="04-b-pod2clusterIpSvc-hostBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$HOST_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$HOST_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - if [ "$FT_CLIENTONLY" == false ] ; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + if [ "$FT_CLIENTONLY" == false ] ; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcEndPointIP:SvcPORT" + process-curl + elif [ "$FT_NOTES" == true ]; then + echo "curl SvcEndPointIP:SvcPORT" + echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" + echo + fi + + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_NAME TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcEndPointIP:SvcPORT" + echo "curl SvcName:SvcPORT" process-curl - elif [ "$FT_NOTES" == true ]; then - echo "curl SvcEndPointIP:SvcPORT" - echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" - echo fi - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi - - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_HOST_SVC_IPV4 - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_HOST_SVC_IPV4 + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -563,7 +575,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 5 ] && [ "$FT_HOSTONLY" == false ] process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT @@ -576,41 +588,44 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 5 ] && [ "$FT_HOSTONLY" == false ] echo "*** 5-b: Pod -> NodePort Service traffic (Pod Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="05-b-pod2nodePortSvc-podBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="05-b-pod2nodePortSvc-podBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$POD_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$POD_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_POD_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_POD_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_POD_SVC_PORT - echo "curl HostIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_POD_SVC_PORT + echo "curl HostIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_SVC_NAME + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcName:SvcPORT" + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -651,7 +666,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 6 ] && [ "$FT_HOSTONLY" == false ] process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT @@ -664,41 +679,44 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 6 ] && [ "$FT_HOSTONLY" == false ] echo "*** 6-b: Pod -> NodePort Service traffic (Host Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="06-b-pod2nodePortSvc-hostBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="06-b-pod2nodePortSvc-hostBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$HOST_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$HOST_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_HOST_SVC_PORT - echo "curl HostIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_HOST_SVC_PORT + echo "curl HostIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_NAME + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcName:SvcPORT" + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -740,29 +758,32 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 7 ] && [ "$FT_HOSTONLY" == false ] echo "*** 7-b: Host to Pod (Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="07-b-host2pod-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="07-b-host2pod-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_RSP=$POD_SERVER_STRING - process-curl - fi + if [ "$CURL" == true ]; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_RSP=$POD_SERVER_STRING + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_POD_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_POD_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE= - TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_POD_NAME - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE= + TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_POD_NAME + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -811,36 +832,39 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 8 ] && [ "$FT_CLIENTONLY" == false echo "*** 8-b: Host to Host (Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="08-b-host2host-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="08-b-host2host-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_RSP=$HOST_SERVER_STRING - process-curl - fi + if [ "$CURL" == true ]; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_RSP=$HOST_SERVER_STRING + process-curl + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE= - TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_HOST_POD_NAME - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - #process-ovn-trace - if [ "$FT_NOTES" == true ]; then - echo "OVN-TRACE: BEGIN" - echo -e "${BLUE}ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host.${NC}" - echo "OVN-TRACE: END" - echo - echo "ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host." > ${OVN_TRACE_LOGS_DIR}/${TEST_FILENAME} + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE= + TEST_SERVER_OVNTRACE_DST=$HTTP_SERVER_HOST_POD_NAME + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + #process-ovn-trace + if [ "$FT_NOTES" == true ]; then + echo "OVN-TRACE: BEGIN" + echo -e "${BLUE}ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host.${NC}" + echo "OVN-TRACE: END" + echo + echo "ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host." > ${OVN_TRACE_LOGS_DIR}/${TEST_FILENAME} + fi fi - fi + done fi @@ -887,7 +911,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 9 ] && [ "$FT_HOSTONLY" == false ] process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT @@ -900,47 +924,50 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 9 ] && [ "$FT_HOSTONLY" == false ] echo "*** 9-b: Host Pod -> Cluster IP Service traffic (Pod Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="09-b-host2clusterIpSvc-podBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="09-b-host2clusterIpSvc-podBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$POD_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$POD_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - if [ "$FT_CLIENTONLY" == false ] ; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + if [ "$FT_CLIENTONLY" == false ] ; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_POD_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcEndPointIP:SvcPORT" + process-curl + elif [ "$FT_NOTES" == true ]; then + echo "curl SvcEndPointIP:SvcPORT" + echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" + echo + fi + + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_NAME TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcEndPointIP:SvcPORT" + echo "curl SvcName:SvcPORT" process-curl - elif [ "$FT_NOTES" == true ]; then - echo "curl SvcEndPointIP:SvcPORT" - echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" - echo fi - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_POD_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi - - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_POD_SVC_IPV4 - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_POD_SVC_IPV4 + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_POD_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -987,7 +1014,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 10 ]; then process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT @@ -1000,47 +1027,50 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 10 ]; then echo "*** 10-b: Host Pod -> Cluster IP Service traffic (Host Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="10-b-host2clusterIpSvc-hostBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="10-b-host2clusterIpSvc-hostBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$HOST_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$HOST_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcClusterIP:SvcPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcClusterIP:SvcPORT" + process-curl - if [ "$FT_CLIENTONLY" == false ] ; then - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + if [ "$FT_CLIENTONLY" == false ] ; then + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcEndPointIP:SvcPORT" + process-curl + elif [ "$FT_NOTES" == true ]; then + echo "curl SvcEndPointIP:SvcPORT" + echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" + echo + fi + + TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_NAME TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcEndPointIP:SvcPORT" + echo "curl SvcName:SvcPORT" process-curl - elif [ "$FT_NOTES" == true ]; then - echo "curl SvcEndPointIP:SvcPORT" - echo -e "${BLUE}Test Skipped - No EndPoint exported in Multi-Cluster${NC}" - echo fi - TEST_SERVER_HTTP_DST=$HTTP_CLUSTERIP_HOST_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcName:SvcPORT" - process-curl - fi - - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_HOST_SVC_IPV4 - TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_CLUSTERIP_HOST_SVC_IPV4 + TEST_SERVER_IPERF_DST_PORT=$IPERF_CLUSTERIP_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_CLUSTERIP_HOST_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -1085,7 +1115,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 11 ] && [ "$FT_HOSTONLY" == false process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT @@ -1098,48 +1128,51 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 11 ] && [ "$FT_HOSTONLY" == false echo "*** 11-b: Host Pod -> NodePort Service traffic (Pod Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="11-b-host2nodePortSvc-podBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="11-b-host2nodePortSvc-podBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$POD_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$POD_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_POD_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcClusterIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_POD_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcClusterIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_POD_SVC_PORT - echo "curl hostIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_POD_SVC_PORT + echo "curl hostIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - echo "curl SvcName:NODEPORT" - process-curl - #if [ "$FT_NOTES" == true ]; then - # echo "curl SvcName:NODEPORT" - # echo "kubectl exec -it -n ${FT_NAMESPACE} ${TEST_CLIENT_POD} -- $CURL_CMD \"http://${TEST_SERVER_HTTP_DST}:${TEST_SERVER_HTTP_DST_PORT}/\"" - # echo -e "${BLUE}curl: (6) Could not resolve host: ft-http-service-node-v4; Unknown error${NC}" - # echo -e "${BLUE}Should this work?${NC}" - # echo - #fi - fi + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_SVC_NAME + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + echo "curl SvcName:NODEPORT" + process-curl + #if [ "$FT_NOTES" == true ]; then + # echo "curl SvcName:NODEPORT" + # echo "kubectl exec -it -n ${FT_NAMESPACE} ${TEST_CLIENT_POD} -- $CURL_CMD \"http://${TEST_SERVER_HTTP_DST}:${TEST_SERVER_HTTP_DST_PORT}/\"" + # echo -e "${BLUE}curl: (6) Could not resolve host: ft-http-service-node-v4; Unknown error${NC}" + # echo -e "${BLUE}Should this work?${NC}" + # echo + #fi + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_POD_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_POD_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= - process-ovn-trace - fi + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_POD_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= + process-ovn-trace + fi + done fi @@ -1186,7 +1219,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 12 ] && [ "$FT_CLIENTONLY" == fals process-iperf fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME TEST_SERVER_OVNTRACE_DST= TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT @@ -1205,53 +1238,56 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 12 ] && [ "$FT_CLIENTONLY" == fals echo "*** 12-b: Host Pod -> NodePort Service traffic (Host Backend - Different Node) ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="12-b-host2nodePortSvc-hostBackend-diffNode.txt" + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="12-b-host2nodePortSvc-hostBackend-diffNode.txt" - if [ "$CURL" == true ]; then - TEST_SERVER_RSP=$HOST_SERVER_STRING + if [ "$CURL" == true ]; then + TEST_SERVER_RSP=$HOST_SERVER_STRING - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_IPV4 - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcClusterIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_IPV4 + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcClusterIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP - TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_HOST_SVC_PORT - echo "curl EndPointIP:NODEPORT" - process-curl + TEST_SERVER_HTTP_DST=$HTTP_SERVER_HOST_IP + TEST_SERVER_HTTP_DST_PORT=$HTTP_NODEPORT_HOST_SVC_PORT + echo "curl EndPointIP:NODEPORT" + process-curl - TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_NAME - TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - echo "curl SvcName:NODEPORT" - process-curl - #if [ "$FT_NOTES" == true ]; then - # echo "curl SvcName:NODEPORT" - # echo "kubectl exec -it -n ${FT_NAMESPACE} ${TEST_CLIENT_POD} -- $CURL_CMD \"http://${TEST_SERVER_HTTP_DST}:${TEST_SERVER_HTTP_DST_PORT}/\"" - # echo -e "${BLUE}Test Skipped - the host has no idea about svc DNS resolution${NC}" - # echo - #fi - fi + TEST_SERVER_HTTP_DST=$HTTP_NODEPORT_HOST_SVC_NAME + TEST_SERVER_HTTP_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + echo "curl SvcName:NODEPORT" + process-curl + #if [ "$FT_NOTES" == true ]; then + # echo "curl SvcName:NODEPORT" + # echo "kubectl exec -it -n ${FT_NAMESPACE} ${TEST_CLIENT_POD} -- $CURL_CMD \"http://${TEST_SERVER_HTTP_DST}:${TEST_SERVER_HTTP_DST_PORT}/\"" + # echo -e "${BLUE}Test Skipped - the host has no idea about svc DNS resolution${NC}" + # echo + #fi + fi - if [ "$IPERF" == true ]; then - TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP - TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_HOST_SVC_PORT - process-iperf - fi + if [ "$IPERF" == true ]; then + TEST_SERVER_IPERF_DST=$IPERF_SERVER_HOST_IP + TEST_SERVER_IPERF_DST_PORT=$IPERF_NODEPORT_HOST_SVC_PORT + process-iperf + fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT - TEST_SERVER_OVNTRACE_RMTHOST= + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE=$HTTP_NODEPORT_HOST_SVC_NAME + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT=$HTTP_CLUSTERIP_HOST_SVC_PORT + TEST_SERVER_OVNTRACE_RMTHOST= - echo "ovnkube-trace SvcName:NODEPORT" - if [ "$FT_NOTES" == true ]; then - echo -e "${BLUE}If Test Skipped - why trace the same?${NC}" - fi + echo "ovnkube-trace SvcName:NODEPORT" + if [ "$FT_NOTES" == true ]; then + echo -e "${BLUE}If Test Skipped - why trace the same?${NC}" + fi - process-ovn-trace - fi + process-ovn-trace + fi + done fi @@ -1265,8 +1301,44 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 13 ]; then echo "*** 13-a: Pod -> External Network ***" echo - TEST_CLIENT_POD=$REMOTE_CLIENT_POD - TEST_FILENAME="13-a-pod2external.txt" + for POD in "${REMOTE_CLIENT_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="13-a-pod2external.txt" + + if [ "$CURL" == true ]; then + TEST_SERVER_HTTP_DST=$EXTERNAL_URL + TEST_SERVER_HTTP_DST_PORT= + TEST_SERVER_RSP=$EXTERNAL_SERVER_STRING + process-curl + fi + + if [ "$IPERF" == true ]; then + if [ "$FT_NOTES" == true ]; then + echo -e "${BLUE}iperf Skipped - No external iperf server.${NC}" + echo + echo "iperf Skipped - No external iperf server." > ${IPERF_LOGS_DIR}/${TEST_FILENAME} + fi + fi + + if [ "$OVN_TRACE" == true ]; then + TEST_SERVER_OVNTRACE_SERVICE= + TEST_SERVER_OVNTRACE_DST= + TEST_SERVER_OVNTRACE_DST_PORT= + TEST_SERVER_OVNTRACE_RMTHOST=$EXTERNAL_SERVER_STRING + process-ovn-trace + fi + done + fi + + echo + echo "*** 13-b: Host -> External Network ***" + echo + + for POD in "${REMOTE_CLIENT_HOST_POD_LIST[@]}" + do + TEST_CLIENT_POD=$POD + TEST_FILENAME="13-b-host2external.txt" if [ "$CURL" == true ]; then TEST_SERVER_HTTP_DST=$EXTERNAL_URL @@ -1279,50 +1351,20 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 13 ]; then if [ "$FT_NOTES" == true ]; then echo -e "${BLUE}iperf Skipped - No external iperf server.${NC}" echo - echo "iperf Skipped - No external iperf server." > ${IPERF_LOGS_DIR}/${TEST_FILENAME} + echo "iperf Skipped - No external iperf server." > iperf-logs/${TEST_FILENAME} fi fi - if [ "$OVN_TRACE" == true ]; then - TEST_SERVER_OVNTRACE_SERVICE= - TEST_SERVER_OVNTRACE_DST= - TEST_SERVER_OVNTRACE_DST_PORT= - TEST_SERVER_OVNTRACE_RMTHOST=$EXTERNAL_SERVER_STRING - process-ovn-trace - fi - fi - - echo - echo "*** 13-b: Host -> External Network ***" - echo - - TEST_CLIENT_POD=$REMOTE_CLIENT_HOST_POD - TEST_FILENAME="13-b-host2external.txt" - - if [ "$CURL" == true ]; then - TEST_SERVER_HTTP_DST=$EXTERNAL_URL - TEST_SERVER_HTTP_DST_PORT= - TEST_SERVER_RSP=$EXTERNAL_SERVER_STRING - process-curl - fi - - if [ "$IPERF" == true ]; then - if [ "$FT_NOTES" == true ]; then - echo -e "${BLUE}iperf Skipped - No external iperf server.${NC}" - echo - echo "iperf Skipped - No external iperf server." > iperf-logs/${TEST_FILENAME} - fi - fi - - if [ "$OVN_TRACE" == true ]; then - if [ "$FT_NOTES" == true ]; then - echo "OVN-TRACE: BEGIN" - echo -e "${BLUE}ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host.${NC}" - echo "OVN-TRACE: END" - echo - echo "ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host." > ${OVN_TRACE_LOGS_DIR}/${TEST_FILENAME} + if [ "$OVN_TRACE" == true ]; then + if [ "$FT_NOTES" == true ]; then + echo "OVN-TRACE: BEGIN" + echo -e "${BLUE}ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host.${NC}" + echo "OVN-TRACE: END" + echo + echo "ovn-trace Skipped - Traffic is never in OVN, just exiting eth0 on host." > ${OVN_TRACE_LOGS_DIR}/${TEST_FILENAME} + fi fi - fi + done fi @@ -1361,7 +1403,7 @@ if [ "$FT_NOTES" == true ]; then fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" @@ -1401,7 +1443,7 @@ if [ "$FT_NOTES" == true ]; then fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" @@ -1466,7 +1508,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 15 ] && [ "$FT_CLIENTONLY" == fals fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" @@ -1524,7 +1566,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 15 ] && [ "$FT_CLIENTONLY" == fals fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" @@ -1576,7 +1618,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 16 ] ; then fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" @@ -1622,7 +1664,7 @@ if [ "$TEST_CASE" == 0 ] || [ "$TEST_CASE" == 16 ] ; then fi fi - if [ "$OVN_TRACE" == true ]; then + if [ "$OVN_TRACE" == true ]; then if [ "$FT_NOTES" == true ]; then echo "OVN-TRACE: BEGIN" echo -e "${BLUE}ovn-trace Skipped.${NC}" diff --git a/variables.sh b/variables.sh index 77c03a6..ac8858b 100755 --- a/variables.sh +++ b/variables.sh @@ -4,7 +4,7 @@ # Default values (possible to override) # -FT_REQ_REMOTE_CLIENT_NODE=${FT_REQ_REMOTE_CLIENT_NODE:-all} +FT_REQ_REMOTE_CLIENT_NODE=${FT_REQ_REMOTE_CLIENT_NODE:-first} FT_REQ_SERVER_NODE=${FT_REQ_SERVER_NODE:-all} FT_SRIOV_NODE_LABEL=${FT_SRIOV_NODE_LABEL:-network.operator.openshift.io/external-openvswitch} @@ -103,8 +103,10 @@ KUBEAPI_SERVER_STRING=${KUBEAPI_SERVER_STRING:-"serverAddressByClientCIDRs"} # Local Variables not intended to be overwritten LOCAL_CLIENT_NODE= LOCAL_CLIENT_POD= -REMOTE_CLIENT_NODE= -REMOTE_CLIENT_POD= +LOCAL_CLIENT_HOST_POD= +REMOTE_CLIENT_NODE_LIST=() +REMOTE_CLIENT_POD_LIST=() +REMOTE_CLIENT_HOST_POD_LIST=() FT_SERVER_NODE_LABEL=ft.ServerPod FT_CLIENT_NODE_LABEL=ft.ClientPod @@ -193,8 +195,8 @@ if [ ${COMMAND} == "test" ] ; then echo " SERVER_POD_NODE $SERVER_POD_NODE" echo " LOCAL_CLIENT_NODE $LOCAL_CLIENT_NODE" echo " LOCAL_CLIENT_POD $LOCAL_CLIENT_POD" - echo " REMOTE_CLIENT_NODE $REMOTE_CLIENT_NODE" - echo " REMOTE_CLIENT_POD $REMOTE_CLIENT_POD" + echo " REMOTE_CLIENT_NODE_LIST $REMOTE_CLIENT_NODE_LIST" + echo " REMOTE_CLIENT_POD_LIST $REMOTE_CLIENT_POD_LIST" echo " HTTP_CLUSTERIP_POD_SVC_IPV4 $HTTP_CLUSTERIP_POD_SVC_IPV4" echo " HTTP_CLUSTERIP_POD_SVC_PORT $HTTP_CLUSTERIP_POD_SVC_PORT" echo " HTTP_NODEPORT_POD_SVC_IPV4 $HTTP_NODEPORT_POD_SVC_IPV4" @@ -209,8 +211,8 @@ if [ ${COMMAND} == "test" ] ; then echo " SERVER_HOST_NODE $SERVER_POD_NODE" echo " LOCAL_CLIENT_HOST_NODE $LOCAL_CLIENT_NODE" echo " LOCAL_CLIENT_HOST_POD $LOCAL_CLIENT_HOST_POD" - echo " REMOTE_CLIENT_HOST_NODE $REMOTE_CLIENT_NODE" - echo " REMOTE_CLIENT_HOST_POD $REMOTE_CLIENT_HOST_POD" + echo " REMOTE_CLIENT_HOST_NODE_LIST $REMOTE_CLIENT_NODE_LIST" + echo " REMOTE_CLIENT_HOST_POD_LIST $REMOTE_CLIENT_HOST_POD_LIST" echo " HTTP_CLUSTERIP_HOST_SVC_IPV4 $HTTP_CLUSTERIP_HOST_SVC_IPV4" echo " HTTP_CLUSTERIP_HOST_SVC_PORT $HTTP_CLUSTERIP_HOST_SVC_PORT" echo " HTTP_NODEPORT_HOST_SVC_IPV4 $HTTP_NODEPORT_HOST_SVC_IPV4" @@ -390,58 +392,92 @@ query-dynamic-data() { # Local Client Node is the same Node Server is running on. LOCAL_CLIENT_NODE=$SERVER_POD_NODE - # Initialize to the Local Client Node and over write below. - REMOTE_CLIENT_NODE=$LOCAL_CLIENT_NODE # Find the REMOTE NODE for POD and HOST POD. (REMOTE is a node server is NOT running on) + echo "Determine Local and Remote Nodes:" NODE_ARRAY=($(kubectl get nodes --no-headers=true | awk -F' ' '{print $1}')) - for i in "${!NODE_ARRAY[@]}" + for NODE in "${NODE_ARRAY[@]}" do + echo "Processing NODE=${NODE}" # Check for non-master (KIND clusters don't have "worker" role set) - kubectl get node ${NODE_ARRAY[$i]} --no-headers=true | awk -F' ' '{print $3}' | grep -q master + kubectl get node ${NODE} --no-headers=true | awk -F' ' '{print $3}' | grep -q master if [ "$?" == 1 ]; then # If this node was requested and LOCAL_CLIENT_NODE is blank (because Client Only Mode # and there is no Server Node, which is the default), then use this node as Local Client. - if [ "$FT_REQ_SERVER_NODE" == "${NODE_ARRAY[$i]}" ] && [ -z "${LOCAL_CLIENT_NODE}" ] ; then - LOCAL_CLIENT_NODE=${NODE_ARRAY[$i]} - # If this node was requested and REMOTE_CLIENT_NODE is blank (because Client Only Mode + if [ "$FT_REQ_SERVER_NODE" == "${NODE}" ] && [ -z "${LOCAL_CLIENT_NODE}" ] ; then + LOCAL_CLIENT_NODE=${NODE} + echo "LOCAL_CLIENT_NODE=${LOCAL_CLIENT_NODE} because node requested" + # If this node was requested and REMOTE_CLIENT_NODE_LIST is blank (because Client Only Mode # and there is no Server Node, which is the default), then use this node as Remote Client. - elif [ "$FT_REQ_REMOTE_CLIENT_NODE" == "${NODE_ARRAY[$i]}" ] && [ -z "${REMOTE_CLIENT_NODE}" ] ; then - REMOTE_CLIENT_NODE=${NODE_ARRAY[$i]} + elif [ "$FT_REQ_REMOTE_CLIENT_NODE" == "${NODE}" ] && [ -z "${REMOTE_CLIENT_NODE_LIST}" ] ; then + REMOTE_CLIENT_NODE_LIST+=(${NODE}) + echo "REMOTE_CLIENT_NODE_LIST=${REMOTE_CLIENT_NODE_LIST[@]} because node requested" # If LOCAL_CLIENT_NODE is blank (because Client Only Mode and there is no Server Node, # which is the default), then use this node as Local Client. elif [ -z "${LOCAL_CLIENT_NODE}" ] ; then - LOCAL_CLIENT_NODE=${NODE_ARRAY[$i]} - # Otherwise if this was the requested Remote Client, make sure it doesn't overlap with Server Node. - elif [ "$FT_REQ_REMOTE_CLIENT_NODE" == all ] || [ "$FT_REQ_REMOTE_CLIENT_NODE" == "${NODE_ARRAY[$i]}" ]; then - if [ "$LOCAL_CLIENT_NODE" != "${NODE_ARRAY[$i]}" ]; then - REMOTE_CLIENT_NODE=${NODE_ARRAY[$i]} + LOCAL_CLIENT_NODE=${NODE} + echo "LOCAL_CLIENT_NODE=${LOCAL_CLIENT_NODE} because next available" + # Otherwise if this was the requested Remote Client or the first node requested, + # and make sure it doesn't overlap with Server Node. + elif [ ${#REMOTE_CLIENT_NODE_LIST[@]} -eq 0 ] && [ "$FT_REQ_REMOTE_CLIENT_NODE" == "first" ] || [ "$FT_REQ_REMOTE_CLIENT_NODE" == "${NODE}" ]; then + if [ "$LOCAL_CLIENT_NODE" != "${NODE}" ]; then + REMOTE_CLIENT_NODE_LIST=(${NODE}) + echo "REMOTE_CLIENT_NODE_LIST=${REMOTE_CLIENT_NODE_LIST[@]} because next available and first or specific requested" + fi + # Otherwise if all was requested, and make sure it doesn't overlap with Server Node. + elif [ "$FT_REQ_REMOTE_CLIENT_NODE" == "all" ]; then + if [ "$LOCAL_CLIENT_NODE" != "${NODE}" ]; then + REMOTE_CLIENT_NODE_LIST+=(${NODE}) + echo "REMOTE_CLIENT_NODE_LIST=${REMOTE_CLIENT_NODE_LIST[@]} because all requested" fi fi fi + echo done - if [ "$REMOTE_CLIENT_NODE" == "$LOCAL_CLIENT_NODE" ]; then - if [ "$FT_REQ_REMOTE_CLIENT_NODE" == "$REMOTE_CLIENT_NODE" ]; then - echo -e "${BLUE}ERROR: As requested, REMOTE_CLIENT_NODE is same as LOCAL_CLIENT_NODE: $LOCAL_CLIENT_NODE${NC}\r\n" - else - echo -e "${RED}ERROR: Unable to find REMOTE_CLIENT_NODE. Using LOCAL_CLIENT_NODE: $LOCAL_CLIENT_NODE${NC}\r\n" + + echo "Summary:" + echo " LOCAL_CLIENT_NODE=${LOCAL_CLIENT_NODE}" + echo " REMOTE_CLIENT_NODE_LIST=${REMOTE_CLIENT_NODE_LIST[@]}" + echo + + for NODE in "${REMOTE_CLIENT_NODE_LIST[@]}" + do + if [ "${NODE}" == "${LOCAL_CLIENT_NODE}" ]; then + if [ "$FT_REQ_REMOTE_CLIENT_NODE" == "$NODE" ]; then + echo -e "${BLUE}ERROR: As requested, REMOTE_CLIENT_NODE_LIST is same as LOCAL_CLIENT_NODE: $LOCAL_CLIENT_NODE${NC}\r\n" + else + echo -e "${RED}ERROR: Unable to find a node for REMOTE_CLIENT_NODE_LIST. Using LOCAL_CLIENT_NODE: $LOCAL_CLIENT_NODE${NC}\r\n" + fi fi - fi + done # # Determine Local and Remote Pods # - LOCAL_CLIENT_HOST_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_HOST_POD_NAME_PREFIX} -o wide | grep -w "$LOCAL_CLIENT_NODE" | awk -F' ' '{print $1}') - REMOTE_CLIENT_HOST_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_HOST_POD_NAME_PREFIX} -o wide | grep -w "$REMOTE_CLIENT_NODE" | awk -F' ' '{print $1}') + echo "Determine Local and Remote Pods:" + LOCAL_CLIENT_HOST_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_HOST_POD_NAME_PREFIX} -o wide | grep -w "${LOCAL_CLIENT_NODE}" | awk -F' ' '{print $1}') if [ "$FT_HOSTONLY" == false ]; then - LOCAL_CLIENT_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_POD_NAME_PREFIX} -o wide | grep -w "$LOCAL_CLIENT_NODE" | awk -F' ' '{print $1}') - REMOTE_CLIENT_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_POD_NAME_PREFIX} -o wide| grep -w "$REMOTE_CLIENT_NODE" | awk -F' ' '{print $1}') + LOCAL_CLIENT_POD=$(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_POD_NAME_PREFIX} -o wide | grep -w "${LOCAL_CLIENT_NODE}" | awk -F' ' '{print $1}') else LOCAL_CLIENT_POD= - REMOTE_CLIENT_POD= fi + for NODE in "${REMOTE_CLIENT_NODE_LIST[@]}" + do + REMOTE_CLIENT_HOST_POD_LIST+=($(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_HOST_POD_NAME_PREFIX} -o wide | grep -w "${NODE}" | awk -F' ' '{print $1}')) + if [ "$FT_HOSTONLY" == false ]; then + REMOTE_CLIENT_POD_LIST+=($(kubectl get pods -n ${FT_NAMESPACE} --selector=name=${CLIENT_POD_NAME_PREFIX} -o wide| grep -w "${NODE}" | awk -F' ' '{print $1}')) + fi + done + + echo "Summary:" + echo " LOCAL_CLIENT_HOST_POD=${LOCAL_CLIENT_HOST_POD}" + echo " REMOTE_CLIENT_HOST_POD_LIST=${REMOTE_CLIENT_HOST_POD_LIST[@]}" + echo " LOCAL_CLIENT_POD=${LOCAL_CLIENT_POD}" + echo " REMOTE_CLIENT_POD_LIST=${REMOTE_CLIENT_POD_LIST[@]}" + echo + # # Determine IP Addresses and Ports #