Skip to content

Commit bee6815

Browse files
committed
save profile
1 parent a350065 commit bee6815

File tree

3 files changed

+34
-38
lines changed

3 files changed

+34
-38
lines changed

cmd/minikube/cmd/start.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ func runStart(cmd *cobra.Command, args []string) {
221221
updateDriver(driverName)
222222
}
223223

224-
cc, n, err := generateCfgFromFlags(cmd, *existing)
224+
cc, n, err := generateCfgFromFlags(cmd, existing)
225225
if err != nil {
226226
exit.WithError("Failed to generate config", err)
227227
}
@@ -284,7 +284,7 @@ func runStart(cmd *cobra.Command, args []string) {
284284
}
285285
}
286286

287-
if err := showKubectlInfo(kubeconfig, k8sVersion, cc.Name); err != nil {
287+
if err := showKubectlInfo(kubeconfig, cc.KubernetesConfig.KubernetesVersion, cc.Name); err != nil {
288288
glog.Errorf("kubectl info: %v", err)
289289
}
290290
}

cmd/minikube/cmd/start_flags.go

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -143,19 +143,27 @@ func ClusterFlagValue() string {
143143
}
144144

145145
// 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{}
147148

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})
150158
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")
152160
}
153161

154162
// Pick good default values for --network-plugin and --enable-default-cni based on runtime.
155163
if r.DefaultCNI() && !cmd.Flags().Changed(networkPlugin) {
156-
existing.KubernetesConfig.NetworkPlugin = "cni"
164+
cc.KubernetesConfig.NetworkPlugin = "cni"
157165
if !cmd.Flags().Changed(enableDefaultCNI) {
158-
existing.KubernetesConfig.EnableDefaultCNI = true
166+
cc.KubernetesConfig.EnableDefaultCNI = true
159167
}
160168
}
161169

@@ -165,13 +173,13 @@ func generateCfgFromFlags(cmd *cobra.Command, existing config.ClusterConfig) (co
165173
}
166174

167175
if cmd.Flags().Changed(imageRepository) {
168-
existing.KubernetesConfig.ImageRepository = viper.GetString(imageRepository)
176+
cc.KubernetesConfig.ImageRepository = viper.GetString(imageRepository)
169177
}
170178

171179
mirrorCountry := strings.ToLower(viper.GetString(imageMirrorCountry))
172180

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)))
175183
if err != nil {
176184
exit.WithError("Failed to check main repository and mirrors for images for images", err)
177185
}
@@ -183,22 +191,23 @@ func generateCfgFromFlags(cmd *cobra.Command, existing config.ClusterConfig) (co
183191
out.WarningT("None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.", out.V{"image_repository_name": autoSelectedRepository})
184192
}
185193
}
186-
existing.KubernetesConfig.ImageRepository = autoSelectedRepository
194+
cc.KubernetesConfig.ImageRepository = autoSelectedRepository
187195
}
188196

189197
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})
191199
}
192200

193201
var kubeNodeName string
194-
if driver.BareMetal(existing.Driver) {
202+
if driver.BareMetal(cc.Driver) {
195203
kubeNodeName = "m01"
196204
}
197-
return createNode(cmd, existing, kubeNodeName)
205+
return createNode(cmd, cc, kubeNodeName)
198206
}
199207

200208
// 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 {
202211
if cmd.Flags().Changed(containerRuntime) {
203212
existing.KubernetesConfig.ContainerRuntime = viper.GetString(containerRuntime)
204213
}
@@ -240,6 +249,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
240249
}
241250
existing.DiskSize = d
242251
}
252+
243253
if cmd.Flags().Changed("vm-driver") {
244254
existing.Driver = viper.GetString("vm-driver")
245255
}
@@ -253,7 +263,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
253263
}
254264

255265
if cmd.Flags().Changed(vsockPorts) {
256-
existing.HyperkitVSockPorts = viper.GetString(vsockPorts)
266+
existing.HyperkitVSockPorts = viper.GetStringSlice(vsockPorts)
257267
}
258268

259269
if cmd.Flags().Changed(nfsShare) {
@@ -264,12 +274,6 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
264274
existing.NFSSharesRoot = viper.GetString(nfsSharesRoot)
265275
}
266276

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-
273277
if cmd.Flags().Changed(hostOnlyCIDR) {
274278
existing.HostOnlyCIDR = viper.GetString(hostOnlyCIDR)
275279
}
@@ -279,7 +283,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
279283
}
280284

281285
if cmd.Flags().Changed(hypervUseExternalSwitch) {
282-
existing.HypervUseExternalSwitch = viper.GetString(hypervUseExternalSwitch)
286+
existing.HypervUseExternalSwitch = viper.GetBool(hypervUseExternalSwitch)
283287
}
284288

285289
if cmd.Flags().Changed(hypervExternalAdapter) {
@@ -295,11 +299,11 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
295299
}
296300

297301
if cmd.Flags().Changed(kvmGPU) {
298-
existing.KVMGPU = viper.GetString(kvmGPU)
302+
existing.KVMGPU = viper.GetBool(kvmGPU)
299303
}
300304

301305
if cmd.Flags().Changed(kvmHidden) {
302-
existing.KVMHidden = viper.GetString(kvmHidden)
306+
existing.KVMHidden = viper.GetBool(kvmHidden)
303307
}
304308

305309
if cmd.Flags().Changed(disableDriverMounts) {
@@ -339,11 +343,7 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
339343
}
340344

341345
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")
347347
}
348348

349349
if cmd.Flags().Changed(dnsDomain) {
@@ -378,21 +378,17 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing config.ClusterCo
378378
existing.KubernetesConfig.ShouldLoadCachedImages = viper.GetBool(cacheImages)
379379
}
380380

381-
if cmd.Flags().Changed("extra-config") {
382-
existing.KubernetesConfig.ExtraOptions = viper.GetVar("extra-config")
383-
}
384-
385381
if cmd.Flags().Changed(imageRepository) {
386382
existing.KubernetesConfig.ImageRepository = viper.GetString(imageRepository)
387383
}
388384

389385
if cmd.Flags().Changed(enableDefaultCNI) {
390386
existing.KubernetesConfig.EnableDefaultCNI = viper.GetBool(enableDefaultCNI)
391387
}
392-
388+
393389
existing.VerifyComponents = interpretWaitFlag(*cmd)
394390

395-
return existing
391+
return *existing
396392
}
397393

398394
// interpretWaitFlag interprets the wait flag and respects the legacy minikube users
@@ -439,4 +435,3 @@ func interpretWaitFlag(cmd cobra.Command) map[string]bool {
439435
glog.Infof("Waiting for components: %+v", waitComponents)
440436
return waitComponents
441437
}
442-

pkg/minikube/config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ func (c *simpleConfigLoader) LoadConfigFromFile(profileName string, miniHome ...
194194

195195
func (c *simpleConfigLoader) WriteConfigToFile(profileName string, cc *ClusterConfig, miniHome ...string) error {
196196
// Move to profile package
197+
fmt.Println("inside WriteConfigToFile")
197198
path := profileFilePath(profileName, miniHome...)
198199
contents, err := json.MarshalIndent(cc, "", " ")
199200
if err != nil {

0 commit comments

Comments
 (0)