Skip to content

Commit 423ae53

Browse files
committed
disable gke deployment for clusters with installation by default if GKE deployment is not requested
1 parent 64b14a7 commit 423ae53

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

test/k8s-integration/cluster.go

+26-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import (
1010
"strconv"
1111
"strings"
1212

13-
apimachineryversion "k8s.io/apimachinery/pkg/version"
13+
apimachineryversion "k8s.io/apimachinery/pkg/util/version"
14+
apimachineryversiontypes "k8s.io/apimachinery/pkg/version"
1415
"k8s.io/client-go/kubernetes"
1516
"k8s.io/client-go/tools/clientcmd"
1617
"k8s.io/klog"
@@ -182,11 +183,25 @@ func clusterUpGKE(gceZone, gceRegion string, numNodes int, imageType string, use
182183
}
183184

184185
cmd = exec.Command("gcloud", cmdParams...)
185-
err = runCommand("Staring E2E Cluster on GKE", cmd)
186+
err = runCommand("Starting E2E Cluster on GKE", cmd)
186187
if err != nil {
187188
return fmt.Errorf("failed to bring up kubernetes e2e cluster on gke: %v", err)
188189
}
189190

191+
// Because gcloud cannot disable addons on cluster create, the deployment has
192+
// to be disabled on update.
193+
clusterVersion := mustGetKubeClusterVersion()
194+
if !useManagedDriver && isGKEDeploymentInstalledByDefault(clusterVersion) {
195+
cmd = exec.Command(
196+
"gcloud", "beta", "container", "clusters", "update",
197+
*gkeTestClusterName, locationArg, locationVal, "--quiet",
198+
"--update-addons", "GcePersistentDiskCsiDriver=DISABLED")
199+
err = runCommand("Updating E2E Cluster on GKE to disable driver deployment", cmd)
200+
if err != nil {
201+
return fmt.Errorf("failed to update kubernetes e2e cluster on gke: %v", err)
202+
}
203+
}
204+
190205
return nil
191206
}
192207

@@ -326,8 +341,8 @@ func getKubeClusterVersion() (string, error) {
326341
return "", fmt.Errorf("failed to obtain cluster version, error: %v", err)
327342
}
328343
type version struct {
329-
ClientVersion *apimachineryversion.Info `json:"clientVersion,omitempty" yaml:"clientVersion,omitempty"`
330-
ServerVersion *apimachineryversion.Info `json:"serverVersion,omitempty" yaml:"serverVersion,omitempty"`
344+
ClientVersion *apimachineryversiontypes.Info `json:"clientVersion,omitempty" yaml:"clientVersion,omitempty"`
345+
ServerVersion *apimachineryversiontypes.Info `json:"serverVersion,omitempty" yaml:"serverVersion,omitempty"`
331346
}
332347

333348
var v version
@@ -379,3 +394,10 @@ func getKubeClient() (kubernetes.Interface, error) {
379394
}
380395
return kubeClient, nil
381396
}
397+
398+
func isGKEDeploymentInstalledByDefault(clusterVersion string) bool {
399+
cv := apimachineryversion.MustParseSemantic(clusterVersion)
400+
return cv.AtLeast(apimachineryversion.MustParseSemantic("1.18.10-gke.2101")) &&
401+
cv.LessThan(apimachineryversion.MustParseSemantic("1.19")) ||
402+
cv.AtLeast(apimachineryversion.MustParseSemantic("1.19.3-gke.2100"))
403+
}

0 commit comments

Comments
 (0)