+
+Create Pods
+ [Arguments] ${label} ${yaml} ${name}
+ [Documentation] Creates pods using the labels of the nodes and busy box names passed as arguments.
+ ${busybox} = OperatingSystem.Get File ${BUSY_BOX}
+ ${busybox} = String.Replace String ${busybox} string ${label}
+ ${busybox} = String.Replace String ${busybox} busyboxname ${name}
+ OperatingSystem.Create File ${VARIABLES_PATH}/${yaml} ${busybox}
+ SSHKeywords.Move_file_To_Remote_System ${K8s_MASTER_IP} ${VARIABLES_PATH}/${yaml} ${USER_HOME}
+ Utils.Run Command On Remote System And Log ${K8s_MASTER_IP} kubectl create -f ${yaml}
+
+Collect Pod Names and Ping
+ [Documentation] This keyword collects the pod names and checks connectivity between each and every pod with respect to one another.
+ ${lines} = Utils.Run Command On Remote System ${K8s_MASTER_IP} kubectl get pods -o wide
+ @{lines} = String.Split To Lines ${lines} 1
+ : FOR ${status} IN @{lines}
+ \ ${pod_name} = Builtin.Should Match Regexp ${status} ^\\w+
+ \ Ping Pods ${pod_name} @{lines}
+
+Ping Pods
+ [Arguments] ${pod_name} @{lines}
+ [Documentation] Ping pods to check connectivity between them
+ : FOR ${pod ip} IN @{lines}
+ \ ${status} = Run Keyword And Return Status Should Contain ${pod ip} ${pod_name}
+ \ BuiltIn.Continue For Loop If ${status} == True
+ \ ${pod_ip} = Builtin.Should Match Regexp ${pod ip} \\d+.\\d+.\\d+.\\d+
+ \ ${ping} = Utils.Run Command On Remote System And Log ${K8s_MASTER_IP} kubectl exec -it ${pod_name} -- ping -c 3 ${pod_ip}
+ \ Builtin.Should Match Regexp ${ping} ${PING_REGEXP}
+
+Coe Suite Setup
+ @{suite names} Get Regexp Matches ${SUITES} coe\\/(\\w+).robot 1
+ @{suite names updated} Create List
+ : FOR ${suites} IN @{suite names}
+ \ ${suites} Replace String ${suites} _ ${SPACE}
+ \ Append To List ${suite names updated} ${suites}
+ ${first suite} = Set Variable ${suite names updated[0]}
+ ${line} ${current suite} Should Match Regexp ${SUITE_NAME} .txt.(\\w.*)
+ ${status} = BuiltIn.Evaluate '${first suite}' == '${current suite}'
+ Run Keyword If '${status}' == 'True' Coe.Start Suite
+
+Coe Suite Teardown
+ @{suite names} Get Regexp Matches ${SUITES} coe\\/(\\w+).robot 1
+ @{suite names updated} Create List
+ : FOR ${suites} IN @{suite names}
+ \ ${suites} Replace String ${suites} _ ${SPACE}
+ \ Append To List ${suite names updated} ${suites}
+ ${last suite} = Set Variable ${suite names updated[-1]}
+ ${line} ${current suite} Should Match Regexp ${SUITE_NAME} .txt.(\\w.*)
+ ${status} = BuiltIn.Evaluate '${last suite}' == '${current suite}'
+ Run Keyword If '${status}' == 'True' Coe.Stop Suite