@@ -17,6 +17,7 @@ limitations under the License.
1717package e2e
1818
1919import (
20+ "encoding/base64"
2021 "flag"
2122 "fmt"
2223 "log"
@@ -52,11 +53,12 @@ const (
5253)
5354
5455var (
55- smbDriver * smb.Driver
56- isWindowsCluster = os .Getenv (testWindowsEnvVar ) != ""
57- winServerVer = os .Getenv (testWinServerVerEnvVar )
58- preInstallDriver = os .Getenv (preInstallDriverEnvVar ) == "true"
59- defaultStorageClassParameters = map [string ]string {
56+ smbDriver * smb.Driver
57+ isWindowsCluster = os .Getenv (testWindowsEnvVar ) != ""
58+ isWindowsHostProcessDeployment = os .Getenv ("WINDOWS_USE_HOST_PROCESS_CONTAINERS" ) != ""
59+ winServerVer = os .Getenv (testWinServerVerEnvVar )
60+ preInstallDriver = os .Getenv (preInstallDriverEnvVar ) == "true"
61+ defaultStorageClassParameters = map [string ]string {
6062 "source" : getSmbTestEnvVarValue (testSmbSourceEnvVar , defaultSmbSource ),
6163 "csi.storage.k8s.io/provisioner-secret-name" : getSmbTestEnvVarValue (testSmbSecretNameEnvVar , defaultSmbSecretName ),
6264 "csi.storage.k8s.io/provisioner-secret-namespace" : getSmbTestEnvVarValue (testSmbSecretNamespaceEnvVar , defaultSmbSecretNamespace ),
@@ -160,14 +162,32 @@ var _ = ginkgo.BeforeSuite(func() {
160162 smbDriver .Run (fmt .Sprintf ("unix:///tmp/csi-%s.sock" , uuid .NewUUID ().String ()), kubeconfig , false )
161163 }()
162164
165+ var source string
163166 if isWindowsCluster {
164167 err := os .Chdir ("../.." )
165168 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
166169 defer func () {
167170 err := os .Chdir ("test/e2e" )
168171 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
169172 }()
173+ }
174+
175+ if isWindowsHostProcessDeployment {
176+ decodedBytes , err := base64 .StdEncoding .DecodeString ("YW5keXNzZGZpbGUK" )
177+ if err != nil {
178+ log .Printf ("Error decoding base64 string: %v\n " , err )
179+ return
180+ }
181+ source = fmt .Sprintf ("//%s.file.core.windows.net/test" , string (decodedBytes ))
170182
183+ createSMBCredsScript := "test/utils/create_smbcreds_windows.sh"
184+ log .Printf ("run script: %s\n " , createSMBCredsScript )
185+
186+ cmd := exec .Command ("bash" , createSMBCredsScript )
187+ output , err := cmd .CombinedOutput ()
188+ log .Printf ("got output: %v, error: %v\n " , string (output ), err )
189+ gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
190+ } else if isWindowsCluster {
171191 getSMBPublicIPScript := "test/utils/get_smb_svc_public_ip.sh"
172192 log .Printf ("run script: %s\n " , getSMBPublicIPScript )
173193
@@ -177,8 +197,10 @@ var _ = ginkgo.BeforeSuite(func() {
177197 gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
178198
179199 smbPublicIP := strings .TrimSuffix (string (output ), "\n " )
180- source := fmt .Sprintf ("//%s/share" , smbPublicIP )
200+ source = fmt .Sprintf ("//%s/share" , smbPublicIP )
201+ }
181202
203+ if isWindowsCluster {
182204 log .Printf ("use source on Windows: %v\n " , source )
183205 defaultStorageClassParameters ["source" ] = source
184206 retainStorageClassParameters ["source" ] = source
0 commit comments