@@ -182,11 +182,25 @@ func clusterUpGKE(gceZone, gceRegion string, numNodes int, imageType string, use
182
182
}
183
183
184
184
cmd = exec .Command ("gcloud" , cmdParams ... )
185
- err = runCommand ("Staring E2E Cluster on GKE" , cmd )
185
+ err = runCommand ("Starting E2E Cluster on GKE" , cmd )
186
186
if err != nil {
187
187
return fmt .Errorf ("failed to bring up kubernetes e2e cluster on gke: %v" , err )
188
188
}
189
189
190
+ // Because gcloud cannot disable addons on cluster create, the deployment has
191
+ // to be disabled on update.
192
+ clusterVersion := mustGetKubeClusterVersion ()
193
+ if ! useManagedDriver && isGKEDeploymentInstalledByDefault (clusterVersion ) {
194
+ cmd = exec .Command (
195
+ "gcloud" , "beta" , "container" , "clusters" , "update" ,
196
+ * gkeTestClusterName , locationArg , locationVal , "--quiet" ,
197
+ "--update-addons" , "GcePersistentDiskCsiDriver=DISABLED" )
198
+ err = runCommand ("Updating E2E Cluster on GKE to disable driver deployment" , cmd )
199
+ if err != nil {
200
+ return fmt .Errorf ("failed to update kubernetes e2e cluster on gke: %v" , err )
201
+ }
202
+ }
203
+
190
204
return nil
191
205
}
192
206
@@ -379,3 +393,10 @@ func getKubeClient() (kubernetes.Interface, error) {
379
393
}
380
394
return kubeClient , nil
381
395
}
396
+
397
+ func isGKEDeploymentInstalledByDefault (clusterVersion string ) bool {
398
+ cv := mustParseVersion (clusterVersion )
399
+ return cv .atLeast (mustParseVersion ("1.18.10-gke.2101" )) &&
400
+ cv .lessThan (mustParseVersion ("1.19" )) ||
401
+ cv .atLeast (mustParseVersion ("1.19.3-gke.2100" ))
402
+ }
0 commit comments