Skip to content

Commit d5bc3fd

Browse files
authored
Merge pull request #6888 from sharifelgamal/driver
Switch --vm-driver paramter to --driver
2 parents 9c1dbe7 + 34d5f84 commit d5bc3fd

39 files changed

+319
-190
lines changed

.github/workflows/main.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
chmod a+x e2e-*
101101
chmod a+x minikube-*
102102
START_TIME=$(date -u +%s)
103-
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args=--vm-driver=docker -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
103+
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args=--driver=docker -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
104104
END_TIME=$(date -u +%s)
105105
TIME_ELAPSED=$(($END_TIME-$START_TIME))
106106
min=$((${TIME_ELAPSED}/60))
@@ -168,7 +168,7 @@ jobs:
168168
chmod a+x e2e-*
169169
chmod a+x minikube-*
170170
START_TIME=$(date -u +%s)
171-
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args=--vm-driver=docker -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
171+
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args=--driver=docker -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
172172
END_TIME=$(date -u +%s)
173173
TIME_ELAPSED=$(($END_TIME-$START_TIME))
174174
min=$((${TIME_ELAPSED}/60))
@@ -230,7 +230,7 @@ jobs:
230230
chmod a+x e2e-*
231231
chmod a+x minikube-*
232232
START_TIME=$(date -u +%s)
233-
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--vm-driver=none -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
233+
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--driver=none -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
234234
END_TIME=$(date -u +%s)
235235
TIME_ELAPSED=$(($END_TIME-$START_TIME))
236236
min=$((${TIME_ELAPSED}/60))
@@ -292,7 +292,7 @@ jobs:
292292
chmod a+x e2e-*
293293
chmod a+x minikube-*
294294
START_TIME=$(date -u +%s)
295-
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--vm-driver=none -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
295+
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--driver=none -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
296296
END_TIME=$(date -u +%s)
297297
TIME_ELAPSED=$(($END_TIME-$START_TIME))
298298
min=$((${TIME_ELAPSED}/60))
@@ -365,7 +365,7 @@ jobs:
365365
chmod a+x e2e-*
366366
chmod a+x minikube-*
367367
START_TIME=$(date -u +%s)
368-
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--vm-driver=podman -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
368+
KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome sudo -E ./e2e-linux-amd64 -minikube-start-args=--driver=podman -test.timeout=70m -test.v -timeout-multiplier=3 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt
369369
END_TIME=$(date -u +%s)
370370
TIME_ELAPSED=$(($END_TIME-$START_TIME))
371371
min=$((${TIME_ELAPSED}/60))

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ integration: out/minikube ## Trigger minikube integration test
262262

263263
.PHONY: integration-none-driver
264264
integration-none-driver: e2e-linux-$(GOARCH) out/minikube-linux-$(GOARCH) ## Trigger minikube none driver test
265-
sudo -E out/e2e-linux-$(GOARCH) -testdata-dir "test/integration/testdata" -minikube-start-args="--vm-driver=none" -test.v -test.timeout=60m -binary=out/minikube-linux-amd64 $(TEST_ARGS)
265+
sudo -E out/e2e-linux-$(GOARCH) -testdata-dir "test/integration/testdata" -minikube-start-args="--driver=none" -test.v -test.timeout=60m -binary=out/minikube-linux-amd64 $(TEST_ARGS)
266266

267267
.PHONY: integration-versioned
268268
integration-versioned: out/minikube ## Trigger minikube integration testing

