@@ -143,19 +143,27 @@ func ClusterFlagValue() string {
143
143
}
144
144
145
145
// generateCfgFromFlags generates config.ClusterConfig based on flags and supplied arguments
146
- func generateCfgFromFlags (cmd * cobra.Command , existing config.ClusterConfig ) (config.ClusterConfig , config.Node , error ) {
146
+ func generateCfgFromFlags (cmd * cobra.Command , existing * config.ClusterConfig ) (config.ClusterConfig , config.Node , error ) {
147
+ cc := config.ClusterConfig {}
147
148
148
- existing = updateExistingConfigFromFlags (cmd , existing )
149
- r , err := cruntime .New (cruntime.Config {Type : existing .KubernetesConfig .ContainerRuntime })
149
+ if existing == nil { // create profile config first time
150
+ if err := config .CreateEmptyProfile (ClusterFlagValue ()); err != nil {
151
+ return cc , config.Node {}, errors .Wrap (err , "create empty profile config" )
152
+ }
153
+ } else {
154
+ cc = updateExistingConfigFromFlags (cmd , existing )
155
+ }
156
+
157
+ r , err := cruntime .New (cruntime.Config {Type : cc .KubernetesConfig .ContainerRuntime })
150
158
if err != nil {
151
- return existing , config.Node {}, errors .Wrap (err , "new runtime manager" )
159
+ return cc , config.Node {}, errors .Wrap (err , "new runtime manager" )
152
160
}
153
161
154
162
// Pick good default values for --network-plugin and --enable-default-cni based on runtime.
155
163
if r .DefaultCNI () && ! cmd .Flags ().Changed (networkPlugin ) {
156
- existing .KubernetesConfig .NetworkPlugin = "cni"
164
+ cc .KubernetesConfig .NetworkPlugin = "cni"
157
165
if ! cmd .Flags ().Changed (enableDefaultCNI ) {
158
- existing .KubernetesConfig .EnableDefaultCNI = true
166
+ cc .KubernetesConfig .EnableDefaultCNI = true
159
167
}
160
168
}
161
169
@@ -165,13 +173,13 @@ func generateCfgFromFlags(cmd *cobra.Command, existing config.ClusterConfig) (co
165
173
}
166
174
167
175
if cmd .Flags ().Changed (imageRepository ) {
168
- existing .KubernetesConfig .ImageRepository = viper .GetString (imageRepository )
176
+ cc .KubernetesConfig .ImageRepository = viper .GetString (imageRepository )
169
177
}
170
178
171
179
mirrorCountry := strings .ToLower (viper .GetString (imageMirrorCountry ))
172
180
173
- if strings .ToLower (existing .KubernetesConfig .ImageRepository ) == "auto" || mirrorCountry != "" {
174
- found , autoSelectedRepository , err := selectImageRepository (mirrorCountry , semver .MustParse (strings .TrimPrefix (getKubernetesVersion (& existing ), version .VersionPrefix )))
181
+ if strings .ToLower (cc .KubernetesConfig .ImageRepository ) == "auto" || mirrorCountry != "" {
182
+ found , autoSelectedRepository , err := selectImageRepository (mirrorCountry , semver .MustParse (strings .TrimPrefix (getKubernetesVersion (& cc ), version .VersionPrefix )))
175
183
if err != nil {
176
184
exit .WithError ("Failed to check main repository and mirrors for images for images" , err )
177
185
}
@@ -183,22 +191,23 @@ func generateCfgFromFlags(cmd *cobra.Command, existing config.ClusterConfig) (co
183
191
out .WarningT ("None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback." , out.V {"image_repository_name" : autoSelectedRepository })
184
192
}
185
193
}
186
- existing .KubernetesConfig .ImageRepository = autoSelectedRepository
194
+ cc .KubernetesConfig .ImageRepository = autoSelectedRepository
187
195
}
188
196
189
197
if cmd .Flags ().Changed (imageRepository ) {
190
- out .T (out .SuccessType , "Using image repository {{.name}}" , out.V {"name" : existing .KubernetesConfig .ImageRepository })
198
+ out .T (out .SuccessType , "Using image repository {{.name}}" , out.V {"name" : cc .KubernetesConfig .ImageRepository })
191
199
}
192
200
193
201
var kubeNodeName string
194
- if driver .BareMetal (existing .Driver ) {
202
+ if driver .BareMetal (cc .Driver ) {
195
203
kubeNodeName = "m01"
196
204
}
197
- return createNode (cmd , existing , kubeNodeName )
205
+ return createNode (cmd , cc , kubeNodeName )
198
206
}
199
207
200
208
// updateExistingConfigFromFlags will update the existing config from the flags - used on a second start
201
- func updateExistingConfigFromFlags (cmd * cobra.Command , existing config.ClusterConfig ) config.ClusterConfig {
209
+ // skipping updating existing docker env , docker opt, InsecureRegistry, registryMirror, extra-config, apiserver-ips
210
+ func updateExistingConfigFromFlags (cmd * cobra.Command , existing * config.ClusterConfig ) config.ClusterConfig {
202
211
if cmd .Flags ().Changed (containerRuntime ) {
203
212
existing .KubernetesConfig .ContainerRuntime = viper .GetString (containerRuntime )
204
213
}
@@ -240,6 +249,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
240
249
}
241
250
existing .DiskSize = d
242
251
}
252
+
243
253
if cmd .Flags ().Changed ("vm-driver" ) {
244
254
existing .Driver = viper .GetString ("vm-driver" )
245
255
}
@@ -253,7 +263,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
253
263
}
254
264
255
265
if cmd .Flags ().Changed (vsockPorts ) {
256
- existing .HyperkitVSockPorts = viper .GetString (vsockPorts )
266
+ existing .HyperkitVSockPorts = viper .GetStringSlice (vsockPorts )
257
267
}
258
268
259
269
if cmd .Flags ().Changed (nfsShare ) {
@@ -264,12 +274,6 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
264
274
existing .NFSSharesRoot = viper .GetString (nfsSharesRoot )
265
275
}
266
276
267
- // skipping updating existing docker env , docker opt, InsecureRegistry, registryMirror
268
-
269
- if cmd .Flags ().Changed (vpnkitSock ) {
270
- existing .NFSSharesRoot = viper .GetStringSlice (nfsSharesRoot )
271
- }
272
-
273
277
if cmd .Flags ().Changed (hostOnlyCIDR ) {
274
278
existing .HostOnlyCIDR = viper .GetString (hostOnlyCIDR )
275
279
}
@@ -279,7 +283,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
279
283
}
280
284
281
285
if cmd .Flags ().Changed (hypervUseExternalSwitch ) {
282
- existing .HypervUseExternalSwitch = viper .GetString (hypervUseExternalSwitch )
286
+ existing .HypervUseExternalSwitch = viper .GetBool (hypervUseExternalSwitch )
283
287
}
284
288
285
289
if cmd .Flags ().Changed (hypervExternalAdapter ) {
@@ -295,11 +299,11 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
295
299
}
296
300
297
301
if cmd .Flags ().Changed (kvmGPU ) {
298
- existing .KVMGPU = viper .GetString (kvmGPU )
302
+ existing .KVMGPU = viper .GetBool (kvmGPU )
299
303
}
300
304
301
305
if cmd .Flags ().Changed (kvmHidden ) {
302
- existing .KVMHidden = viper .GetString (kvmHidden )
306
+ existing .KVMHidden = viper .GetBool (kvmHidden )
303
307
}
304
308
305
309
if cmd .Flags ().Changed (disableDriverMounts ) {
@@ -339,11 +343,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
339
343
}
340
344
341
345
if cmd .Flags ().Changed ("apiserver-names" ) {
342
- existing .KubernetesConfig .APIServerNames = viper .GetString ("apiserver-names" )
343
- }
344
-
345
- if cmd .Flags ().Changed ("apiserver-ips" ) {
346
- existing .KubernetesConfig .APIServerIPs = viper .GetString ("apiserver-ips" )
346
+ existing .KubernetesConfig .APIServerNames = viper .GetStringSlice ("apiserver-names" )
347
347
}
348
348
349
349
if cmd .Flags ().Changed (dnsDomain ) {
@@ -378,21 +378,17 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
378
378
existing .KubernetesConfig .ShouldLoadCachedImages = viper .GetBool (cacheImages )
379
379
}
380
380
381
- if cmd .Flags ().Changed ("extra-config" ) {
382
- existing .KubernetesConfig .ExtraOptions = viper .GetVar ("extra-config" )
383
- }
384
-
385
381
if cmd .Flags ().Changed (imageRepository ) {
386
382
existing .KubernetesConfig .ImageRepository = viper .GetString (imageRepository )
387
383
}
388
384
389
385
if cmd .Flags ().Changed (enableDefaultCNI ) {
390
386
existing .KubernetesConfig .EnableDefaultCNI = viper .GetBool (enableDefaultCNI )
391
387
}
392
-
388
+
393
389
existing .VerifyComponents = interpretWaitFlag (* cmd )
394
390
395
- return existing
391
+ return * existing
396
392
}
397
393
398
394
// interpretWaitFlag interprets the wait flag and respects the legacy minikube users
@@ -439,4 +435,3 @@ func interpretWaitFlag(cmd cobra.Command) map[string]bool {
439
435
glog .Infof ("Waiting for components: %+v" , waitComponents )
440
436
return waitComponents
441
437
}
442
-
0 commit comments