67
67
// Test flags
68
68
migrationTest = flag .Bool ("migration-test" , false , "sets the flag on the e2e binary signalling migration" )
69
69
testFocus = flag .String ("test-focus" , "" , "test focus for Kubernetes e2e" )
70
+
71
+ useKubeTest2 = flag .Bool ("use-kubetest2" , false , "use kubetest2 to run e2e tests" )
70
72
)
71
73
72
74
const (
@@ -89,6 +91,7 @@ type testParameters struct {
89
91
testSkip string
90
92
snapshotClassFile string
91
93
cloudProviderArgs []string
94
+ cloudProviderArgsK2 []string
92
95
deploymentStrategy string
93
96
outputDir string
94
97
allowedNotReadyNodes int
@@ -436,10 +439,23 @@ func handle() error {
436
439
437
440
switch testParams .deploymentStrategy {
438
441
case "gke" :
439
- testParams .cloudProviderArgs , err = getGKEKubeTestArgs (* gceZone , * gceRegion , testParams .imageType )
440
- if err != nil {
442
+ // Build params for both kubetest and kubetest2 for debugging.
443
+ testParams .cloudProviderArgs , err = getGKEKubeTestArgs (* gceZone , * gceRegion , testParams .imageType , false /* useKubeTest2 */ )
444
+ if err != nil && ! * useKubeTest2 {
441
445
return fmt .Errorf ("failed to build GKE kubetest args: %v" , err )
442
446
}
447
+ testParams .cloudProviderArgsK2 , err = getGKEKubeTestArgs (* gceZone , * gceRegion , testParams .imageType , true /* useKubeTest2 */ )
448
+ if err != nil && * useKubeTest2 {
449
+ return fmt .Errorf ("failed to build GKE kubetest2 args: %v" , err )
450
+ }
451
+ case "gce" :
452
+ testParams .cloudProviderArgsK2 = []string {
453
+ // This flag tells kubetest2 what "repo-root" is.
454
+ // If --legacy-mode is set, kubernetes/kubernetes is used;
455
+ // otherwise kubernetes/cloud-provider-gcp is used.
456
+ "--legacy-mode" ,
457
+ fmt .Sprintf ("--repo-root=%s" , * localK8sDir ),
458
+ }
443
459
}
444
460
445
461
// Kubernetes version of GKE deployments are expected to be of the pattern x.y.z-gke.k,
@@ -634,12 +650,32 @@ func runTestsWithConfig(testParams *testParameters, testConfigArg, reportPrefix
634
650
"--check-version-skew=false" ,
635
651
fmt .Sprintf ("--test_args=%s" , testArgs ),
636
652
}
653
+
654
+ kubeTest2Args := []string {
655
+ * deploymentStrat ,
656
+ "--test=ginkgo" ,
657
+ }
658
+ kubeTest2Args = append (kubeTest2Args , testParams .cloudProviderArgsK2 ... )
659
+ if kubetestDumpDir != "" {
660
+ kubeTest2Args = append (kubeTest2Args , fmt .Sprintf ("--log_dir=%s" , kubetestDumpDir ))
661
+ }
662
+ kubeTest2Args = append (kubeTest2Args , "--" )
663
+ kubeTest2Args = append (kubeTest2Args , fmt .Sprintf ("--focus-regex=%s" , testParams .testFocus ))
664
+ kubeTest2Args = append (kubeTest2Args , fmt .Sprintf ("--skip-regex=%s" , testParams .testSkip ))
665
+ // kubetest uses 25 as default value for ginkgo parallelism (--nodes).
666
+ kubeTest2Args = append (kubeTest2Args , "--parallel=25" )
667
+ kubeTest2Args = append (kubeTest2Args , fmt .Sprintf ("--test-args=%s %s" , testConfigArg , reportArg ))
668
+
637
669
if kubetestDumpDir != "" {
638
670
kubeTestArgs = append (kubeTestArgs , fmt .Sprintf ("--dump=%s" , kubetestDumpDir ))
639
671
}
640
672
kubeTestArgs = append (kubeTestArgs , testParams .cloudProviderArgs ... )
641
673
642
- err = runCommand ("Running Tests" , exec .Command ("kubetest" , kubeTestArgs ... ))
674
+ if * useKubeTest2 {
675
+ err = runCommand ("Running Tests" , exec .Command ("kubetest2" , kubeTest2Args ... ))
676
+ } else {
677
+ err = runCommand ("Running Tests" , exec .Command ("kubetest" , kubeTestArgs ... ))
678
+ }
643
679
if err != nil {
644
680
return fmt .Errorf ("failed to run tests on e2e cluster: %v" , err )
645
681
}
0 commit comments