cmd/minikube/cmd/config/config.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ type Setting struct {
4242
// These are all the settings that are configurable
4343
// and their validation and callback fn run on Set
4444
var settings = []Setting{
45+
{
46+
name: "driver",
47+
set: SetString,
48+
validations: []setFn{IsValidDriver},
49+
callbacks: []setFn{RequiresRestartMsg},
50+
},
4551
{
4652
name: "vm-driver",
4753
set: SetString,
@@ -172,7 +178,7 @@ var settings = []Setting{
172178
var ConfigCmd = &cobra.Command{
173179
Use: "config SUBCOMMAND [flags]",
174180
Short: "Modify minikube config",
175-
Long: `config modifies minikube config files using subcommands like "minikube config set vm-driver kvm"
181+
Long: `config modifies minikube config files using subcommands like "minikube config set driver kvm"
176182
Configurable fields: ` + "\n\n" + configurableFields(),
177183
Run: func(cmd *cobra.Command, args []string) {
178184
if err := cmd.Help(); err != nil {

cmd/minikube/cmd/config/get_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func TestGetNotFound(t *testing.T) {
3030

3131
func TestGetOK(t *testing.T) {
3232
createTestConfig(t)
33-
name := "vm-driver"
33+
name := "driver"
3434
err := Set(name, "virtualbox")
3535
if err != nil {
3636
t.Fatalf("Set returned error for property %s, %+v", name, err)

cmd/minikube/cmd/config/set_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,25 @@ func TestNotFound(t *testing.T) {
3434

3535
func TestSetNotAllowed(t *testing.T) {
3636
createTestConfig(t)
37-
err := Set("vm-driver", "123456")
38-
if err == nil || err.Error() != "run validations for \"vm-driver\" with value of \"123456\": [driver \"123456\" is not supported]" {
37+
err := Set("driver", "123456")
38+
if err == nil || err.Error() != "run validations for \"driver\" with value of \"123456\": [driver \"123456\" is not supported]" {
3939
t.Fatalf("Set did not return error for unallowed value: %+v", err)
4040
}
4141
}
4242

4343
func TestSetOK(t *testing.T) {
4444
createTestConfig(t)
45-
err := Set("vm-driver", "virtualbox")
45+
err := Set("driver", "virtualbox")
4646
defer func() {
47-
err = Unset("vm-driver")
47+
err = Unset("driver")
4848
if err != nil {
49-
t.Errorf("failed to unset vm-driver: %+v", err)
49+
t.Errorf("failed to unset driver: %+v", err)
5050
}
5151
}()
5252
if err != nil {
5353
t.Fatalf("Set returned error for valid property value: %+v", err)
5454
}
55-
val, err := Get("vm-driver")
55+
val, err := Get("driver")
5656
if err != nil {
5757
t.Fatalf("Get returned error for valid property: %+v", err)
5858
}

cmd/minikube/cmd/config/util_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
)
2626

2727
var minikubeConfig = pkgConfig.MinikubeConfig{
28-
"vm-driver": driver.KVM2,
28+
"driver": driver.KVM2,
2929
"cpus": 12,
3030
"show-libmachine-logs": true,
3131
}
@@ -38,17 +38,17 @@ func TestFindSettingNotFound(t *testing.T) {
3838
}
3939

4040
func TestFindSetting(t *testing.T) {
41-
s, err := findSetting("vm-driver")
41+
s, err := findSetting("driver")
4242
if err != nil {
43-
t.Fatalf("Couldn't find setting, vm-driver: %v", err)
43+
t.Fatalf("Couldn't find setting, driver: %v", err)
4444
}
45-
if s.name != "vm-driver" {
46-
t.Fatalf("Found wrong setting, expected vm-driver, got %s", s.name)
45+
if s.name != "driver" {
46+
t.Fatalf("Found wrong setting, expected driver, got %s", s.name)
4747
}
4848
}
4949

5050
func TestSetString(t *testing.T) {
51-
err := SetString(minikubeConfig, "vm-driver", driver.VirtualBox)
51+
err := SetString(minikubeConfig, "driver", driver.VirtualBox)
5252
if err != nil {
5353
t.Fatalf("Couldn't set string: %v", err)
5454
}

cmd/minikube/cmd/config/validations_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func TestDriver(t *testing.T) {
5151
},
5252
}
5353

54-
runValidations(t, tests, "vm-driver", IsValidDriver)
54+
runValidations(t, tests, "driver", IsValidDriver)
5555

5656
}
5757

cmd/minikube/cmd/start.go

+18-9
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func initMinikubeFlags() {
153153
startCmd.Flags().String(memory, defaultMemorySize, "Amount of RAM allocated to the minikube VM (format: <number>[<unit>], where unit = b, k, m or g).")
154154
startCmd.Flags().String(humanReadableDiskSize, defaultDiskSize, "Disk size allocated to the minikube VM (format: <number>[<unit>], where unit = b, k, m or g).")
155155
startCmd.Flags().Bool(downloadOnly, false, "If true, only download and cache files for later use - don't install or start anything.")
156-
startCmd.Flags().Bool(cacheImages, true, "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --vm-driver=none.")
156+
startCmd.Flags().Bool(cacheImages, true, "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none.")
157157
startCmd.Flags().String(isoURL, constants.DefaultISOURL, "Location of the minikube iso.")
158158
startCmd.Flags().Bool(keepContext, false, "This will keep the existing kubectl context and will create a minikube context.")
159159
startCmd.Flags().Bool(embedCerts, false, "if true, will embed the certs in kubeconfig.")
@@ -189,7 +189,8 @@ func initKubernetesFlags() {
189189

190190
// initDriverFlags inits the commandline flags for vm drivers
191191
func initDriverFlags() {
192-
startCmd.Flags().String("vm-driver", "", fmt.Sprintf("Driver is one of: %v (defaults to auto-detect)", driver.DisplaySupportedDrivers()))
192+
startCmd.Flags().String("driver", "", fmt.Sprintf("Driver is one of: %v (defaults to auto-detect)", driver.DisplaySupportedDrivers()))
193+
startCmd.Flags().String("vm-driver", "", "DEPRECATED, use `driver` instead.")
193194
startCmd.Flags().Bool(disableDriverMounts, false, "Disables the filesystem mounts provided by the hypervisors")
194195

195196
// kvm2
@@ -443,15 +444,23 @@ func selectDriver(existing *config.ClusterConfig) registry.DriverState {
443444
return ds
444445
}
445446

446-
if viper.GetString("vm-driver") != "" {
447-
ds := driver.Status(viper.GetString("vm-driver"))
447+
// Default to looking at the new driver parameter
448+
if viper.GetString("driver") != "" {
449+
ds := driver.Status(viper.GetString("driver"))
450+
out.T(out.Sparkle, `Using the {{.driver}} driver based on user configuration`, out.V{"driver": ds.String()})
451+
return ds
452+
}
453+
454+
// Fallback to old driver parameter
455+
if viper.GetString("driver") != "" {
456+
ds := driver.Status(viper.GetString("driver"))
448457
out.T(out.Sparkle, `Using the {{.driver}} driver based on user configuration`, out.V{"driver": ds.String()})
449458
return ds
450459
}
451460

452461
pick, alts := driver.Suggest(driver.Choices())
453462
if pick.Name == "" {
454-
exit.WithCodeT(exit.Config, "Unable to determine a default driver to use. Try specifying --vm-driver, or see https://minikube.sigs.k8s.io/docs/start/")
463+
exit.WithCodeT(exit.Config, "Unable to determine a default driver to use. Try specifying --driver, or see https://minikube.sigs.k8s.io/docs/start/")
455464
}
456465

457466
if len(alts) > 1 {
@@ -525,7 +534,7 @@ func validateDriver(ds registry.DriverState, existing *config.ClusterConfig) {
525534
526535
* or *
527536
528-
2) Start the existing "{{.profile_name}}" cluster using: '{{.command}} start --vm-driver={{.old_driver}}'
537+
2) Start the existing "{{.profile_name}}" cluster using: '{{.command}} start --driver={{.old_driver}}'
529538
`, out.V{"command": minikubeCmd(), "old_driver": h.Driver.DriverName(), "profile_name": machineName})
530539

531540
exit.WithCodeT(exit.Config, "Exiting.")
@@ -601,15 +610,15 @@ func validateUser(drvName string) {
601610
useForce := viper.GetBool(force)
602611

603612
if driver.NeedsRoot(drvName) && u.Uid != "0" && !useForce {
604-
exit.WithCodeT(exit.Permissions, `The "{{.driver_name}}" driver requires root privileges. Please run minikube using 'sudo minikube --vm-driver={{.driver_name}}'.`, out.V{"driver_name": drvName})
613+
exit.WithCodeT(exit.Permissions, `The "{{.driver_name}}" driver requires root privileges. Please run minikube using 'sudo minikube --driver={{.driver_name}}'.`, out.V{"driver_name": drvName})
605614
}
606615

607616
if driver.NeedsRoot(drvName) || u.Uid != "0" {
608617
return
609618
}
610619

611620
out.T(out.Stopped, `The "{{.driver_name}}" driver should not be used with root privileges.`, out.V{"driver_name": drvName})
612-
out.T(out.Tip, "If you are running minikube within a VM, consider using --vm-driver=none:")
621+
out.T(out.Tip, "If you are running minikube within a VM, consider using --driver=none:")
613622
out.T(out.Documentation, " https://minikube.sigs.k8s.io/docs/reference/drivers/none/")
614623

615624
if !useForce {
@@ -851,7 +860,7 @@ func setDockerProxy() {
851860
}
852861
}
853862

854-
// autoSetDriverOptions sets the options needed for specific vm-driver automatically.
863+
// autoSetDriverOptions sets the options needed for specific driver automatically.
855864
func autoSetDriverOptions(cmd *cobra.Command, drvName string) (err error) {
856865
err = nil
857866
hints := driver.FlagDefaults(drvName)

hack/conformance_tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# conformance_tests.sh <path to minikube> <flags>
2222
#
2323
# Example:
24-
# conformance_tests.sh ./out/minikube --vm-driver=hyperkit
24+
# conformance_tests.sh ./out/minikube --driver=hyperkit
2525
set -ex -o pipefail
2626

2727
readonly PROFILE_NAME="k8sconformance"

hack/jenkins/common.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
# The script expects the following env variables:
2121
# OS_ARCH: The operating system and the architecture separated by a hyphen '-' (e.g. darwin-amd64, linux-amd64, windows-amd64)
22-
# VM_DRIVER: the vm-driver to use for the test
22+
# VM_DRIVER: the driver to use for the test
2323
# EXTRA_START_ARGS: additional flags to pass into minikube start
2424
# EXTRA_ARGS: additional flags to pass into minikube
2525
# JOB_NAME: the name of the logfile and check name to update on github
@@ -285,7 +285,7 @@ if test -f "${TEST_OUT}"; then
285285
fi
286286
touch "${TEST_OUT}"
287287
${SUDO_PREFIX}${E2E_BIN} \
288-
-minikube-start-args="--vm-driver=${VM_DRIVER} ${EXTRA_START_ARGS}" \
288+
-minikube-start-args="--driver=${VM_DRIVER} ${EXTRA_START_ARGS}" \
289289
-expected-default-driver="${EXPECTED_DEFAULT_DRIVER}" \
290290
-test.timeout=70m -test.v \
291291
${EXTRA_TEST_ARGS} \

hack/jenkins/windows_integration_test_hyperv.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
1919

2020
./out/minikube-windows-amd64.exe delete
2121

22-
out/e2e-windows-amd64.exe --expected-default-driver=hyperv -minikube-start-args="--vm-driver=hyperv --hyperv-virtual-switch=primary-virtual-switch" -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=65m
22+
out/e2e-windows-amd64.exe --expected-default-driver=hyperv -minikube-start-args="--driver=hyperv --hyperv-virtual-switch=primary-virtual-switch" -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=65m
2323
$env:result=$lastexitcode
2424
# If the last exit code was 0->success, x>0->error
2525
If($env:result -eq 0){$env:status="success"}

hack/jenkins/windows_integration_test_virtualbox.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
1919

2020
./out/minikube-windows-amd64.exe delete
2121

22-
out/e2e-windows-amd64.exe -minikube-start-args="--vm-driver=virtualbox" -expected-default-driver=hyperv -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=30m
22+
out/e2e-windows-amd64.exe -minikube-start-args="--driver=virtualbox" -expected-default-driver=hyperv -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=30m
2323
$env:result=$lastexitcode
2424
# If the last exit code was 0->success, x>0->error
2525
If($env:result -eq 0){$env:status="success"}

pkg/minikube/config/config_test.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package config
1818

1919
import (
2020
"bytes"
21+
"fmt"
2122
"io/ioutil"
2223
"os"
2324
"reflect"
@@ -43,13 +44,13 @@ var configTestCases = []configTestCase{
4344
"ReminderWaitPeriodInHours": 99,
4445
"cpus": 4,
4546
"disk-size": "20g",
47+
"driver": "test-driver",
4648
"log_dir": "/etc/hosts",
4749
"show-libmachine-logs": true,
48-
"v": 5,
49-
"vm-driver": "test-driver"
50+
"v": 5
5051
}`,
5152
config: map[string]interface{}{
52-
"vm-driver": "test-driver",
53+
"driver": "test-driver",
5354
"cpus": 4,
5455
"disk-size": "20g",
5556
"v": 5,
@@ -130,7 +131,7 @@ func TestReadConfig(t *testing.T) {
130131
}
131132

132133
expectedConfig := map[string]interface{}{
133-
"vm-driver": "test-driver",
134+
"driver": "test-driver",
134135
"cpus": 4,
135136
"disk-size": "20g",
136137
"show-libmachine-logs": true,
@@ -149,7 +150,7 @@ func TestWriteConfig(t *testing.T) {
149150
}
150151

151152
cfg := map[string]interface{}{
152-
"vm-driver": "test-driver",
153+
"driver": "test-driver",
153154
"cpus": 4,
154155
"disk-size": "20g",
155156
"show-libmachine-logs": true,
@@ -179,6 +180,8 @@ func TestEncode(t *testing.T) {
179180
if err != nil {
180181
t.Errorf("Error encoding: %v", err)
181182
}
183+
fmt.Printf("%+v\n", b.String())
184+
fmt.Printf("%+v\n", tt.data)
182185
if b.String() != tt.data {
183186
t.Errorf("Did not write config correctly, \n\n expected:\n %+v \n\n actual:\n %+v", tt.data, b.String())
184187
}

pkg/minikube/config/testdata/.minikube/config/valid_config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"vm-driver": "kvm2",
2+
"driver": "kvm2",
33
"cpus": 4,
44
"disk-size": "20g",
55
"show-libmachine-logs": true,

pkg/minikube/node/machine.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func trySSH(h *host.Host, ip string) {
146146
- Disable your local VPN or firewall software
147147
- Configure your local VPN or firewall to allow access to {{.ip}}
148148
- Restart or reinstall {{.hypervisor}}
149-
- Use an alternative --vm-driver
149+
- Use an alternative --driver
150150
- Use --force to override this connectivity check
151151
`, out.V{"error": err, "hypervisor": h.Driver.DriverName(), "ip": ip})
152152
}

0 commit comments

Comments
 (0)