@@ -17,6 +17,7 @@ limitations under the License.
17
17
package e2e
18
18
19
19
import (
20
+ "encoding/base64"
20
21
"flag"
21
22
"fmt"
22
23
"log"
@@ -52,11 +53,12 @@ const (
52
53
)
53
54
54
55
var (
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 {
60
62
"source" : getSmbTestEnvVarValue (testSmbSourceEnvVar , defaultSmbSource ),
61
63
"csi.storage.k8s.io/provisioner-secret-name" : getSmbTestEnvVarValue (testSmbSecretNameEnvVar , defaultSmbSecretName ),
62
64
"csi.storage.k8s.io/provisioner-secret-namespace" : getSmbTestEnvVarValue (testSmbSecretNamespaceEnvVar , defaultSmbSecretNamespace ),
@@ -160,14 +162,32 @@ var _ = ginkgo.BeforeSuite(func() {
160
162
smbDriver .Run (fmt .Sprintf ("unix:///tmp/csi-%s.sock" , uuid .NewUUID ().String ()), kubeconfig , false )
161
163
}()
162
164
165
+ var source string
163
166
if isWindowsCluster {
164
167
err := os .Chdir ("../.." )
165
168
gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
166
169
defer func () {
167
170
err := os .Chdir ("test/e2e" )
168
171
gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
169
172
}()
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" , strings .TrimRight (string (decodedBytes ), "\n " ))
170
182
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 {
171
191
getSMBPublicIPScript := "test/utils/get_smb_svc_public_ip.sh"
172
192
log .Printf ("run script: %s\n " , getSMBPublicIPScript )
173
193
@@ -177,8 +197,10 @@ var _ = ginkgo.BeforeSuite(func() {
177
197
gomega .Expect (err ).NotTo (gomega .HaveOccurred ())
178
198
179
199
smbPublicIP := strings .TrimSuffix (string (output ), "\n " )
180
- source := fmt .Sprintf ("//%s/share" , smbPublicIP )
200
+ source = fmt .Sprintf ("//%s/share" , smbPublicIP )
201
+ }
181
202
203
+ if isWindowsCluster {
182
204
log .Printf ("use source on Windows: %v\n " , source )
183
205
defaultStorageClassParameters ["source" ] = source
184
206
retainStorageClassParameters ["source" ] = source
0 commit comments