NodeSSHHosts returns SSH-able host names for all schedulable nodes - this
excludes master node. If it can't find any external IPs, it falls back to
looking for internal IPs. If it can't find an internal IP for every node it
returns an error, though it still returns all hosts that it found in that
case.
RunSSHCommandViaBastion returns the stdout, stderr, and exit code from running cmd on
host as specific user, along with any SSH-level error. It uses an SSH proxy to connect
to bastion, then via that tunnel connects to the remote host. Similar to
sshutil.RunSSHCommand but scoped to the needs of the test infrastructure.
NodeExec execs the given cmd on node via SSH. Note that the nodeName is an sshable name,
eg: the name returned by framework.GetMasterHost(). This is also not guaranteed to work across
cloud providers since it involves ssh.
SSH synchronously SSHs to a node running on provider and runs cmd. If there
is no error performing the SSH, the stdout, stderr, and exit code are
returned.