Add eventually loop to port-forward test
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
This commit is contained in:
parent
8c0bafd5be
commit
d509e7012e
@ -597,7 +597,7 @@ func TestImpersonationProxy(t *testing.T) { //nolint:gocyclo // yeah, it's compl
|
|||||||
// run the kubectl port-forward command
|
// run the kubectl port-forward command
|
||||||
timeout, cancelFunc := context.WithTimeout(ctx, 2*time.Minute)
|
timeout, cancelFunc := context.WithTimeout(ctx, 2*time.Minute)
|
||||||
defer cancelFunc()
|
defer cancelFunc()
|
||||||
portForwardCmd, portForwardStdout, portForwardStderr := kubectlCommand(timeout, "port-forward", "--namespace", env.ConciergeNamespace, conciergePod.Name, "8443:8443")
|
portForwardCmd, _, portForwardStderr := kubectlCommand(timeout, "port-forward", "--namespace", env.ConciergeNamespace, conciergePod.Name, "8443:8443")
|
||||||
portForwardCmd.Env = envVarsWithProxy
|
portForwardCmd.Env = envVarsWithProxy
|
||||||
|
|
||||||
// start, but don't wait for the command to finish
|
// start, but don't wait for the command to finish
|
||||||
@ -607,22 +607,23 @@ func TestImpersonationProxy(t *testing.T) { //nolint:gocyclo // yeah, it's compl
|
|||||||
assert.EqualErrorf(t, portForwardCmd.Wait(), "signal: killed", `wanted "kubectl port-forward" to get signaled because context was cancelled (stderr: %q)`, portForwardStderr.String())
|
assert.EqualErrorf(t, portForwardCmd.Wait(), "signal: killed", `wanted "kubectl port-forward" to get signaled because context was cancelled (stderr: %q)`, portForwardStderr.String())
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// then run curl something against it
|
require.Eventually(t, func() bool {
|
||||||
time.Sleep(time.Second)
|
// then run curl something against it
|
||||||
timeout, cancelFunc = context.WithTimeout(ctx, 2*time.Minute)
|
timeout, cancelFunc = context.WithTimeout(ctx, 2*time.Minute)
|
||||||
defer cancelFunc()
|
defer cancelFunc()
|
||||||
curlCmd := exec.CommandContext(timeout, "curl", "-k", "https://127.0.0.1:8443")
|
curlCmd := exec.CommandContext(timeout, "curl", "-k", "https://127.0.0.1:8443")
|
||||||
var curlStdOut, curlStdErr bytes.Buffer
|
var curlStdOut, curlStdErr bytes.Buffer
|
||||||
curlCmd.Stdout = &curlStdOut
|
curlCmd.Stdout = &curlStdOut
|
||||||
curlCmd.Stderr = &curlStdErr
|
curlCmd.Stderr = &curlStdErr
|
||||||
err = curlCmd.Run()
|
err = curlCmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Log("curl error: " + err.Error())
|
t.Log("curl error: " + err.Error())
|
||||||
t.Log("curlStdErr: " + curlStdErr.String())
|
t.Log("curlStdErr: " + curlStdErr.String())
|
||||||
t.Log("stdout: " + curlStdOut.String())
|
t.Log("stdout: " + curlStdOut.String())
|
||||||
}
|
}
|
||||||
// we expect this to 403, but all we care is that it gets through
|
// we expect this to 403, but all we care is that it gets through
|
||||||
require.Containsf(t, curlStdOut.String(), "\"forbidden: User \\\"system:anonymous\\\" cannot get path \\\"/\\\"\"", "unexpected curl response\nport-forward stdout:\n%q\nport-forward stderr:\n%q", portForwardStdout.String(), portForwardStderr.String())
|
return err == nil && strings.Contains(curlStdOut.String(), "\"forbidden: User \\\"system:anonymous\\\" cannot get path \\\"/\\\"\"")
|
||||||
|
}, 5*time.Minute, 500*time.Millisecond)
|
||||||
|
|
||||||
// run the kubectl attach command
|
// run the kubectl attach command
|
||||||
namespaceName := createTestNamespace(t, adminClient)
|
namespaceName := createTestNamespace(t, adminClient)
|
||||||
@ -637,6 +638,8 @@ func TestImpersonationProxy(t *testing.T) { //nolint:gocyclo // yeah, it's compl
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
timeout, cancelFunc = context.WithTimeout(ctx, 2*time.Minute)
|
||||||
|
defer cancelFunc()
|
||||||
attachCmd, attachStdout, attachStderr := kubectlCommand(timeout, "attach", "--stdin=true", "--namespace", namespaceName, attachPod.Name)
|
attachCmd, attachStdout, attachStderr := kubectlCommand(timeout, "attach", "--stdin=true", "--namespace", namespaceName, attachPod.Name)
|
||||||
attachCmd.Env = envVarsWithProxy
|
attachCmd.Env = envVarsWithProxy
|
||||||
attachStdin, err := attachCmd.StdinPipe()
|
attachStdin, err := attachCmd.StdinPipe()
|
||||||
|
Loading…
Reference in New Issue
Block a user