Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion tests/e2e/e2e_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -664,6 +664,9 @@ var (
envMasterIP1SshdPortNum = "MASTER_IP1_SSHD_PORT_NUM"
envMasterIP2SshdPortNum = "MASTER_IP2_SSHD_PORT_NUM"
envMasterIP3SshdPortNum = "MASTER_IP3_SSHD_PORT_NUM"
envWorkerIP1SshdPortNum = "WORKER_IP1_SSHD_PORT_NUM"
envWorkerIP2SshdPortNum = "WORKER_IP2_SSHD_PORT_NUM"
envWorkerIP3SshdPortNum = "WORKER_IP3_SSHD_PORT_NUM"
envEsx1PortNum = "ESX1_SSHD_PORT_NUM"
envEsx2PortNum = "ESX2_SSHD_PORT_NUM"
envEsx3PortNum = "ESX3_SSHD_PORT_NUM"
Expand All @@ -682,6 +685,9 @@ var (
envMasterIP1 = "MASTER_IP1"
envMasterIP2 = "MASTER_IP2"
envMasterIP3 = "MASTER_IP3"
envWorkerIP1 = "WORKER_IP1"
envWorkerIP2 = "WORKER_IP2"
envWorkerIP3 = "WORKER_IP3"
envEsxIp1 = "ESX1_IP"
envEsxIp2 = "ESX2_IP"
envEsxIp3 = "ESX3_IP"
Expand Down Expand Up @@ -710,6 +716,9 @@ var (
k8sMasterIp1PortNum = sshdPort
k8sMasterIp2PortNum = sshdPort
k8sMasterIp3PortNum = sshdPort
k8sWorkerIp1PortNum = sshdPort
k8sWorkerIp2PortNum = sshdPort
k8sWorkerIp3PortNum = sshdPort
defaultVcAdminPortNum = "443"

// global variables declared
Expand All @@ -729,6 +738,9 @@ var (
masterIP1 = ""
masterIP2 = ""
masterIP3 = ""
workerIP1 = ""
workerIP2 = ""
workerIP3 = ""
ipPortMap = make(map[string]string)
missingEnvVars []string
defaultlocalhostIP = "127.0.0.1"
Expand Down Expand Up @@ -767,10 +779,15 @@ func setSShdPort() {
masterIP1 = GetorIgnoreStringEnvVar(envMasterIP1)
masterIP2 = GetorIgnoreStringEnvVar(envMasterIP2)
masterIP3 = GetorIgnoreStringEnvVar(envMasterIP3)
workerIP1 = GetorIgnoreStringEnvVar(envWorkerIP1)
workerIP2 = GetorIgnoreStringEnvVar(envWorkerIP2)
workerIP3 = GetorIgnoreStringEnvVar(envWorkerIP3)
k8sMasterIp1PortNum = GetorIgnoreStringEnvVar(envMasterIP1SshdPortNum)
k8sMasterIp2PortNum = GetorIgnoreStringEnvVar(envMasterIP2SshdPortNum)
k8sMasterIp3PortNum = GetorIgnoreStringEnvVar(envMasterIP3SshdPortNum)

k8sWorkerIp1PortNum = GetorIgnoreStringEnvVar(envWorkerIP1SshdPortNum)
k8sWorkerIp2PortNum = GetorIgnoreStringEnvVar(envWorkerIP2SshdPortNum)
k8sWorkerIp3PortNum = GetorIgnoreStringEnvVar(envWorkerIP3SshdPortNum)
vcIp1SshPortNum = GetorIgnoreStringEnvVar(envVc1SshdPortNum)

// reading esxi ip and its port
Expand Down Expand Up @@ -800,6 +817,9 @@ func setSShdPort() {
safeInsertToMap(masterIP1, k8sMasterIp1PortNum)
safeInsertToMap(masterIP2, k8sMasterIp2PortNum)
safeInsertToMap(masterIP3, k8sMasterIp3PortNum)
safeInsertToMap(workerIP1, k8sWorkerIp1PortNum)
safeInsertToMap(workerIP2, k8sWorkerIp2PortNum)
safeInsertToMap(workerIP3, k8sWorkerIp3PortNum)
safeInsertToMap(esxIp1, esxIp1PortNum)
safeInsertToMap(esxIp2, esxIp2PortNum)
safeInsertToMap(esxIp3, esxIp3PortNum)
Expand Down
4 changes: 4 additions & 0 deletions tests/e2e/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -8157,6 +8157,10 @@ func createtWcpNsWithZonesAndPolicies(
// Make the API request
_, statusCode := invokeVCRestAPIPostRequest(vcRestSessionId, nsCreationUrl, reqBody)

ginkgo.By("Wait for namespace to get created and listed under " +
"supervisor cluster")
time.Sleep(2 * time.Minute)

return namespace, statusCode, nil
}

Expand Down
3 changes: 1 addition & 2 deletions tests/e2e/vsan_stretched_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,7 @@ var _ = ginkgo.Describe("[vsan-stretch-vanilla] vsan stretched cluster tests", f
ginkgo.Skip(envStoragePolicyNameWithThickProvision + " env variable not set")
}
sc, err := client.StorageV1().StorageClasses().Get(ctx, defaultNginxStorageClassName, metav1.GetOptions{})
framework.Logf("Storageclass is %v and err is %v", sc, err)
if (!strings.Contains(err.Error(), "not found")) && sc != nil {
if err != nil && (!strings.Contains(err.Error(), "not found")) && sc != nil {
framework.ExpectNoError(client.StorageV1().StorageClasses().Delete(ctx, defaultNginxStorageClassName,
*metav1.NewDeleteOptions(0)), "Unable to delete storage class "+defaultNginxStorageClassName)
}
Expand Down
31 changes: 28 additions & 3 deletions tests/e2e/vsan_stretched_cluster_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,19 +220,44 @@ func createFaultDomainMap(ctx context.Context, vs *vSphere) map[string]string {
return fdMap
}

func isSSHReachable(ip string, timeout time.Duration) error {
nimbusGeneratedK8sVmPwd := GetAndExpectStringEnvVar(nimbusK8sVmPwd)
sshClientConfig := &ssh.ClientConfig{
User: "root",
Auth: []ssh.AuthMethod{
ssh.Password(nimbusGeneratedK8sVmPwd),
},
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
}
// Read hosts sshd port number
ip, portNum, err := getPortNumAndIP(ip)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
addr := ip + ":" + portNum
_, err = ssh.Dial("tcp", addr, sshClientConfig)
if err != nil {
if strings.Contains(err.Error(), "connection reset by peer") ||
strings.Contains(err.Error(), "no route to host") ||
strings.Contains(err.Error(), "handshake failed") {
return err // unreachable
}
}
return nil
}

// waitForHostToBeDown wait for host to be down
func waitForHostToBeDown(ctx context.Context, ip string) error {
framework.Logf("checking host status of %s", ip)
gomega.Expect(ip).NotTo(gomega.BeNil())
gomega.Expect(ip).NotTo(gomega.BeEmpty())
// Read hosts sshd port number
/* Read hosts sshd port number
ip, portNum, err := getPortNumAndIP(ip)
gomega.Expect(err).NotTo(gomega.HaveOccurred())
addr := ip + ":" + portNum
addr := ip + ":" + portNum*/

waitErr := wait.PollUntilContextTimeout(ctx, poll*2, pollTimeoutShort*2, true,
func(ctx context.Context) (bool, error) {
_, err := net.DialTimeout("tcp", addr, poll)
//_, err := net.DialTimeout("tcp", addr, poll)
err := isSSHReachable(ip, poll)
if err == nil {
framework.Logf("host is reachable")
return false, nil
Expand Down