@@ -59,7 +59,7 @@ func buildKubernetes(k8sDir, command string) error {
59
59
return nil
60
60
}
61
61
62
- func clusterUpGCE (k8sDir , gceZone string , numNodes int ) error {
62
+ func clusterUpGCE (k8sDir , gceZone string , numNodes int , imageType string ) error {
63
63
kshPath := filepath .Join (k8sDir , "cluster" , "kubectl.sh" )
64
64
_ , err := os .Stat (kshPath )
65
65
if err == nil {
@@ -80,6 +80,11 @@ func clusterUpGCE(k8sDir, gceZone string, numNodes int) error {
80
80
klog .V (4 ).Infof ("Set Kubernetes feature gates: %v" , * kubeFeatureGates )
81
81
}
82
82
83
+ err = setImageTypeEnvs (imageType )
84
+ if err != nil {
85
+ return fmt .Errorf ("failed to set image type environment variables: %v" , err )
86
+ }
87
+
83
88
err = os .Setenv ("NUM_NODES" , strconv .Itoa (numNodes ))
84
89
if err != nil {
85
90
return err
@@ -98,7 +103,35 @@ func clusterUpGCE(k8sDir, gceZone string, numNodes int) error {
98
103
return nil
99
104
}
100
105
101
- func clusterUpGKE (gceZone , gceRegion string , numNodes int ) error {
106
+ func setImageTypeEnvs (imageType string ) error {
107
+ //const image = "ubuntu-1804-bionic-v20191211"
108
+ //const imageProject = "ubuntu-os-cloud"
109
+ switch strings .ToLower (imageType ) {
110
+ case "cos" :
111
+ case "gci" : // GCI/COS is default type and does not need env vars set
112
+ case "ubuntu" :
113
+ return errors .New ("setting environment vars for bringing up *ubuntu* cluster on GCE is unimplemented" )
114
+ /* TODO(dyzz) figure out how to bring up a Ubuntu cluster on GCE. The below doesn't work.
115
+ err := os.Setenv("KUBE_OS_DISTRIBUTION", "ubuntu")
116
+ if err != nil {
117
+ return err
118
+ }
119
+ err = os.Setenv("KUBE_GCE_NODE_IMAGE", image)
120
+ if err != nil {
121
+ return err
122
+ }
123
+ err = os.Setenv("KUBE_GCE_NODE_PROJECT", imageProject)
124
+ if err != nil {
125
+ return err
126
+ }
127
+ */
128
+ default :
129
+ return fmt .Errorf ("could not set env for image type %s, only gci, cos, ubuntu supported" )
130
+ }
131
+ return nil
132
+ }
133
+
134
+ func clusterUpGKE (gceZone , gceRegion string , numNodes int , imageType string ) error {
102
135
locationArg , locationVal , err := gkeLocationArgs (gceZone , gceRegion )
103
136
if err != nil {
104
137
return err
@@ -119,7 +152,7 @@ func clusterUpGKE(gceZone, gceRegion string, numNodes int) error {
119
152
}
120
153
cmd := exec .Command ("gcloud" , "container" , "clusters" , "create" , gkeTestClusterName ,
121
154
locationArg , locationVal , "--cluster-version" , * gkeClusterVer , "--num-nodes" , strconv .Itoa (numNodes ),
122
- "--quiet" , "--machine-type" , "n1-standard-2" )
155
+ "--quiet" , "--machine-type" , "n1-standard-2" , "--image-type" , imageType )
123
156
err = runCommand ("Staring E2E Cluster on GKE" , cmd )
124
157
if err != nil {
125
158
return fmt .Errorf ("failed to bring up kubernetes e2e cluster on gke: %v" , err )
@@ -184,7 +217,7 @@ func downloadKubernetesSource(pkgDir, k8sIoDir, kubeVersion string) error {
184
217
return nil
185
218
}
186
219
187
- func getGKEKubeTestArgs (gceZone , gceRegion string ) ([]string , error ) {
220
+ func getGKEKubeTestArgs (gceZone , gceRegion , imageType string ) ([]string , error ) {
188
221
var locationArg , locationVal string
189
222
switch {
190
223
case len (gceZone ) > 0 :
@@ -222,7 +255,7 @@ func getGKEKubeTestArgs(gceZone, gceRegion string) ([]string, error) {
222
255
"--gcp-network=default" ,
223
256
"--check-version-skew=false" ,
224
257
"--deployment=gke" ,
225
- "--gcp-node-image=cos" ,
258
+ fmt . Sprintf ( "--gcp-node-image=%s" , imageType ) ,
226
259
"--gcp-network=default" ,
227
260
fmt .Sprintf ("--cluster=%s" , gkeTestClusterName ),
228
261
fmt .Sprintf ("--gke-environment=%s" , gkeEnv ),
0 commit comments