Skip to content

Commit 1dfd0fa

Browse files
committed
fix: Don't show VirtualBox warning when auto-selected
minikube should not warn users about VirtualBox driver when it was auto-selected rather than manually specified by the user. Added DriverAutoSelected field to ClusterConfig to track whether the driver was automatically selected or manually chosen, and updated the VirtualBox warning logic to only show warnings for manually selected drivers. Fixes #15456 Signed-off-by: vamshi <[email protected]>
1 parent b973335 commit 1dfd0fa

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed

cmd/minikube/cmd/start.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ func runStart(cmd *cobra.Command, _ []string) {
225225

226226
useForce := viper.GetBool(force)
227227

228-
starter, err := provisionWithDriver(cmd, ds, existing)
228+
starter, err := provisionWithDriver(cmd, ds, existing, specified)
229229
if err != nil {
230230
node.ExitIfFatal(err, useForce)
231231
machine.MaybeDisplayAdvice(err, ds.Name)
@@ -252,7 +252,7 @@ func runStart(cmd *cobra.Command, _ []string) {
252252
if err != nil {
253253
out.WarningT("Failed to delete cluster {{.name}}, proceeding with retry anyway.", out.V{"name": ClusterFlagValue()})
254254
}
255-
starter, err = provisionWithDriver(cmd, ds, existing)
255+
starter, err = provisionWithDriver(cmd, ds, existing, false)
256256
if err != nil {
257257
continue
258258
}
@@ -299,7 +299,7 @@ func runStart(cmd *cobra.Command, _ []string) {
299299
}
300300
}
301301

302-
func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *config.ClusterConfig) (node.Starter, error) {
302+
func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *config.ClusterConfig, driverManuallySpecified bool) (node.Starter, error) {
303303
driverName := ds.Name
304304
klog.Infof("selected driver: %s", driverName)
305305
validateDriver(ds, existing)
@@ -341,7 +341,7 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *
341341
}
342342

343343
rtime := getContainerRuntime(existing)
344-
cc, n, err := generateClusterConfig(cmd, existing, k8sVersion, rtime, driverName)
344+
cc, n, err := generateClusterConfig(cmd, existing, k8sVersion, rtime, driverName, !driverManuallySpecified)
345345
if err != nil {
346346
return node.Starter{}, errors.Wrap(err, "Failed to generate cluster config")
347347
}

cmd/minikube/cmd/start_flags.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,18 +312,20 @@ func ClusterFlagValue() string {
312312
}
313313

314314
// generateClusterConfig generate a config.ClusterConfig based on flags or existing cluster config
315-
func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k8sVersion string, rtime string, drvName string) (config.ClusterConfig, config.Node, error) {
315+
func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k8sVersion string, rtime string, drvName string, driverAutoSelected bool) (config.ClusterConfig, config.Node, error) {
316316
var cc config.ClusterConfig
317317
if existing != nil {
318318
cc = updateExistingConfigFromFlags(cmd, existing)
319+
// Update the DriverAutoSelected flag based on current selection method
320+
cc.DriverAutoSelected = driverAutoSelected
319321

320322
// identify appropriate cni then configure cruntime accordingly
321323
if _, err := cni.New(&cc); err != nil {
322324
return cc, config.Node{}, errors.Wrap(err, "cni")
323325
}
324326
} else {
325327
klog.Info("no existing cluster config was found, will generate one from the flags ")
326-
cc = generateNewConfigFromFlags(cmd, k8sVersion, rtime, drvName)
328+
cc = generateNewConfigFromFlags(cmd, k8sVersion, rtime, drvName, driverAutoSelected)
327329

328330
cnm, err := cni.New(&cc)
329331
if err != nil {
@@ -547,7 +549,7 @@ func validateVfkitNetwork(n string) string {
547549
}
548550

549551
// generateNewConfigFromFlags generate a config.ClusterConfig based on flags
550-
func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime string, drvName string) config.ClusterConfig {
552+
func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime string, drvName string, driverAutoSelected bool) config.ClusterConfig {
551553
var cc config.ClusterConfig
552554

553555
// networkPlugin cni deprecation warning
@@ -578,6 +580,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str
578580
CPUs: getCPUCount(drvName),
579581
DiskSize: getDiskSize(),
580582
Driver: drvName,
583+
DriverAutoSelected: driverAutoSelected,
581584
ListenAddress: viper.GetString(listenAddress),
582585
HyperkitVpnKitSock: viper.GetString(vpnkitSock),
583586
HyperkitVSockPorts: viper.GetStringSlice(vsockPorts),

cmd/minikube/cmd/start_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func TestMirrorCountry(t *testing.T) {
169169
viper.SetDefault(imageRepository, test.imageRepository)
170170
viper.SetDefault(imageMirrorCountry, test.mirrorCountry)
171171
viper.SetDefault(kvmNUMACount, 1)
172-
config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, driver.Mock)
172+
config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, driver.Mock, false)
173173
if err != nil {
174174
t.Fatalf("Got unexpected error %v during config generation", err)
175175
}
@@ -230,7 +230,7 @@ func TestGenerateCfgFromFlagsHTTPProxyHandling(t *testing.T) {
230230

231231
cfg.DockerEnv = []string{} // clear docker env to avoid pollution
232232
proxy.SetDockerEnv()
233-
config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, "none")
233+
config, _, err := generateClusterConfig(cmd, nil, k8sVersion, rtime, "none", false)
234234
if err != nil {
235235
t.Fatalf("Got unexpected error %v during config generation", err)
236236
}

pkg/minikube/config/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type ClusterConfig struct {
4343
CPUs int
4444
DiskSize int
4545
Driver string
46+
DriverAutoSelected bool // Track if driver was auto-selected vs manually chosen
4647
HyperkitVpnKitSock string // Only used by the Hyperkit driver
4748
HyperkitVSockPorts []string // Only used by the Hyperkit driver
4849
DockerEnv []string // Each entry is formatted as KEY=VALUE.

pkg/minikube/node/start.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ func Start(starter Starter) (*kubeconfig.Settings, error) { // nolint:gocyclo
218218
go addons.Enable(&wg, starter.Cfg, list, enabledAddons)
219219
}
220220

221-
// discourage use of the virtualbox driver
222-
if starter.Cfg.Driver == driver.VirtualBox && viper.GetBool(config.WantVirtualBoxDriverWarning) {
221+
// discourage use of the virtualbox driver, but only if it was manually selected
222+
if starter.Cfg.Driver == driver.VirtualBox && !starter.Cfg.DriverAutoSelected && viper.GetBool(config.WantVirtualBoxDriverWarning) {
223223
warnVirtualBox()
224224
}
225225

0 commit comments

Comments
 (0)