@@ -42,10 +42,12 @@ var (
42
42
localK8sDir = flag .String ("local-k8s-dir" , "" , "local kubernetes/kubernetes directory to run e2e tests from" )
43
43
doDriverBuild = flag .Bool ("do-driver-build" , true , "building the driver from source" )
44
44
boskosResourceType = flag .String ("boskos-resource-type" , "gce-project" , "name of the boskos resource type to reserve" )
45
+ storageClassFile = flag .String ("storageclass-file" , "" , "name of storageclass yaml file to use for test relative to test/k8s-integration/config" )
45
46
)
46
47
47
48
const (
48
49
pdImagePlaceholder = "REPLACEME/gcp-compute-persistent-disk-csi-driver"
50
+ k8sBuildBinDir = "_output/dockerized/bin/linux/amd64"
49
51
)
50
52
51
53
func init () {
@@ -66,6 +68,10 @@ func main() {
66
68
glog .Fatalf ("deploy-overlay-name is a required flag" )
67
69
}
68
70
71
+ if len (* storageClassFile ) == 0 {
72
+ glog .Fatalf ("storageclass-file is a required flag" )
73
+ }
74
+
69
75
err := handle ()
70
76
if err != nil {
71
77
glog .Fatalf ("Failed to run integration test: %v" , err )
@@ -186,7 +192,7 @@ func handle() error {
186
192
if len (* localK8sDir ) != 0 {
187
193
k8sDir = * localK8sDir
188
194
}
189
- err = runTests (k8sDir )
195
+ err = runTests (pkgDir , k8sDir , * storageClassFile )
190
196
if err != nil {
191
197
return fmt .Errorf ("failed to run tests: %v" , err )
192
198
}
@@ -207,20 +213,34 @@ func setEnvProject(project string) error {
207
213
return nil
208
214
}
209
215
210
- func runTests (k8sDir string ) error {
211
- err := os .Chdir (k8sDir )
216
+ func runTests (pkgDir , k8sDir , storageClassFile string ) error {
217
+ testDriverConfigFile , err := generateDriverConfigFile (pkgDir , storageClassFile )
218
+ if err != nil {
219
+ return err
220
+ }
221
+
222
+ err = os .Chdir (k8sDir )
212
223
if err != nil {
213
224
return err
214
225
}
226
+
227
+ homeDir , _ := os .LookupEnv ("HOME" )
228
+ os .Setenv ("KUBECONFIG" , filepath .Join (homeDir , ".kube/config" ))
229
+
215
230
artifactsDir , _ := os .LookupEnv ("ARTIFACTS" )
216
- reportArg := fmt .Sprintf ("--report-dir=%s" , artifactsDir )
217
- testArgs := fmt .Sprintf ("--test_args=--ginkgo.focus=CSI.*gcePD-external --ginkgo.skip=\\ [Disruptive\\ ]|\\ [Serial\\ ]|kubelet.*down %s" , reportArg )
218
- cmd := exec .Command ("go" , "run" , "hack/e2e.go" ,
231
+ reportArg := fmt .Sprintf ("-report-dir=%s" , artifactsDir )
232
+
233
+ driverConfigArg := fmt .Sprintf ("-storage.testdriver=%s" , testDriverConfigFile )
234
+
235
+ cmd := exec .Command (filepath .Join (k8sBuildBinDir , "ginkgo" ),
236
+ "-p" ,
237
+ "-focus='External.Storage'" ,
238
+ "-skip='\\ [Disruptive\\ ]|\\ [Serial\\ ]|\\ [Feature:.+\\ ]'" ,
239
+ filepath .Join (k8sBuildBinDir , "e2e.test" ),
219
240
"--" ,
220
- "--check-version-skew=false" ,
221
- "--test" ,
222
- "--ginkgo-parallel" ,
223
- testArgs )
241
+ reportArg ,
242
+ driverConfigArg )
243
+
224
244
err = runCommand ("Running Tests" , cmd )
225
245
if err != nil {
226
246
return fmt .Errorf ("failed to run tests on e2e cluster: %v" , err )
@@ -235,6 +255,7 @@ func runCommand(action string, cmd *exec.Cmd) error {
235
255
cmd .Stderr = os .Stderr
236
256
237
257
fmt .Printf ("%s\n " , action )
258
+ fmt .Printf ("%s\n " , cmd .Args )
238
259
239
260
err := cmd .Start ()
240
261
if err != nil {
0 commit comments