type probeConnectivityArgs … type Prober … type ProbeJob … type ProbeJobResults … // ProbePodToPodConnectivity runs a series of probes in kube, and records the results in `testCase.Reachability` func ProbePodToPodConnectivity(prober Prober, allPods []TestPod, dnsDomain string, testCase *TestCase) { … } // probeWorker continues polling a pod connectivity status, until the incoming "jobs" channel is closed, and writes results back out to the "results" channel. // it only writes pass/fail status to a channel and has no failure side effects, this is by design since we do not want to fail inside a goroutine. func probeWorker(prober Prober, jobs <-chan *ProbeJob, results chan<- *ProbeJobResults) { … }