diff --git a/CHANGELOG.md b/CHANGELOG.md
index ba6d6a0ebb7a..222d3dc6aa05 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,95 @@
# Minikube Release Notes
+# Version 1.1.1 - 2019-06-07
+
+* Upgrade to kubernetes 1.14.3 [#4444](https://github.com/kubernetes/minikube/pull/4444)
+* fix ShowDriverDeprecationNotification config setting [#4431](https://github.com/kubernetes/minikube/pull/4431)
+* Cache: don't use ssh runner for the none driver [#4439](https://github.com/kubernetes/minikube/pull/4439)
+* Fixing file path for windows [#4434](https://github.com/kubernetes/minikube/pull/4434)
+* Improve type check for driver none [#4419](https://github.com/kubernetes/minikube/pull/4419)
+* Dashboard: add --disable-settings-authorizer to avoid settings 403 forbidden [#4405](https://github.com/kubernetes/minikube/pull/4405)
+* dashboard: detect nonexistent profile instead of causing a panic [#4396](https://github.com/kubernetes/minikube/pull/4396)
+* Fixed addon-manager failing with non-default --apiserver-port [#4386](https://github.com/kubernetes/minikube/pull/4386)
+* Fix kvm gpu log [#4381](https://github.com/kubernetes/minikube/pull/4381)
+* Windows installer: Use PowerShell to update PATH value to avoid 1024 char truncation [#4362](https://github.com/kubernetes/minikube/pull/4362)
+* Increase apiserver wait time from 1 minute to 3 minutes [#4372](https://github.com/kubernetes/minikube/pull/4372)
+* Sync guest system clock if desynchronized from host [#4283](https://github.com/kubernetes/minikube/pull/4283)
+* docker-env: Remove DOCKER_API_VERSION [#4364](https://github.com/kubernetes/minikube/pull/4364)
+* Disable hyperv dynamic memory for hyperv driver [#2797](https://github.com/kubernetes/minikube/pull/2797)
+* Fix kvm remove when domain is not defined [#4355](https://github.com/kubernetes/minikube/pull/4355)
+* Enable registry-proxy [#4341](https://github.com/kubernetes/minikube/pull/4341)
+* Make buildah --no-pivot default, using env var [#4321](https://github.com/kubernetes/minikube/pull/4321)
+* Pass minikube stdin to the kubectl command [#4354](https://github.com/kubernetes/minikube/pull/4354)
+* kernel: Add config for tc u32 filter and mirred action [#4340](https://github.com/kubernetes/minikube/pull/4340)
+* Enable GatewayPorts in sshd_config, for proxying in services into minikube [#4338](https://github.com/kubernetes/minikube/pull/4338)
+* Fix kvm remove when domain is not running [#4344](https://github.com/kubernetes/minikube/pull/4344)
+* kvm2: Add support for --kvm-network to ensureNetwork [#4323](https://github.com/kubernetes/minikube/pull/4323)
+* Get current profile if no arguments given [#4335](https://github.com/kubernetes/minikube/pull/4335)
+* Skip kvm network deletion if private network doesn't exist [#4331](https://github.com/kubernetes/minikube/pull/4331)
+
+Huge thank you for this release towards our contributors:
+- Abdulla Bin Mustaqeem
+- Anders Björklund
+- Andy Daniels
+- Archana Shinde
+- Arnaud Jardiné
+- Artiom Diomin
+- Balint Pato
+- Benn Linger
+- Calin Don
+- Chris Eason
+- Cristian Măgherușan-Stanciu @magheru_san
+- Deepika Pandhi
+- Dmitry Budaev
+- Don McCasland
+- Douglas Thrift
+- Elijah Oyekunle
+- Filip Havlíček
+- Guang Ya Liu
+- Himanshu Pandey
+- Igor Akkerman
+- Ihor Dvoretskyi
+- Jan Janik
+- Jat
+- Joel Smith
+- Joji Mekkatt
+- Marco Vito Moscaritolo
+- Marcos Diez
+- Martynas Pumputis
+- Mas
+- Maximilian Hess
+- Medya Gh
+- Miel Donkers
+- Mike Lewis
+- Oleg Atamanenko
+- Om Kumar
+- Pradip-Khakurel
+- Pranav Jituri
+- RA489
+- Shahid Iqbal
+- Sharif Elgamal
+- Steven Davidovitz
+- Thomas Bechtold
+- Thomas Strömberg
+- Tiago Ilieve
+- Tobias Bradtke
+- Toliver Jue
+- Tom Reznik
+- Yaroslav Skopets
+- Yoan Blanc
+- Zhongcheng Lao
+- Zoran Regvart
+- fenglixa
+- flyingcircle
+- jay vyas
+- josedonizetti
+- karmab
+- kerami
+- morvencao
+- salamani
+- u5surf
+- wj24021040
+
## Version 1.1.0 - 2019-05-21
* Allow macOS to resolve service FQDNs during 'minikube tunnel' [#3464](https://github.com/kubernetes/minikube/pull/3464)
diff --git a/Makefile b/Makefile
index 8456cd2f43d8..eb2ac2f61d8c 100755
--- a/Makefile
+++ b/Makefile
@@ -15,9 +15,9 @@
# Bump these on release - and please check ISO_VERSION for correctness.
VERSION_MAJOR ?= 1
VERSION_MINOR ?= 1
-VERSION_BUILD ?= 0
+VERSION_BUILD ?= 1
# Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions
-ISO_VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).0
+ISO_VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).1
VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
DEB_VERSION ?= $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
diff --git a/OWNERS b/OWNERS
index 3c8229ebd761..93f08aae5fba 100644
--- a/OWNERS
+++ b/OWNERS
@@ -6,12 +6,14 @@ reviewers:
- afbjorklund
- sharifelgamal
- RA489
+ - medyagh
approvers:
- balopat
- tstromberg
- afbjorklund
- sharifelgamal
- RA489
+ - medyagh
emeritus_approvers:
- dlorenc
- luxas
diff --git a/README.md b/README.md
index d4f4d36c55fc..1b13670279fb 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@ minikube's [primary goals](https://github.com/kubernetes/minikube/blob/master/do
:mega: **Please fill out our [fast 5-question survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how & why you use minikube, and what improvements we should make. Thank you! :dancers:
+* 2019-06-27 - v1.1.1 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v1.1.1)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-111---2019-06-07)]
* 2019-05-21 - v1.1.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v1.1.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-110---2019-05-21)]
* 2019-04-29 - v1.0.1 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v1.0.1)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-101---2019-04-29)]
* 2019-03-27 - v1.0.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v1.0.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-1000---2019-03-27)]
diff --git a/cmd/minikube/cmd/config/config.go b/cmd/minikube/cmd/config/config.go
index 9982f0f57062..e8143caabc9b 100644
--- a/cmd/minikube/cmd/config/config.go
+++ b/cmd/minikube/cmd/config/config.go
@@ -131,6 +131,10 @@ var settings = []Setting{
name: Bootstrapper,
set: SetString, //TODO(r2d4): more validation here?
},
+ {
+ name: config.ShowDriverDeprecationNotification,
+ set: SetBool,
+ },
{
name: config.ShowBootstrapperDeprecationNotification,
set: SetBool,
diff --git a/cmd/minikube/cmd/dashboard.go b/cmd/minikube/cmd/dashboard.go
index 200d285d03c1..fafe742fb0ab 100644
--- a/cmd/minikube/cmd/dashboard.go
+++ b/cmd/minikube/cmd/dashboard.go
@@ -26,13 +26,13 @@ import (
"regexp"
"time"
+ "github.com/docker/machine/libmachine/mcnerror"
"github.com/golang/glog"
"github.com/pkg/browser"
"github.com/pkg/errors"
"github.com/spf13/cobra"
configcmd "k8s.io/minikube/cmd/minikube/cmd/config"
"k8s.io/minikube/pkg/minikube/cluster"
- "k8s.io/minikube/pkg/minikube/config"
pkg_config "k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/console"
"k8s.io/minikube/pkg/minikube/exit"
@@ -59,15 +59,7 @@ var dashboardCmd = &cobra.Command{
if err != nil && !os.IsNotExist(err) {
console.ErrLn("Error loading profile config: %v", err)
}
- err = proxy.ExcludeIP(cc.KubernetesConfig.NodeIP) // to be used for http get calls
- if err != nil {
- glog.Errorf("Error excluding IP from proxy: %s", err)
- }
- kubectl, err := exec.LookPath("kubectl")
- if err != nil {
- exit.WithCode(exit.NoInput, "kubectl not found in PATH, but is required for the dashboard. Installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/")
- }
api, err := machine.NewAPIClient()
defer func() {
err := api.Close()
@@ -79,6 +71,27 @@ var dashboardCmd = &cobra.Command{
if err != nil {
exit.WithError("Error getting client", err)
}
+
+ if _, err = api.Load(pkg_config.GetMachineName()); err != nil {
+ switch err := errors.Cause(err).(type) {
+ case mcnerror.ErrHostDoesNotExist:
+ console.OutStyle(console.Meh, "%q cluster does not exist", pkg_config.GetMachineName())
+ os.Exit(exit.Unavailable)
+ default:
+ exit.WithError("Error getting cluster", err)
+ }
+ }
+
+ err = proxy.ExcludeIP(cc.KubernetesConfig.NodeIP) // to be used for http get calls
+ if err != nil {
+ glog.Errorf("Error excluding IP from proxy: %s", err)
+ }
+
+ kubectl, err := exec.LookPath("kubectl")
+ if err != nil {
+ exit.WithCode(exit.NoInput, "kubectl not found in PATH, but is required for the dashboard. Installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/")
+ }
+
cluster.EnsureMinikubeRunningOrExit(api, 1)
// Send status messages to stderr for folks re-using this output.
@@ -127,9 +140,9 @@ var dashboardCmd = &cobra.Command{
// kubectlProxy runs "kubectl proxy", returning host:port
func kubectlProxy(path string) (*exec.Cmd, string, error) {
// port=0 picks a random system port
- // config.GetMachineName() respects the -p (profile) flag
+ // pkg_config.GetMachineName() respects the -p (profile) flag
- cmd := exec.Command(path, "--context", config.GetMachineName(), "proxy", "--port=0")
+ cmd := exec.Command(path, "--context", pkg_config.GetMachineName(), "proxy", "--port=0")
stdoutPipe, err := cmd.StdoutPipe()
if err != nil {
diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go
index c0c897798408..096886842316 100644
--- a/cmd/minikube/cmd/delete.go
+++ b/cmd/minikube/cmd/delete.go
@@ -56,7 +56,7 @@ associated files.`,
}
// In the case of "none", we want to uninstall Kubernetes as there is no VM to delete
- if err == nil && cc.MachineConfig.VMDriver == "none" {
+ if err == nil && cc.MachineConfig.VMDriver == constants.DriverNone {
kc := cc.KubernetesConfig
bsName := viper.GetString(cmdcfg.Bootstrapper)
console.OutStyle(console.Resetting, "Uninstalling Kubernetes %s using %s ...", kc.KubernetesVersion, bsName)
diff --git a/cmd/minikube/cmd/env.go b/cmd/minikube/cmd/env.go
index 8bd4cad6042d..cf4d669178a2 100644
--- a/cmd/minikube/cmd/env.go
+++ b/cmd/minikube/cmd/env.go
@@ -35,6 +35,7 @@ import (
"github.com/spf13/cobra"
"k8s.io/minikube/pkg/minikube/cluster"
"k8s.io/minikube/pkg/minikube/config"
+ "k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/exit"
"k8s.io/minikube/pkg/minikube/machine"
)
@@ -342,7 +343,7 @@ var dockerEnvCmd = &cobra.Command{
if err != nil {
exit.WithError("Error getting host", err)
}
- if host.Driver.DriverName() == "none" {
+ if host.Driver.DriverName() == constants.DriverNone {
exit.Usage(`'none' driver does not support 'minikube docker-env' command`)
}
hostSt, err := cluster.GetHostStatus(api)
diff --git a/cmd/minikube/cmd/mount.go b/cmd/minikube/cmd/mount.go
index ec9d452bba07..a91d38a2660d 100644
--- a/cmd/minikube/cmd/mount.go
+++ b/cmd/minikube/cmd/mount.go
@@ -102,7 +102,7 @@ var mountCmd = &cobra.Command{
if err != nil {
exit.WithError("Error loading api", err)
}
- if host.Driver.DriverName() == "none" {
+ if host.Driver.DriverName() == constants.DriverNone {
exit.Usage(`'none' driver does not support 'minikube mount' command`)
}
var ip net.IP
diff --git a/cmd/minikube/cmd/ssh.go b/cmd/minikube/cmd/ssh.go
index ab79e950dd54..e791f6933095 100644
--- a/cmd/minikube/cmd/ssh.go
+++ b/cmd/minikube/cmd/ssh.go
@@ -23,6 +23,7 @@ import (
"k8s.io/minikube/pkg/minikube/cluster"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/console"
+ "k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/exit"
"k8s.io/minikube/pkg/minikube/machine"
)
@@ -42,7 +43,7 @@ var sshCmd = &cobra.Command{
if err != nil {
exit.WithError("Error getting host", err)
}
- if host.Driver.DriverName() == "none" {
+ if host.Driver.DriverName() == constants.DriverNone {
exit.Usage("'none' driver does not support 'minikube ssh' command")
}
err = cluster.CreateSSHShell(api, args)
diff --git a/deploy/addons/dashboard/dashboard-dp.yaml.tmpl b/deploy/addons/dashboard/dashboard-dp.yaml.tmpl
index 5485a675ae39..6572f032d7db 100644
--- a/deploy/addons/dashboard/dashboard-dp.yaml.tmpl
+++ b/deploy/addons/dashboard/dashboard-dp.yaml.tmpl
@@ -42,6 +42,8 @@ spec:
ports:
- containerPort: 9090
protocol: TCP
+ args:
+ - --disable-settings-authorizer
livenessProbe:
httpGet:
path: /
diff --git a/deploy/minikube/releases.json b/deploy/minikube/releases.json
index 3abf2338cd28..c5ac03845937 100644
--- a/deploy/minikube/releases.json
+++ b/deploy/minikube/releases.json
@@ -1,4 +1,12 @@
[
+ {
+ "name": "v1.1.1",
+ "checksums": {
+ "darwin": "cf6b2c0397147fa998a5c4e36ed7ad045d67f929daa3e46a1d01656b5ab7cac5",
+ "linux": "4596c0daabfe637912e2372c41cc11116ca053a1f7045af8a731265e45f9ca83",
+ "windows": "e86e9c7c1c25cfd251f010b62e83fdf2ee2eefc3e73b4b1f7fa18971577150be"
+ }
+ },
{
"name": "v1.1.0",
"checksums": {
diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md
index 0dddb097a847..16ca03062022 100644
--- a/docs/contributors/releasing_minikube.md
+++ b/docs/contributors/releasing_minikube.md
@@ -94,15 +94,15 @@ WARNING: The Brew cask automation is error-prone. please ensure that a PR was cr
Verify release checksums by running`make check-release`
-## Update docs
+## Update minikube frontpage
-If there are major changes, please send a PR to update
+We document the last 3 releases on our frontpage. Please add it to the list: https://github.com/kubernetes/minikube/blob/master/README.md
-## Announce
+## Update official Kubernetes docs
-Please mention the new release https://github.com/kubernetes/minikube/blob/master/README.md
+If there are major changes, please send a PR to update
-Other places:
+## Announce!
- #minikube on Slack
- minikube-dev, minikube-users mailing list
diff --git a/docs/drivers.md b/docs/drivers.md
index 14a63bf8a0aa..4480efb2962a 100644
--- a/docs/drivers.md
+++ b/docs/drivers.md
@@ -21,6 +21,7 @@ To install the KVM2 driver, first install and configure the prerequisites, namel
* Debian or Ubuntu 18.x: `sudo apt install libvirt-clients libvirt-daemon-system qemu-kvm`
* Ubuntu 16.x or older: `sudo apt install libvirt-bin libvirt-daemon-system qemu-kvm`
* Fedora/CentOS/RHEL: `sudo yum install libvirt-daemon-kvm qemu-kvm`
+* openSUSE/SLES: `sudo zypper install libvirt qemu-kvm`
Check your installed virsh version:
diff --git a/hack/jenkins/windows_integration_test_hyperv.ps1 b/hack/jenkins/windows_integration_test_hyperv.ps1
new file mode 100644
index 000000000000..174159efaf1a
--- /dev/null
+++ b/hack/jenkins/windows_integration_test_hyperv.ps1
@@ -0,0 +1,32 @@
+# Copyright 2019 The Kubernetes Authors All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+mkdir -p out
+gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
+gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
+gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
+
+./out/minikube-windows-amd64.exe delete
+
+out/e2e-windows-amd64.exe -minikube-start-args="--vm-driver=hyperv --hyperv-virtual-switch=primary-virtual-switch --bootstrapper=kubeadm" -minikube-args="--v=10 --logtostderr" -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=65m
+$env:result=$lastexitcode
+# If the last exit code was 0->success, x>0->error
+If($env:result -eq 0){$env:status="success"}
+Else {$env:status="failure"}
+
+$env:target_url="https://storage.googleapis.com/minikube-builds/logs/$env:MINIKUBE_LOCATION/Windows-hyperv.txt"
+$json = "{`"state`": `"$env:status`", `"description`": `"Jenkins`", `"target_url`": `"$env:target_url`", `"context`": `"Windows-hyperv`"}"
+Invoke-WebRequest -Uri "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT`?access_token=$env:access_token" -Body $json -ContentType "application/json" -Method Post -usebasicparsing
+
+Exit $env:result
diff --git a/pkg/drivers/none/none.go b/pkg/drivers/none/none.go
index 76ca08f08223..ec2218f4d777 100644
--- a/pkg/drivers/none/none.go
+++ b/pkg/drivers/none/none.go
@@ -27,10 +27,11 @@ import (
"k8s.io/apimachinery/pkg/util/net"
pkgdrivers "k8s.io/minikube/pkg/drivers" // TODO(tstromberg): Extract CommandRunner into its own package
"k8s.io/minikube/pkg/minikube/bootstrapper"
+ "k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/cruntime"
)
-const driverName = "none"
+const driverName = constants.DriverNone
// cleanupPaths are paths to be removed by cleanup, and are used by both kubeadm and minikube.
var cleanupPaths = []string{
diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go
index 7785cb8f5223..2261b9cb14c7 100644
--- a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go
+++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go
@@ -75,7 +75,7 @@ Wants=crio.service
[Service]
ExecStart=
-ExecStart=/usr/bin/kubelet --allow-privileged=true --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m
+ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m
[Install]
`,
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-api-port__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-api-port__default.yaml
index 8ceb75fdfe93..f6b37397cae5 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-api-port__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-api-port__default.yaml
@@ -28,7 +28,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-pod-network-cidr__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-pod-network-cidr__default.yaml
index d7b9dadfa5d7..f11516f99dc7 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-pod-network-cidr__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd-pod-network-cidr__default.yaml
@@ -28,7 +28,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd__default.yaml
index d7b9dadfa5d7..f11516f99dc7 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/containerd__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/containerd__default.yaml
@@ -28,7 +28,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/crio-options-gates__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/crio-options-gates__default.yaml
index 0ed6fe561c97..cdef8bafa1aa 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/crio-options-gates__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/crio-options-gates__default.yaml
@@ -38,7 +38,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/crio__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/crio__default.yaml
index 161f27cd44ec..bf8ba7daefa5 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/crio__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/crio__default.yaml
@@ -28,7 +28,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/default__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/default__default.yaml
index 4dfbcf8cbd21..d2dc46469314 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/default__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/default__default.yaml
@@ -28,7 +28,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/image-repository__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/image-repository__default.yaml
index 302a7384c622..66cab56ad3ea 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/image-repository__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/image-repository__default.yaml
@@ -29,7 +29,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/options__default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/options__default.yaml
index f60518978517..1c1ff1c39522 100644
--- a/pkg/minikube/bootstrapper/kubeadm/testdata/options__default.yaml
+++ b/pkg/minikube/bootstrapper/kubeadm/testdata/options__default.yaml
@@ -35,7 +35,7 @@ dns:
etcd:
local:
dataDir: /data/minikube
-kubernetesVersion: v1.14.2
+kubernetesVersion: v1.14.3
networking:
dnsDomain: cluster.local
podSubnet: ""
diff --git a/pkg/minikube/bootstrapper/kubeadm/versions.go b/pkg/minikube/bootstrapper/kubeadm/versions.go
index 18563c0ac38e..2c7c9a97f991 100644
--- a/pkg/minikube/bootstrapper/kubeadm/versions.go
+++ b/pkg/minikube/bootstrapper/kubeadm/versions.go
@@ -242,7 +242,14 @@ var versionSpecificOpts = []VersionedExtraOption{
// System pods args
NewUnversionedOption(Kubelet, "pod-manifest-path", "/etc/kubernetes/manifests"),
- NewUnversionedOption(Kubelet, "allow-privileged", "true"),
+ {
+ Option: util.ExtraOption{
+ Component: Kubelet,
+ Key: "allow-privileged",
+ Value: "true",
+ },
+ LessThanOrEqual: semver.MustParse("1.15.0-alpha.3"),
+ },
// Network args
NewUnversionedOption(Kubelet, "cluster-dns", "10.96.0.10"),
diff --git a/pkg/minikube/cluster/cluster.go b/pkg/minikube/cluster/cluster.go
index 740db7973e09..40089d0f0b39 100644
--- a/pkg/minikube/cluster/cluster.go
+++ b/pkg/minikube/cluster/cluster.go
@@ -72,7 +72,7 @@ func init() {
// CacheISO downloads and caches ISO.
func CacheISO(config cfg.MachineConfig) error {
- if config.VMDriver != "none" {
+ if config.VMDriver != constants.DriverNone {
if err := config.Downloader.CacheMinikubeISOFromURL(config.MinikubeISO); err != nil {
return err
}
@@ -154,7 +154,7 @@ func configureHost(h *host.Host, e *engine.Options) error {
}
}
- if h.Driver.DriverName() != "none" {
+ if h.Driver.DriverName() != constants.DriverNone {
if err := h.ConfigureAuth(); err != nil {
return &util.RetriableError{Err: errors.Wrap(err, "Error configuring auth on host")}
}
@@ -325,21 +325,21 @@ func preCreateHost(config *cfg.MachineConfig) {
console.Warning(`The kvm driver is deprecated and support for it will be removed in a future release.
Please consider switching to the kvm2 driver, which is intended to replace the kvm driver.
See https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver for more information.
- To disable this message, run [minikube config set WantShowDriverDeprecationNotification false]`)
+ To disable this message, run [minikube config set ShowDriverDeprecationNotification false]`)
}
case "xhyve":
if viper.GetBool(cfg.ShowDriverDeprecationNotification) {
console.Warning(`The xhyve driver is deprecated and support for it will be removed in a future release.
Please consider switching to the hyperkit driver, which is intended to replace the xhyve driver.
See https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver for more information.
-To disable this message, run [minikube config set WantShowDriverDeprecationNotification false]`)
+To disable this message, run [minikube config set ShowDriverDeprecationNotification false]`)
}
case "vmwarefusion":
if viper.GetBool(cfg.ShowDriverDeprecationNotification) {
console.Warning(`The vmwarefusion driver is deprecated and support for it will be removed in a future release.
Please consider switching to the new vmware unified driver, which is intended to replace the vmwarefusion driver.
See https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#vmware-unified-driver for more information.
- To disable this message, run [minikube config set WantShowDriverDeprecationNotification false]`)
+ To disable this message, run [minikube config set ShowDriverDeprecationNotification false]`)
}
}
}
diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go
index 2610e475d589..b40a26be57ec 100644
--- a/pkg/minikube/constants/constants.go
+++ b/pkg/minikube/constants/constants.go
@@ -162,10 +162,10 @@ var DefaultISOURL = fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.i
var DefaultISOSHAURL = DefaultISOURL + SHASuffix
// DefaultKubernetesVersion is the default kubernetes version
-var DefaultKubernetesVersion = "v1.14.2"
+var DefaultKubernetesVersion = "v1.14.3"
// NewestKubernetesVersion is the newest Kubernetes version to test against
-var NewestKubernetesVersion = "v1.14.2"
+var NewestKubernetesVersion = "v1.15.0-beta.1"
// OldestKubernetesVersion is the oldest Kubernetes version to test against
var OldestKubernetesVersion = "v1.10.13"
diff --git a/pkg/minikube/drivers/none/driver.go b/pkg/minikube/drivers/none/driver.go
index 5e7c66d022ce..6233a91251ae 100644
--- a/pkg/minikube/drivers/none/driver.go
+++ b/pkg/minikube/drivers/none/driver.go
@@ -28,7 +28,7 @@ import (
func init() {
if err := registry.Register(registry.DriverDef{
- Name: "none",
+ Name: constants.DriverNone,
Builtin: true,
ConfigCreator: createNoneHost,
DriverCreator: func() drivers.Driver {
diff --git a/pkg/minikube/machine/cache_images.go b/pkg/minikube/machine/cache_images.go
index e6b591de4dcb..2f807e24b2e3 100644
--- a/pkg/minikube/machine/cache_images.go
+++ b/pkg/minikube/machine/cache_images.go
@@ -41,7 +41,6 @@ import (
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/cruntime"
- "k8s.io/minikube/pkg/minikube/sshutil"
)
const tempLoadDir = "/tmp"
@@ -129,11 +128,10 @@ func CacheAndLoadImages(images []string) error {
return err
}
- client, err := sshutil.NewSSHClient(h.Driver)
+ runner, err := CommandRunner(h)
if err != nil {
return err
}
- runner := bootstrapper.NewSSHRunner(client)
return LoadImages(runner, images, constants.ImageCacheDir)
}
diff --git a/pkg/minikube/machine/client.go b/pkg/minikube/machine/client.go
index b238665e631d..bdd6abc1122a 100644
--- a/pkg/minikube/machine/client.go
+++ b/pkg/minikube/machine/client.go
@@ -189,7 +189,7 @@ func (api *LocalClient) Create(h *host.Host) error {
{
"waiting",
func() error {
- if h.Driver.DriverName() == "none" {
+ if h.Driver.DriverName() == constants.DriverNone {
return nil
}
return mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Running))
@@ -198,7 +198,7 @@ func (api *LocalClient) Create(h *host.Host) error {
{
"provisioning",
func() error {
- if h.Driver.DriverName() == "none" {
+ if h.Driver.DriverName() == constants.DriverNone {
return nil
}
pv := provision.NewBuildrootProvisioner(h.Driver)
diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go
index 748894f2e0ba..682cffdc2f2c 100644
--- a/test/integration/addons_test.go
+++ b/test/integration/addons_test.go
@@ -25,6 +25,7 @@ import (
"net"
"net/http"
"net/url"
+ "path"
"path/filepath"
"strings"
"testing"
@@ -131,12 +132,16 @@ func testIngressController(t *testing.T) {
t.Fatalf("waiting for default-http-backend to be up: %v", err)
}
- ingressPath, _ := filepath.Abs("testdata/nginx-ing.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ ingressPath := path.Join(curdir, "testdata", "nginx-ing.yaml")
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", ingressPath}); err != nil {
t.Fatalf("creating nginx ingress resource: %v", err)
}
- podPath, _ := filepath.Abs("testdata/nginx-pod-svc.yaml")
+ podPath := path.Join(curdir, "testdata", "nginx-pod-svc.yaml")
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", podPath}); err != nil {
t.Fatalf("creating nginx ingress resource: %v", err)
}
@@ -248,7 +253,11 @@ func testGvisorRestart(t *testing.T) {
func createUntrustedWorkload(t *testing.T) {
kubectlRunner := util.NewKubectlRunner(t)
- untrustedPath, _ := filepath.Abs("testdata/nginx-untrusted.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ untrustedPath := path.Join(curdir, "testdata", "nginx-untrusted.yaml")
t.Log("creating pod with untrusted workload annotation")
if _, err := kubectlRunner.RunCommand([]string{"replace", "-f", untrustedPath, "--force"}); err != nil {
t.Fatalf("creating untrusted nginx resource: %v", err)
@@ -257,7 +266,11 @@ func createUntrustedWorkload(t *testing.T) {
func deleteUntrustedWorkload(t *testing.T) {
kubectlRunner := util.NewKubectlRunner(t)
- untrustedPath, _ := filepath.Abs("testdata/nginx-untrusted.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ untrustedPath := path.Join(curdir, "testdata", "nginx-untrusted.yaml")
if _, err := kubectlRunner.RunCommand([]string{"delete", "-f", untrustedPath}); err != nil {
t.Logf("error deleting untrusted nginx resource: %v", err)
}
diff --git a/test/integration/mount_test.go b/test/integration/mount_test.go
index 156e44e6cd0a..a55d04e41700 100644
--- a/test/integration/mount_test.go
+++ b/test/integration/mount_test.go
@@ -22,6 +22,7 @@ import (
"fmt"
"io/ioutil"
"os"
+ "path"
"path/filepath"
"runtime"
"strings"
@@ -61,7 +62,11 @@ func testMounting(t *testing.T) {
kubectlRunner := util.NewKubectlRunner(t)
podName := "busybox-mount"
- podPath, _ := filepath.Abs("testdata/busybox-mount-test.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ podPath := path.Join(curdir, "testdata", "busybox-mount-test.yaml")
// Write file in mounted dir from host
expected := "test\n"
diff --git a/test/integration/persistence_test.go b/test/integration/persistence_test.go
index 0d889ee9dd9e..158c70668d49 100644
--- a/test/integration/persistence_test.go
+++ b/test/integration/persistence_test.go
@@ -19,6 +19,7 @@ limitations under the License.
package integration
import (
+ "path"
"path/filepath"
"strings"
"testing"
@@ -36,7 +37,11 @@ func TestPersistence(t *testing.T) {
minikubeRunner.EnsureRunning()
kubectlRunner := util.NewKubectlRunner(t)
- podPath, _ := filepath.Abs("testdata/busybox.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ podPath := path.Join(curdir, "testdata", "busybox.yaml")
// Create a pod and wait for it to be running.
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", podPath}); err != nil {
diff --git a/test/integration/proxy_test.go b/test/integration/proxy_test.go
index 96f84c67c03f..7896e3e8df90 100644
--- a/test/integration/proxy_test.go
+++ b/test/integration/proxy_test.go
@@ -21,12 +21,14 @@ package integration
import (
"context"
"fmt"
+ "io/ioutil"
"os"
"strings"
"testing"
"time"
"net/http"
+ "net/url"
"github.com/elazarl/goproxy"
"github.com/phayes/freeport"
@@ -68,7 +70,17 @@ func TestProxy(t *testing.T) {
t.Fatalf("Failed to set up the test proxy: %s", err)
}
- defer func(t *testing.T) { // Clean up after setting up proxy
+ // making sure there is no running miniukube to avoid https://github.com/kubernetes/minikube/issues/4132
+ r := NewMinikubeRunner(t)
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
+ defer cancel()
+ _, _, err = r.RunWithContext(ctx, "delete")
+ if err != nil {
+ t.Logf("Error deleting minikube before test setup %s : ", err)
+ }
+
+ // Clean up after setting up proxy
+ defer func(t *testing.T) {
err = os.Setenv("HTTP_PROXY", origHP)
if err != nil {
t.Errorf("Error reverting the HTTP_PROXY env")
@@ -82,28 +94,29 @@ func TestProxy(t *testing.T) {
if err != nil {
t.Errorf("Error shutting down the http proxy")
}
+
+ _, _, err = r.RunWithContext(ctx, "delete")
+ if err != nil {
+ t.Logf("Error deleting minikube when cleaning up proxy setup: %s", err)
+ }
}(t)
- t.Run("ConsoleWarnning", testProxyWarning)
- t.Run("DashboardProxy", testDashboard)
+ t.Run("Proxy Console Warnning", testProxyWarning)
+ t.Run("Proxy Dashboard", testProxyDashboard)
}
// testProxyWarning checks user is warned correctly about the proxy related env vars
func testProxyWarning(t *testing.T) {
- mk := NewMinikubeRunner(t)
- // Start a timer for all remaining commands, to display failure output before a panic.
+ r := NewMinikubeRunner(t)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
defer cancel()
- startCmd := fmt.Sprintf("start %s %s %s", mk.StartArgs, mk.Args, "--alsologtostderr --v=5")
- stdout, stderr, err := mk.RunWithContext(ctx, startCmd)
+ startCmd := fmt.Sprintf("start %s %s %s", r.StartArgs, r.Args, "--alsologtostderr --v=5")
+ stdout, stderr, err := r.RunWithContext(ctx, startCmd)
if err != nil {
t.Fatalf("start: %v\nstdout: %s\nstderr: %s", err, stdout, stderr)
}
- mk.EnsureRunning()
- // Pre-cleanup: this usually fails, because no instance is running.
- // mk.RunWithContext(ctx, "delete")
msg := "Found network options:"
if !strings.Contains(stdout, msg) {
t.Errorf("Proxy wranning (%s) is missing from the output: %s", msg, stderr)
@@ -113,5 +126,37 @@ func testProxyWarning(t *testing.T) {
if !strings.Contains(stderr, msg) {
t.Errorf("Proxy wranning (%s) is missing from the output: %s", msg, stderr)
}
+}
+
+// testProxyDashboard checks if dashboard URL is accessible if proxy is set
+func testProxyDashboard(t *testing.T) {
+ minikubeRunner := NewMinikubeRunner(t)
+ cmd, out := minikubeRunner.RunDaemon("dashboard --url")
+ defer func() {
+ err := cmd.Process.Kill()
+ if err != nil {
+ t.Logf("Failed to kill dashboard command: %v", err)
+ }
+ }()
+
+ s, err := readLineWithTimeout(out, 180*time.Second)
+ if err != nil {
+ t.Fatalf("failed to read url: %v", err)
+ }
+ u, err := url.Parse(strings.TrimSpace(s))
+ if err != nil {
+ t.Fatalf("failed to parse %q: %v", s, err)
+ }
+ resp, err := http.Get(u.String())
+ if err != nil {
+ t.Fatalf("failed get: %v", err)
+ }
+ if resp.StatusCode != http.StatusOK {
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ t.Fatalf("Unable to read http response body: %v", err)
+ }
+ t.Errorf("%s returned status code %d, expected %d.\nbody:\n%s", u, resp.StatusCode, http.StatusOK, body)
+ }
}
diff --git a/test/integration/tunnel_test.go b/test/integration/tunnel_test.go
index 3a487d1df492..d869938f1820 100644
--- a/test/integration/tunnel_test.go
+++ b/test/integration/tunnel_test.go
@@ -21,6 +21,7 @@ import (
"io/ioutil"
"net/http"
"os/exec"
+ "path"
"path/filepath"
"runtime"
"strings"
@@ -62,7 +63,11 @@ func testTunnel(t *testing.T) {
kubectlRunner := util.NewKubectlRunner(t)
t.Log("deploying nginx...")
- podPath, _ := filepath.Abs("testdata/testsvc.yaml")
+ curdir, err := filepath.Abs("")
+ if err != nil {
+ t.Errorf("Error getting the file path for current directory: %s", curdir)
+ }
+ podPath := path.Join(curdir, "testdata", "testsvc.yaml")
if _, err := kubectlRunner.RunCommand([]string{"apply", "-f", podPath}); err != nil {
t.Fatalf("creating nginx ingress resource: %s", err)
}