Code change:
return true }, 1*time.Minute, 1*time.Second).Should(gomega.BeTrue()) }) <ins> ginkgo.It("can read and write file to remote SMB folder", func() { defer ginkgo.GinkgoRecover() ginkgo.By("finding the worker node that fulfills this test's assumptions") nodes := findPreconfiguredGmsaNodes(f.ClientSet) if len(nodes) != 1 { e2eskipper.Skipf("Expected to find exactly one node with the %q label, found %d", gmsaFullNodeLabel, len(nodes)) } node := nodes[0] ginkgo.By("retrieving the contents of the GMSACredentialSpec custom resource manifest from the node") crdManifestContents := retrieveCRDManifestFileContents(f, node) ginkgo.By("downloading the GMSA webhook deploy script") deployScriptPath, err := downloadFile(gmsaWebhookDeployScriptURL) defer func() { os.Remove(deployScriptPath) }() if err != nil { framework.Failf(err.Error()) } ginkgo.By("deploying the GMSA webhook") webhookCleanUp, err := deployGmsaWebhook(f, deployScriptPath) defer webhookCleanUp() if err != nil { framework.Failf(err.Error()) } ginkgo.By("creating the GMSA custom resource") customResourceCleanup, err := createGmsaCustomResource(f.Namespace.Name, crdManifestContents) defer customResourceCleanup() if err != nil { framework.Failf(err.Error()) } ginkgo.By("creating an RBAC role to grant use access to that GMSA resource") rbacRoleName, rbacRoleCleanup, err := createRBACRoleForGmsa(f) defer rbacRoleCleanup() if err != nil { framework.Failf(err.Error()) } ginkgo.By("creating a service account") serviceAccountName := createServiceAccount(f) ginkgo.By("binding the RBAC role to the service account") bindRBACRoleToServiceAccount(f, serviceAccountName, rbacRoleName) ginkgo.By("creating a pod using the GMSA cred spec") podName := createPodWithGmsa(f, serviceAccountName) ginkgo.By("getting the ip of GMSA domain") gmsaDomainIP := getGmsaDomainIP(f, podName) ginkgo.By("checking that file can be read and write from the remote folder successfully") filePath := fmt.Sprintf("%s%swrite-test-%s.txt", gmsaDomainIP, gmsaSharedFolder, string(uuid.NewUUID())[0:4]) gomega.Eventually(func() bool { // The filePath is a remote folder, do not change the format of it _, _ = runKubectlExecInNamespace(f.Namespace.Name, podName, "--", "powershell.exe", "-Command", "echo 'This is a test file.' > "+filePath) output, err := runKubectlExecInNamespace(f.Namespace.Name, podName, "powershell.exe", "--", "cat", filePath) if err != nil { framework.Logf("unable to get file from AD server: %s", err) return false } return strings.Contains(output, "This is a test file.") }, 1*time.Minute, 1*time.Second).Should(gomega.BeTrue()) }) </ins> }) })

Related discussion:
text: /lifecycle rotten [1]:
/remove-lifecycle rotten
/remove-lifecycle rotten
/assign
I have thought about this a bit and think it might be easiest to just expose a share on the domain controller. This does push more requirements into the configuration that needs to happen outside of the tests but it will make the tests a lot cleaner IMO.
/assign
GitHub didn't allow me to assign the following users: iXinqi. Note that only , repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see <detailsIn response to : /assign Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details