From 46492b5cfc37b99e5430dbb14881154f5e798f84 Mon Sep 17 00:00:00 2001 From: karmab Date: Tue, 26 Feb 2019 09:46:32 +0100 Subject: [PATCH 01/41] Enable tap and vhost-net in minikube iso --- deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig b/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig index 311e798f68..067bf6a597 100644 --- a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig +++ b/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig @@ -326,6 +326,7 @@ CONFIG_IPVLAN=m CONFIG_VXLAN=y CONFIG_NETCONSOLE=y CONFIG_TUN=y +CONFIG_TAP=y CONFIG_VETH=y CONFIG_VIRTIO_NET=y CONFIG_AMD8111_ETH=m @@ -487,4 +488,6 @@ CONFIG_CRYPTO_USER_API_HASH=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_VHOST_NET=m +CONFIG_VHOST=m CONFIG_VHOST_VSOCK=m From e09133892f2b1e430f1fd759949bcfeac3762d8d Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 27 Feb 2019 13:58:33 -0800 Subject: [PATCH 02/41] Fix docker/containerd caching, improve msgs, add tests --- cmd/minikube/cmd/start.go | 4 +- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 5 +-- pkg/minikube/cruntime/containerd.go | 2 +- pkg/minikube/cruntime/docker.go | 2 +- test/integration/start_stop_delete_test.go | 43 ++++++++++---------- test/integration/util/util.go | 14 ++----- 6 files changed, 30 insertions(+), 40 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 271e9ead78..e40693c69f 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -237,7 +237,7 @@ func beginCacheImages(g *errgroup.Group, kVersion string) { if !viper.GetBool(cacheImages) { return } - console.OutStyle("caching", "Caching images in the background ...") + console.OutStyle("caching", "Downloading Kubernetes %s images in the background ...", kVersion) g.Go(func() error { return machine.CacheImagesForBootstrapper(kVersion, viper.GetString(cmdcfg.Bootstrapper)) }) @@ -487,7 +487,7 @@ func waitCacheImages(g *errgroup.Group) { if !viper.GetBool(cacheImages) { return } - console.OutStyle("waiting", "Waiting for image caching to complete ...") + console.OutStyle("waiting", "Waiting for image downloads to complete ...") if err := g.Wait(); err != nil { glog.Errorln("Error caching images: ", err) } diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index aa68d68c0f..4fc54c3ce4 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -313,9 +313,8 @@ func NewKubeletConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, func (k *KubeadmBootstrapper) UpdateCluster(cfg config.KubernetesConfig) error { if cfg.ShouldLoadCachedImages { - err := machine.LoadImages(k.c, constants.GetKubeadmCachedImages(cfg.KubernetesVersion), constants.ImageCacheDir) - if err != nil { - return errors.Wrap(err, "loading cached images") + if err := machine.LoadImages(k.c, constants.GetKubeadmCachedImages(cfg.KubernetesVersion), constants.ImageCacheDir); err != nil { + console.Failure("Unable to load cached images: %v", err) } } r, err := cruntime.New(cruntime.Config{Type: cfg.ContainerRuntime, Socket: cfg.CRISocket}) diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go index e46a30e5da..9cfd5e5105 100644 --- a/pkg/minikube/cruntime/containerd.go +++ b/pkg/minikube/cruntime/containerd.go @@ -80,7 +80,7 @@ func (r *Containerd) Disable() error { // LoadImage loads an image into this runtime func (r *Containerd) LoadImage(path string) error { glog.Infof("Loading image: %s", path) - return r.Runner.Run(fmt.Sprintf("sudo ctr cri load %s", path)) + return r.Runner.Run(fmt.Sprintf("sudo ctr images import %s", path)) } // KubeletOptions returns kubelet options for a containerd diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 5c8f790ed2..89f0846b5e 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -73,7 +73,7 @@ func (r *Docker) Disable() error { // LoadImage loads an image into this runtime func (r *Docker) LoadImage(path string) error { glog.Infof("Loading image: %s", path) - return r.Runner.Run(fmt.Sprintf("docker load -i %s", path)) + return r.Runner.Run(fmt.Sprintf("sudo docker load -i %s", path)) } // KubeletOptions returns kubelet options for a runtime. diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index 693611044c..84114b5ba1 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -30,48 +30,47 @@ import ( func TestStartStop(t *testing.T) { tests := []struct { - runtime string + name string + args []string }{ - {runtime: "docker"}, - {runtime: "containerd"}, - {runtime: "crio"}, + {"docker+cache", []string{"--container-runtime=docker", "--cache-images"}}, + {"containerd+cache", []string{"--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock", "--cache-images"}}, + {"crio+cache", []string{"--container-runtime=crio", "--cache-images"}}, } for _, test := range tests { - t.Run(test.runtime, func(t *testing.T) { - runner := NewMinikubeRunner(t) - if test.runtime != "docker" && usingNoneDriver(runner) { - t.Skipf("skipping, can't use %s with none driver", test.runtime) + t.Run(test.name, func(t *testing.T) { + r := NewMinikubeRunner(t) + if !strings.Contains(test.name, "docker") && usingNoneDriver(r) { + t.Skipf("skipping %s - incompatible with none driver", test.name) } - runner.RunCommand("config set WantReportErrorPrompt false", true) - runner.RunCommand("delete", false) - runner.CheckStatus(state.None.String()) + r.RunCommand("config set WantReportErrorPrompt false", true) + r.RunCommand("delete", false) + r.CheckStatus(state.None.String()) + r.Start(test.args...) + r.CheckStatus(state.Running.String()) - runner.SetRuntime(test.runtime) - runner.Start() - runner.CheckStatus(state.Running.String()) - - ip := runner.RunCommand("ip", true) + ip := r.RunCommand("ip", true) ip = strings.TrimRight(ip, "\n") if net.ParseIP(ip) == nil { t.Fatalf("IP command returned an invalid address: %s", ip) } checkStop := func() error { - runner.RunCommand("stop", true) - return runner.CheckStatusNoFail(state.Stopped.String()) + r.RunCommand("stop", true) + return r.CheckStatusNoFail(state.Stopped.String()) } if err := util.Retry(t, checkStop, 5*time.Second, 6); err != nil { t.Fatalf("timed out while checking stopped status: %v", err) } - runner.Start() - runner.CheckStatus(state.Running.String()) + r.Start() + r.CheckStatus(state.Running.String()) - runner.RunCommand("delete", true) - runner.CheckStatus(state.None.String()) + r.RunCommand("delete", true) + r.CheckStatus(state.None.String()) }) } } diff --git a/test/integration/util/util.go b/test/integration/util/util.go index 40f1841bbe..e1458a9427 100644 --- a/test/integration/util/util.go +++ b/test/integration/util/util.go @@ -202,17 +202,9 @@ func (m *MinikubeRunner) SSH(command string) (string, error) { return string(stdout), nil } -func (m *MinikubeRunner) Start() { - opts := "" - // TODO(tstromberg): Deprecate this in favor of making it possible for tests to define explicit flags. - switch r := m.Runtime; r { - case "containerd": - opts = "--container-runtime=containerd --docker-opt containerd=/var/run/containerd/containerd.sock" - case "crio": - opts = "--container-runtime=cri-o" - } - m.RunCommand(fmt.Sprintf("start %s %s %s --alsologtostderr --v=5", m.StartArgs, m.Args, opts), true) - +func (m *MinikubeRunner) Start(opts ...string) { + cmd := fmt.Sprintf("start %s %s %s --alsologtostderr --v=2", m.StartArgs, m.Args, strings.Join(opts, " ")) + m.RunCommand(cmd, true) } func (m *MinikubeRunner) EnsureRunning() { From 4c48753ba09b4bb7d7e9309abd13f0cc196c6c00 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Thu, 28 Feb 2019 12:05:30 -0800 Subject: [PATCH 03/41] Docker doesn't need to use sudo --- pkg/minikube/cruntime/docker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 89f0846b5e..5c8f790ed2 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -73,7 +73,7 @@ func (r *Docker) Disable() error { // LoadImage loads an image into this runtime func (r *Docker) LoadImage(path string) error { glog.Infof("Loading image: %s", path) - return r.Runner.Run(fmt.Sprintf("sudo docker load -i %s", path)) + return r.Runner.Run(fmt.Sprintf("docker load -i %s", path)) } // KubeletOptions returns kubelet options for a runtime. From 3fdda45e30fcb6e82a58ac953c9f0b4afa167c80 Mon Sep 17 00:00:00 2001 From: Miel Donkers Date: Sat, 2 Mar 2019 20:43:21 +0100 Subject: [PATCH 04/41] Enable kernel modules necessary for IPVS To be able to use Kubernetes' IPVS proxy-mode, certain (IP Set) kernel modules need to be enabled during kernel build time. Building a new Minikube image with these modules enabled, will allow others to switch kube-proxy in IPVS mode and experiment with it inside Minikube. --- .../board/coreos/minikube/linux_defconfig | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig b/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig index 311e798f68..ed581afaf2 100644 --- a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig +++ b/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig @@ -191,8 +191,21 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_IP_SET=y +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y From 54fbca78ae336a50ccbbb86952963b77b6955c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Mon, 4 Mar 2019 09:27:34 -0800 Subject: [PATCH 05/41] Debugging -> Troubleshooting --- docs/http_proxy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/http_proxy.md b/docs/http_proxy.md index 42b0d8f1d0..4f56d00bd8 100644 --- a/docs/http_proxy.md +++ b/docs/http_proxy.md @@ -39,7 +39,7 @@ minikube start --docker-env=HTTP_PROXY=$HTTP_PROXY --docker-env HTTPS_PROXY=$HTT To set these environment variables permanently, consider adding these to your [system settings](https://support.microsoft.com/en-au/help/310519/how-to-manage-environment-variables-in-windows-xp) or using [setx](https://stackoverflow.com/questions/5898131/set-a-persistent-environment-variable-from-cmd-exe) -## Debugging +## Troubleshooting ### unable to cache ISO... connection refused From 5b709b2b0a2d3650c909d0a25cfbfadf7b824d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Mon, 4 Mar 2019 20:23:23 +0100 Subject: [PATCH 06/41] Failure to read documentation isn't really a crash --- pkg/minikube/exit/exit.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/exit/exit.go b/pkg/minikube/exit/exit.go index fad5b18df3..3b5508d983 100644 --- a/pkg/minikube/exit/exit.go +++ b/pkg/minikube/exit/exit.go @@ -20,8 +20,10 @@ package exit import ( "fmt" "os" + "strings" "github.com/golang/glog" + "github.com/pkg/errors" "k8s.io/minikube/pkg/minikube/console" ) @@ -85,6 +87,15 @@ func displayError(msg string, err error) { glog.Warningf(fmt.Sprintf("%s: %v", msg, err)) console.Fatal(msg+": %v", err) console.Err("\n") - console.ErrStyle("sad", "Sorry that minikube crashed. If this was unexpected, we would love to hear from you:") - console.ErrStyle("url", "https://github.com/kubernetes/minikube/issues/new") + // unfortunately Cause only supports one level of actual error wrapping + cause := errors.Cause(err) + text := cause.Error() + if strings.Contains(text, "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path") || + strings.Contains(text, "Driver \"kvm2\" not found. Do you have the plugin binary \"docker-machine-driver-kvm2\" accessible in your PATH?") { + console.ErrStyle("usage", "Make sure to install all necessary requirements, according to the documentation:") + console.ErrStyle("url", "https://kubernetes.io/docs/tasks/tools/install-minikube/") + } else { + console.ErrStyle("sad", "Sorry that minikube crashed. If this was unexpected, we would love to hear from you:") + console.ErrStyle("url", "https://github.com/kubernetes/minikube/issues/new") + } } From 64cfca0553c5dd4869dfdb8679d46c357e073f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Mon, 4 Mar 2019 12:08:27 -0800 Subject: [PATCH 07/41] v1.12 --- docs/contributors/build_guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/contributors/build_guide.md b/docs/contributors/build_guide.md index 409220f904..b80068358e 100644 --- a/docs/contributors/build_guide.md +++ b/docs/contributors/build_guide.md @@ -1,7 +1,7 @@ ### Build Requirements -* A recent Go distribution (>=1.11) +* A recent Go distribution (>=1.12) * If you're not on Linux, you'll need a Docker installation -* Minikube requires at least 4GB of RAM to compile, which can be problematic when using docker-machine +* minikube requires at least 4GB of RAM to compile, which can be problematic when using docker-machine #### Prerequisites for different GNU/Linux distributions From c4ee5eec08c283d524c28e25e414ae3f98c82807 Mon Sep 17 00:00:00 2001 From: Tom Reznik Date: Mon, 4 Mar 2019 23:57:48 +0200 Subject: [PATCH 08/41] fix incorrect style name mount --- cmd/minikube/cmd/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 271e9ead78..0cd95e48bd 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -553,7 +553,7 @@ func configureMounts() { return } - console.OutStyle("mount", "Creating mount %s ...", viper.GetString(mountString)) + console.OutStyle("mounting", "Creating mount %s ...", viper.GetString(mountString)) path := os.Args[0] mountDebugVal := 0 if glog.V(8) { From 1607e9f8ea546ef09f823ac1a08322f450d9723c Mon Sep 17 00:00:00 2001 From: Artiom Diomin Date: Tue, 5 Mar 2019 14:45:36 +0200 Subject: [PATCH 09/41] Change DefaultMountVersion to 9p2000.L Fixes #2290 --- pkg/minikube/constants/constants.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 2fa11c50c7..7109b57cad 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -161,7 +161,7 @@ const ( DefaultUfsDebugLvl = 0 DefaultMountEndpoint = "/minikube-host" DefaultMsize = 262144 - DefaultMountVersion = "9p2000.u" + DefaultMountVersion = "9p2000.L" ) func GetKubernetesReleaseURL(binaryName, version string) string { From ae27bb1e85224853d96a5da37265fdce6318a9fd Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 6 Mar 2019 11:37:29 -0800 Subject: [PATCH 10/41] Update default to v1.13.4 --- pkg/minikube/constants/constants.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 2fa11c50c7..a8b369ca39 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -130,7 +130,7 @@ kubectl: {{.Kubeconfig}} var DefaultIsoUrl = fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", minikubeVersion.GetIsoPath(), minikubeVersion.GetIsoVersion()) var DefaultIsoShaUrl = DefaultIsoUrl + ShaSuffix -var DefaultKubernetesVersion = "v1.13.3" +var DefaultKubernetesVersion = "v1.13.4" var ConfigFilePath = MakeMiniPath("config") var ConfigFile = MakeMiniPath("config", "config.json") From 62e3ba7b52e1c37ca90ad88e1e8bc0651574b493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Wed, 6 Mar 2019 21:36:35 +0100 Subject: [PATCH 11/41] Update docker/machine to fix the AMD bug --- Gopkg.lock | 4 ++-- vendor/github.com/docker/machine/drivers/hyperv/hyperv.go | 4 ++-- .../github.com/docker/machine/drivers/virtualbox/vtx_intel.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 571b119373..5bc2516ee7 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -69,7 +69,7 @@ [[projects]] branch = "master" - digest = "1:47b479ee07f66c92682bcf27e3a65b411b7ba52bfc28fd0b6b74a742620fc61a" + digest = "1:d4104968fb55cff5276444ffcf4693fa03deadc7cd98ed15005bf55e26a2ded1" name = "github.com/docker/machine" packages = [ "commands/mcndirs", @@ -106,7 +106,7 @@ "version", ] pruneopts = "NUT" - revision = "a773edc6f013c9fab13360fea0192fd335023a16" + revision = "533ea58a3e7efb4b2b6cc24bb0b7b565e64d6b0e" source = "github.com/machine-drivers/machine" [[projects]] diff --git a/vendor/github.com/docker/machine/drivers/hyperv/hyperv.go b/vendor/github.com/docker/machine/drivers/hyperv/hyperv.go index 6740f295e4..a980cf11f4 100644 --- a/vendor/github.com/docker/machine/drivers/hyperv/hyperv.go +++ b/vendor/github.com/docker/machine/drivers/hyperv/hyperv.go @@ -273,7 +273,7 @@ func (d *Driver) Create() error { func (d *Driver) chooseVirtualSwitch() (string, error) { if d.VSwitch == "" { // Default to the first external switche and in the process avoid DockerNAT - stdout, err := cmdOut("(Hyper-V\\Get-VMSwitch -SwitchType External).Name") + stdout, err := cmdOut("[Console]::OutputEncoding = [Text.Encoding]::UTF8; (Hyper-V\\Get-VMSwitch -SwitchType External).Name") if err != nil { return "", err } @@ -287,7 +287,7 @@ func (d *Driver) chooseVirtualSwitch() (string, error) { return switches[0], nil } - stdout, err := cmdOut("(Hyper-V\\Get-VMSwitch).Name") + stdout, err := cmdOut("[Console]::OutputEncoding = [Text.Encoding]::UTF8; (Hyper-V\\Get-VMSwitch).Name") if err != nil { return "", err } diff --git a/vendor/github.com/docker/machine/drivers/virtualbox/vtx_intel.go b/vendor/github.com/docker/machine/drivers/virtualbox/vtx_intel.go index 3f1352ae06..852f451d13 100644 --- a/vendor/github.com/docker/machine/drivers/virtualbox/vtx_intel.go +++ b/vendor/github.com/docker/machine/drivers/virtualbox/vtx_intel.go @@ -6,7 +6,7 @@ import "github.com/intel-go/cpuid" // IsVTXDisabled checks if VT-x is disabled in the CPU. func (d *Driver) IsVTXDisabled() bool { - if cpuid.HasFeature(cpuid.VMX) || cpuid.HasFeature(cpuid.SVM) { + if cpuid.HasFeature(cpuid.VMX) || cpuid.HasExtraFeature(cpuid.SVM) { return false } From bada9dfb837fcb71faa260935316589d1b26bbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 14:55:38 -0800 Subject: [PATCH 12/41] Clarify ISO build steps --- docs/contributors/releasing_minikube.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md index 837b0eb7b1..4666e3590a 100644 --- a/docs/contributors/releasing_minikube.md +++ b/docs/contributors/releasing_minikube.md @@ -2,7 +2,8 @@ ## Build a new ISO -You only need to build the minikube ISO when the there are changes in the `deploy/iso` folder. +Major releases always get a new ISO. Minor bugfixes may or may not require it: check for changes in the `deploy/iso` folder. + Note: you can build the ISO using the `hack/jenkins/build_iso.sh` script locally. * navigate to the minikube ISO jenkins job @@ -18,8 +19,8 @@ The build will take roughly 50 minutes. Edit the minikube `Makefile`, updating the version number values at the top: -* `VERSION_MINOR` (and `VERSION_MAJOR`, `VERSION_BUILD` as necessary) -* `ISO_VERSION` (only update this if there is a new ISO release - though there almost always is) +* `VERSION_MAJOR`, `VERSION_MINOR`, `VERSION_BUILD` as necessary +* `ISO_VERSION` - defaults to MAJOR.MINOR.0 - update if point release requires a new ISO to be built. ## Run Local Integration Test From 05d1620c339563f057f7d1b395f5de4b67ce3eb5 Mon Sep 17 00:00:00 2001 From: Sharif Elgamal Date: Wed, 6 Mar 2019 15:04:39 -0800 Subject: [PATCH 13/41] Update Makefile to 0.35.0 --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f14e90919f..77bec70d47 100755 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 0 -VERSION_MINOR ?= 34 -VERSION_BUILD ?= 1 +VERSION_MINOR ?= 35 +VERSION_BUILD ?= 0 # 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 From a7c413e1b47b58e5ad08768d962fc5788498408d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 15:13:44 -0800 Subject: [PATCH 14/41] Mention pausing merges --- docs/contributors/releasing_minikube.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md index 4666e3590a..73937f7b11 100644 --- a/docs/contributors/releasing_minikube.md +++ b/docs/contributors/releasing_minikube.md @@ -1,5 +1,10 @@ # Steps to Release Minikube +## Preparation + +* Announce release intent on #minikube +* Pause merge requests so that they are not accidentally left out of the ISO or release notes + ## Build a new ISO Major releases always get a new ISO. Minor bugfixes may or may not require it: check for changes in the `deploy/iso` folder. @@ -110,3 +115,9 @@ After you've finished the release, run this command from the release commit to v ## Update kubernetes.io docs If there are major changes, please send a PR to update the official setup guide: [Running Kubernetes Locally via Minikube](https://kubernetes.io/docs/setup/minikube/) + +## Announce + +- #minikube on Slack +- minikube-dev, minikube-users mailing list +- Twitter From 210d3b9601598ee6628aa6ee445177f1f6a66cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 15:33:27 -0800 Subject: [PATCH 15/41] Try again, but hide the text this time. --- .github/ISSUE_TEMPLATE | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE index 8ee74b297b..cdb7e71b3b 100644 --- a/.github/ISSUE_TEMPLATE +++ b/.github/ISSUE_TEMPLATE @@ -1,5 +1,8 @@ -If this is a bug report, please include: + -- [ ] How to replicate the error, including the exact command-lines used. -- [ ] The full output of the command that failed -- [ ] The operating system name and version used From a58e1a454f79df459ac28d247173cad2a1ff77d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 15:36:39 -0800 Subject: [PATCH 16/41] Mention `minikube logs` --- .github/ISSUE_TEMPLATE | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE index cdb7e71b3b..625914b04c 100644 --- a/.github/ISSUE_TEMPLATE +++ b/.github/ISSUE_TEMPLATE @@ -1,7 +1,8 @@ From 32bd61787bbd8c8d305ca1daa9af04fd33f6a571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 15:48:17 -0800 Subject: [PATCH 17/41] Mention broken brew automation. --- docs/contributors/releasing_minikube.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md index 73937f7b11..9939e95996 100644 --- a/docs/contributors/releasing_minikube.md +++ b/docs/contributors/releasing_minikube.md @@ -98,25 +98,19 @@ These are downstream packages that are being maintained by others and how to upg | Arch Linux AUR | https://aur.archlinux.org/packages/minikube/ | "Flag as package out-of-date" | Brew Cask | https://github.com/Homebrew/homebrew-cask/blob/master/Casks/minikube.rb | The release job creates a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256, double check that it's created. -#### Updating the arch linux package -The Arch Linux AUR is maintained at https://aur.archlinux.org/packages/minikube/. The installer PKGBUILD is hosted in its own repository. The public read-only repository is hosted here `https://aur.archlinux.org/minikube.git` and the private read-write repository is hosted here `ssh://aur@aur.archlinux.org/minikube.git` - -The repository is tracked in this repo under a submodule `installers/linux/arch_linux`. Currently, its configured to point at the public readonly repository so if you want to push you should run this command to overwrite - -`git config submodule.archlinux.url ssh://aur@aur.archlinux.org/minikube.git ` - -To actually update the package, you should bump the version and update the sha512 checksum. You should also run `makepkg --printsrcinfo > .SRCINFO` to update the srcinfo file. You can edit this manually if you don't have `makepkg` on your machine. +HEADS UP: Brew automation is currently broken: https://github.com/kubernetes/minikube/issues/3694 - send a PR out yourself. ## Verification -After you've finished the release, run this command from the release commit to verify the release was done correctly: -`make check-release`. +Verify release checksums by running`make check-release` -## Update kubernetes.io docs +## Update docs -If there are major changes, please send a PR to update the official setup guide: [Running Kubernetes Locally via Minikube](https://kubernetes.io/docs/setup/minikube/) +If there are major changes, please send a PR to update [Running Kubernetes Locally via Minikube(https://kubernetes.io/docs/setup/minikube/) -## Announce +## Announce! + +Places we generally announce releases: - #minikube on Slack - minikube-dev, minikube-users mailing list From 02a06a8da6c484e0ef2f8f780337bcaeab9d8822 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 6 Mar 2019 15:50:57 -0800 Subject: [PATCH 18/41] Second Start call should also pass in the new test.args list --- test/integration/start_stop_delete_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index 84114b5ba1..851c455a4e 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -66,7 +66,7 @@ func TestStartStop(t *testing.T) { t.Fatalf("timed out while checking stopped status: %v", err) } - r.Start() + r.Start(test.args...) r.CheckStatus(state.Running.String()) r.RunCommand("delete", true) From ac7fe9e08987c03461c3c2c027f4724be783c667 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 6 Mar 2019 17:33:46 -0800 Subject: [PATCH 19/41] Release notes for v0.35.0 --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35241b8cec..cdf3ec9a27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # Minikube Release Notes +# Version 0.35.0 - 2019-03-05 + +* Update default Kubernetes version to v1.13.4 (latest stable) [#3807](https://github.com/kubernetes/minikube/pull/3807) +* Update docker/machine to fix the AMD bug [#3809](https://github.com/kubernetes/minikube/pull/3809) +* Enable tap and vhost-net in minikube iso [#3758](https://github.com/kubernetes/minikube/pull/3758) +* Enable kernel modules necessary for IPVS [#3783](https://github.com/kubernetes/minikube/pull/3783) +* Add Netfilter `xt_socket` module to complete support for Transparent Proxying (TPROXY) [#3712](https://github.com/kubernetes/minikube/pull/3712) +* Change DefaultMountVersion to 9p2000.L [#3796](https://github.com/kubernetes/minikube/pull/3796) +* fix incorrect style name mount [#3789](https://github.com/kubernetes/minikube/pull/3789) +* When missing a hypervisor, omit the bug report prompt [#3787](https://github.com/kubernetes/minikube/pull/3787) +* Fix minikube logs for other container runtimes [#3780](https://github.com/kubernetes/minikube/pull/3780) +* Improve reliability of kube-proxy configmap updates (retry, block until pods are up) [#3774](https://github.com/kubernetes/minikube/pull/3774) +* update libvirtd [#3711](https://github.com/kubernetes/minikube/pull/3711) +* Add flag for disabling the VirtualBox VTX check [#3734](https://github.com/kubernetes/minikube/pull/3734) +* Add make target for building a rpm file [#3742](https://github.com/kubernetes/minikube/pull/3742) +* Improve building of deb package (versioning and permissions) [#3745](https://github.com/kubernetes/minikube/pull/3745) +* chown command should be against user $HOME, not roots home directory. [#3719](https://github.com/kubernetes/minikube/pull/3719) + +Thank you to the following contributors who made this release possible: + +- Anders F Björklund +- Artiom Diomin +- Don McCasland +- Elijah Oyekunle +- Filip Havlíček +- Ihor Dvoretskyi +- karmab +- Mas +- Miel Donkers +- Thomas Strömberg +- Tom Reznik +- Yaroslav Skopets +- Yoan Blanc + # Version 0.34.1 - 2019-02-16 * Make non-zero ssh error codes less dramatic [#3703](https://github.com/kubernetes/minikube/pull/3703) From d62b982c561e2aa5388d7cc0a2145e0e6c164612 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 6 Mar 2019 17:57:17 -0800 Subject: [PATCH 20/41] Add script to automate tag creation. --- hack/tag_release.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 hack/tag_release.sh diff --git a/hack/tag_release.sh b/hack/tag_release.sh new file mode 100644 index 0000000000..4870c16218 --- /dev/null +++ b/hack/tag_release.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright 2018 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. + +set -eux -o pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: tag_release.sh .." >&2 + exit 1 +fi + +readonly version=$1 +readonly tag="v${version}" +if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "supplied version does not match expectations: ${version}" + exit 2 +fi + +readonly clean_repo=$(mktemp -d) +git clone --depth 1 git@github.com:kubernetes/minikube.git "${clean_repo}" +cd "${clean_repo}" +git fetch +git checkout master +git pull +git tag -a "${tag}" -m "$version Release" +git push origin "${tag}" + From f4600607fa427e98ca2eea7131cbc4a8733b2c20 Mon Sep 17 00:00:00 2001 From: minikube-bot Date: Thu, 7 Mar 2019 06:06:03 +0000 Subject: [PATCH 21/41] Update releases.json to include v0.35.0 --- deploy/minikube/releases.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/deploy/minikube/releases.json b/deploy/minikube/releases.json index e8cfa76cd6..c3bcb33d50 100644 --- a/deploy/minikube/releases.json +++ b/deploy/minikube/releases.json @@ -1,4 +1,12 @@ [ + { + "name": "v0.35.0", + "checksums": { + "darwin": "9fb0ce4decb0f40b1b2ee11cad0aa89e13e2d5c46ff0d35875a0a65788dee6b4", + "linux": "e161995604c42c37a797fd11fac5d545f8b75f0796afc3b10679253bf229ff3d", + "windows": "748c9087e876491332897d8dc937eeea92f9fda9003443ef668dc75f5638ed5b" + } + }, { "name": "v0.34.1", "checksums": { From 833bf287c1c3ed9c67d0fe4c9c9e618676908794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 22:09:55 -0800 Subject: [PATCH 22/41] Fix v0.35.0 date --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdf3ec9a27..51990d0a6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Minikube Release Notes -# Version 0.35.0 - 2019-03-05 +# Version 0.35.0 - 2019-03-06 * Update default Kubernetes version to v1.13.4 (latest stable) [#3807](https://github.com/kubernetes/minikube/pull/3807) * Update docker/machine to fix the AMD bug [#3809](https://github.com/kubernetes/minikube/pull/3809) From e2ca4c505ee7d09d7eee59a582710c262162a023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 22:10:18 -0800 Subject: [PATCH 23/41] Add v0.35.0 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index abd853c710..7dae733bf2 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ Our [goal](https://github.com/kubernetes/minikube/blob/master/docs/contributors/ ## News +* 2019-03-06 - v0.35.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v0.35.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0350---2019-03-06)] * 2019-02-16 - v0.34.1 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v0.34.1)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0341---2019-02-16)] * 2019-02-15 - v0.34.0 released! [[download](https://github.com/kubernetes/minikube/releases/tag/v0.34.0)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0340---2019-02-15)] * 2019-01-18 - v0.33.1 released to address [CVE-2019-5736](https://www.openwall.com/lists/oss-security/2019/02/11/2) [[download](https://github.com/kubernetes/minikube/releases/tag/v0.33.1)] [[release notes](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md#version-0331---2019-01-18)] From f1179da0aed632c9d8159a721f2045913ddcb733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Thu, 7 Mar 2019 07:18:27 +0100 Subject: [PATCH 24/41] Add missing variable and upload of rpm to github --- hack/jenkins/release_github_page.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hack/jenkins/release_github_page.sh b/hack/jenkins/release_github_page.sh index edddab755c..fc369c04ba 100755 --- a/hack/jenkins/release_github_page.sh +++ b/hack/jenkins/release_github_page.sh @@ -27,6 +27,7 @@ set -e export TAGNAME=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD} export DEB_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD} +export RPM_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_BUILD} export GITHUB_ORGANIZATION="kubernetes" export GITHUB_REPO="minikube" @@ -121,6 +122,7 @@ FILES_TO_UPLOAD=( 'minikube-windows-amd64.sha256' 'minikube-installer.exe' "minikube_${DEB_VERSION}.deb" + "minikube-${RPM_VERSION}.rpm" 'docker-machine-driver-kvm2' 'docker-machine-driver-hyperkit' ) From a63dabebc7b4fbbcc3cbc133eda667e05aae764d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Wed, 6 Mar 2019 22:36:13 -0800 Subject: [PATCH 25/41] Brew seems to work, fix minikube doc link --- docs/contributors/releasing_minikube.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md index 9939e95996..3a1ab83c39 100644 --- a/docs/contributors/releasing_minikube.md +++ b/docs/contributors/releasing_minikube.md @@ -98,15 +98,13 @@ These are downstream packages that are being maintained by others and how to upg | Arch Linux AUR | https://aur.archlinux.org/packages/minikube/ | "Flag as package out-of-date" | Brew Cask | https://github.com/Homebrew/homebrew-cask/blob/master/Casks/minikube.rb | The release job creates a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256, double check that it's created. -HEADS UP: Brew automation is currently broken: https://github.com/kubernetes/minikube/issues/3694 - send a PR out yourself. - ## Verification Verify release checksums by running`make check-release` ## Update docs -If there are major changes, please send a PR to update [Running Kubernetes Locally via Minikube(https://kubernetes.io/docs/setup/minikube/) +If there are major changes, please send a PR to update https://kubernetes.io/docs/setup/minikube/ ## Announce! From 229137c06b5ee0d210676bb23114912a689e1893 Mon Sep 17 00:00:00 2001 From: Calin Don Date: Thu, 7 Mar 2019 11:34:46 +0200 Subject: [PATCH 26/41] Fix tunnel error logging --- pkg/minikube/tunnel/loadbalancer_patcher.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/tunnel/loadbalancer_patcher.go b/pkg/minikube/tunnel/loadbalancer_patcher.go index d7659eafaa..6df0d8034c 100644 --- a/pkg/minikube/tunnel/loadbalancer_patcher.go +++ b/pkg/minikube/tunnel/loadbalancer_patcher.go @@ -103,9 +103,9 @@ func (l *loadBalancerEmulator) updateService(restClient rest.Interface, svc core request := l.patchConverter.convert(restClient, patch) result, err := l.requestSender.send(request) if err != nil { - glog.Infof("Patched %s with IP %s", svc.Name, clusterIP) - } else { glog.Errorf("error patching %s with IP %s: %s", svc.Name, clusterIP, err) + } else { + glog.Infof("Patched %s with IP %s", svc.Name, clusterIP) } return result, err } From a4859191136a212f543b920f13f2a6a187abd0fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Thu, 7 Mar 2019 09:42:14 -0800 Subject: [PATCH 27/41] Remove bad formatting --- .github/ISSUE_TEMPLATE | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE index 625914b04c..6b07c4ee16 100644 --- a/.github/ISSUE_TEMPLATE +++ b/.github/ISSUE_TEMPLATE @@ -1,9 +1,8 @@ - From bf1924a7589ae0d81a9f9143112a79b353b75159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Thu, 7 Mar 2019 10:23:07 -0800 Subject: [PATCH 28/41] Update vmdriver-none.md --- docs/vmdriver-none.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vmdriver-none.md b/docs/vmdriver-none.md index aac35c3ded..5ea0bfa6e2 100644 --- a/docs/vmdriver-none.md +++ b/docs/vmdriver-none.md @@ -96,7 +96,7 @@ Some environment variables may be useful for using the `none` driver: ## Known Issues -* You cannot run more than one `--vm-driver=none` instance on a single host +* `-p` (profiles) are unsupported: It is not possible to run more than one `--vm-driver=none` instance * Many `minikube` commands are not supported, such as: `dashboard`, `mount`, `ssh` * minikube with the `none` driver has a confusing permissions model, as some commands need to be run as root ("start"), and others by a regular user ("dashboard") * CoreDNS detects resolver loop, goes into CrashloopBackoff - [#3511](https://github.com/kubernetes/minikube/issues/3511) From a3e652a360a67dd21afd080daa185071d68e3955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20M=C4=83gheru=C8=99an-Stanciu=20=40magheru=5Fsan?= Date: Thu, 7 Mar 2019 21:48:39 +0100 Subject: [PATCH 29/41] Fix `minikube addons open heapster` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the default installation I get the same error: ``` $ minikube addons open heapster 💣 This addon does not have an endpoint defined for the 'addons open' command. You can add one by annotating a service with the label kubernetes.io/minikube-addons-endpoint:heapster ``` This PR is simply implementing the suggested fix by adding the aforementioned label to the heapster service. --- deploy/addons/heapster/heapster-svc.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy/addons/heapster/heapster-svc.yaml b/deploy/addons/heapster/heapster-svc.yaml index 3db54f62aa..9322781cfb 100644 --- a/deploy/addons/heapster/heapster-svc.yaml +++ b/deploy/addons/heapster/heapster-svc.yaml @@ -19,6 +19,7 @@ metadata: kubernetes.io/name: heapster kubernetes.io/minikube-addons: heapster addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/minikube-addons-endpoint: heapster name: heapster namespace: kube-system spec: From 4d4674f89998d2bf26eb6ddb81f2190ba691ae54 Mon Sep 17 00:00:00 2001 From: Joel Smith Date: Fri, 8 Mar 2019 10:23:48 -0700 Subject: [PATCH 30/41] Update embargo doc link in SECURITY_OWNERS and changes PST to PSC --- SECURITY_CONTACTS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SECURITY_CONTACTS b/SECURITY_CONTACTS index 5d678a639d..cdbd1d45f5 100644 --- a/SECURITY_CONTACTS +++ b/SECURITY_CONTACTS @@ -1,10 +1,10 @@ # Defined below are the security contacts for this repo. # -# They are the contact point for the Product Security Team to reach out +# They are the contact point for the Product Security Committee to reach out # to for triaging and handling of incoming issues. # # The below names agree to abide by the -# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) # and will be removed and replaced if they violate that agreement. # # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE From 4a7e68c6b7a9d8e9fdb11676843f7b71eeec4eee Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Fri, 8 Mar 2019 09:51:08 -0800 Subject: [PATCH 31/41] Add detection for #3818 - no providers available --- pkg/minikube/logs/logs.go | 2 +- pkg/minikube/logs/logs_test.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/logs/logs.go b/pkg/minikube/logs/logs.go index 4f833eaa43..a5bda47939 100644 --- a/pkg/minikube/logs/logs.go +++ b/pkg/minikube/logs/logs.go @@ -33,7 +33,7 @@ import ( ) // rootCauseRe is a regular expression that matches known failure root causes -var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --`) +var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --|forbidden.*no providers available|eviction manager:.*evicted`) // importantPods are a list of pods to retrieve logs for, in addition to the bootstrapper logs. var importantPods = []string{ diff --git a/pkg/minikube/logs/logs_test.go b/pkg/minikube/logs/logs_test.go index 245f5aa4d3..487fba654f 100644 --- a/pkg/minikube/logs/logs_test.go +++ b/pkg/minikube/logs/logs_test.go @@ -28,10 +28,11 @@ func TestIsProblem(t *testing.T) { }{ {"almost", false, "F2350 I would love to be an unknown flag, but I am not -- :( --"}, {"apiserver-required-flag #1962", true, "error: [service-account-issuer is a required flag when BoundServiceAccountTokenVolume is enabled, --service-account-signing-key-file and --service-account-issuer are required flags"}, - {"kubelet-eviction #", true, "I0213 07:16:44.041623 2410 eviction_manager.go:187] eviction manager: pods kube-apiserver-minikube_kube-system(87f41e2e0629c3deb5c2239e08d8045d) evicted, waiting for pod to be cleaned up"}, + {"kubelet-eviction #3611", true, `eviction_manager.go:187] eviction manager: pods kube-proxy-kfs8p_kube-system(27fd6b4b-33cf-11e9-ae1d-00155d4b0144) evicted, waiting for pod to be cleaned up`}, {"kubelet-unknown-flag #3655", true, "F0212 14:55:46.443031 2693 server.go:148] unknown flag: --AllowedUnsafeSysctls"}, {"apiserver-auth-mode #2852", true, `{"log":"Error: unknown flag: --Authorization.Mode\n","stream":"stderr","time":"2018-06-17T22:16:35.134161966Z"}`}, {"apiserver-admission #3524", true, "error: unknown flag: --GenericServerRunOptions.AdmissionControl"}, + {"no-providers-available #3818", true, ` kubelet.go:1662] Failed creating a mirror pod for "kube-apiserver-minikube_kube-system(c7d572aebd3d33b17fa78ae6395b6d0a)": pods "kube-apiserver-minikube" is forbidden: no providers available to validate pod request`}, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { From 52208171c0b95c93751a115d4b3f295a42381db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Fri, 8 Mar 2019 10:05:44 -0800 Subject: [PATCH 32/41] Mention NO_PROXY with non-k8s apps. Closes #3827 --- docs/http_proxy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/http_proxy.md b/docs/http_proxy.md index 4f56d00bd8..cbd5139164 100644 --- a/docs/http_proxy.md +++ b/docs/http_proxy.md @@ -11,6 +11,8 @@ The NO_PROXY variable here is important: Without setting it, minikube may not be * **192.168.99.1/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` * **10.96.0.0/12**: Used by service cluster IP's. Configurable via `--service-cluster-ip-range` +One important note: If NO_PROXY is required by non-Kubernetes applications, such as Firefox or Chrome, you may want to specifically add the minikube IP to the comma-separated list, as they may not understand IP ranges ([#3827](https://github.com/kubernetes/minikube/issues/3827)). + ## Example Usage ### macOS and Linux From 4f44208ba310f5e806e6c49d4d724f18023f743b Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Fri, 8 Mar 2019 12:30:41 -0800 Subject: [PATCH 33/41] Refactor functional tests to not rely on SetRuntime, use short variable name --- test/integration/functional_test.go | 25 +++++++++++-------------- test/integration/util/util.go | 5 ----- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 47278012c6..a8ced7a510 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -27,8 +27,8 @@ import ( ) func TestFunctional(t *testing.T) { - minikubeRunner := NewMinikubeRunner(t) - minikubeRunner.EnsureRunning() + r := NewMinikubeRunner(t) + r.EnsureRunning() // This one is not parallel, and ensures the cluster comes up // before we run any other tests. t.Run("Status", testClusterStatus) @@ -41,7 +41,7 @@ func TestFunctional(t *testing.T) { t.Run("Provisioning", testProvisioning) t.Run("Tunnel", testTunnel) - if !usingNoneDriver(minikubeRunner) { + if !usingNoneDriver(r) { t.Run("EnvVars", testClusterEnv) t.Run("SSH", testClusterSSH) t.Run("IngressController", testIngressController) @@ -50,25 +50,22 @@ func TestFunctional(t *testing.T) { } func TestFunctionalContainerd(t *testing.T) { - minikubeRunner := NewMinikubeRunner(t) + r := NewMinikubeRunner(t) - if usingNoneDriver(minikubeRunner) { + if usingNoneDriver(r) { t.Skip("Can't run containerd backend with none driver") } - if minikubeRunner.GetStatus() != state.None.String() { - minikubeRunner.RunCommand("delete", true) + if r.GetStatus() != state.None.String() { + r.RunCommand("delete", true) } - - minikubeRunner.SetRuntime("containerd") - minikubeRunner.EnsureRunning() - + r.Start("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") t.Run("Gvisor", testGvisor) t.Run("GvisorRestart", testGvisorRestart) - minikubeRunner.RunCommand("delete", true) + r.RunCommand("delete", true) } // usingNoneDriver returns true if using the none driver -func usingNoneDriver(runner util.MinikubeRunner) bool { - return strings.Contains(runner.StartArgs, "--vm-driver=none") +func usingNoneDriver(r util.MinikubeRunner) bool { + return strings.Contains(r.StartArgs, "--vm-driver=none") } diff --git a/test/integration/util/util.go b/test/integration/util/util.go index e1458a9427..51e8f15468 100644 --- a/test/integration/util/util.go +++ b/test/integration/util/util.go @@ -184,11 +184,6 @@ func (m *MinikubeRunner) RunDaemon2(command string) (*exec.Cmd, *bufio.Reader, * return cmd, bufio.NewReader(stdoutPipe), bufio.NewReader(stderrPipe) } -// SetRuntime saves the runtime backend -func (m *MinikubeRunner) SetRuntime(runtime string) { - m.Runtime = runtime -} - func (m *MinikubeRunner) SSH(command string) (string, error) { path, _ := filepath.Abs(m.BinaryPath) cmd := exec.Command(path, "ssh", command) From 1fd7c0ddf679f5113e7354e9e5d33c98a8749929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sun, 10 Mar 2019 10:46:19 +0100 Subject: [PATCH 34/41] Fix exe suffix and missing checksum for win bin Windows needs that DOS suffix, so we make a copy --- hack/jenkins/release_github_page.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hack/jenkins/release_github_page.sh b/hack/jenkins/release_github_page.sh index edddab755c..f3437d0192 100755 --- a/hack/jenkins/release_github_page.sh +++ b/hack/jenkins/release_github_page.sh @@ -117,8 +117,8 @@ FILES_TO_UPLOAD=( 'minikube-linux-amd64.sha256' 'minikube-darwin-amd64' 'minikube-darwin-amd64.sha256' - 'minikube-windows-amd64' - 'minikube-windows-amd64.sha256' + 'minikube-windows-amd64.exe' + 'minikube-windows-amd64.exe.sha256' 'minikube-installer.exe' "minikube_${DEB_VERSION}.deb" 'docker-machine-driver-kvm2' From c41338b372e0a3fbd427409b10d4a71b20d57fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Mon, 11 Mar 2019 09:39:23 -0700 Subject: [PATCH 35/41] Document hack/tag_release.sh --- docs/contributors/releasing_minikube.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/contributors/releasing_minikube.md b/docs/contributors/releasing_minikube.md index 3a1ab83c39..6be9f5b5be 100644 --- a/docs/contributors/releasing_minikube.md +++ b/docs/contributors/releasing_minikube.md @@ -61,15 +61,8 @@ Merge the output into CHANGELOG.md. See [PR#3175](https://github.com/kubernetes/ NOTE: Confirm that all release-related PR's have been submitted before doing this step. -Do this in a direct clone of the upstream kubernetes/minikube repository (not your fork!): - -``` -version= -git fetch -git checkout master -git pull -git tag -a v$version -m "$version Release" -git push origin v$version +```shell +hack/tag_release.sh ``` ## Build the Release From 3cc68bd18b0726f303d6eb4786b8a4a997ceaa69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Str=C3=B6mberg?= Date: Mon, 11 Mar 2019 12:15:42 -0700 Subject: [PATCH 36/41] Update ISSUE_TEMPLATE --- .github/ISSUE_TEMPLATE | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE index 6b07c4ee16..20329dd199 100644 --- a/.github/ISSUE_TEMPLATE +++ b/.github/ISSUE_TEMPLATE @@ -1,8 +1,5 @@ - + + + + + From b0b32b702d86bbcfb1dd7d5a8ac17d3121660088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sun, 17 Mar 2019 12:17:19 +0100 Subject: [PATCH 37/41] Allow building minikube for any architecture Currently it is hardcoded to build for any GOOS, but same GOARCH. Change this to allow building for any combination of: minikube-*-* --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 77bec70d47..842d88d981 100755 --- a/Makefile +++ b/Makefile @@ -99,7 +99,7 @@ out/minikube.d: pkg/minikube/assets/assets.go $(MAKEDEPEND) out/minikube-$(GOOS)-$(GOARCH) $(ORG) $^ $(MINIKUBEFILES) > $@ -include out/minikube.d -out/minikube-%-$(GOARCH): pkg/minikube/assets/assets.go +out/minikube-%: pkg/minikube/assets/assets.go ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) $(call DOCKER,$(BUILD_IMAGE),/usr/bin/make $@) else @@ -114,7 +114,7 @@ ifneq ($(GOPATH)/src/$(REPOPATH),$(CURDIR)) $(warning https://github.com/kubernetes/minikube/blob/master/docs/contributors/build_guide.md) $(warning ******************************************************************************) endif - GOOS=$* GOARCH=$(GOARCH) go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube + GOOS="$(firstword $(subst -, ,$*))" GOARCH="$(lastword $(subst -, ,$*))" go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube endif .PHONY: e2e-%-amd64 From d91615ef464ba2a0469e77983e4fd668f5b0c8a7 Mon Sep 17 00:00:00 2001 From: Igor Akkerman Date: Sun, 17 Mar 2019 18:39:40 +0100 Subject: [PATCH 38/41] Windows installer using installation path for x64 applications --- installers/windows/minikube.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installers/windows/minikube.nsi b/installers/windows/minikube.nsi index 404b864922..3c0f412e45 100644 --- a/installers/windows/minikube.nsi +++ b/installers/windows/minikube.nsi @@ -25,7 +25,7 @@ RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) -InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}" +InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}" !define UNINSTALLDIR "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" BrandingText " " From 8f7cca3045c9acf4ee64e0705f9290eff4eca824 Mon Sep 17 00:00:00 2001 From: Guang Ya Liu Date: Mon, 18 Mar 2019 02:18:09 -0700 Subject: [PATCH 39/41] Highlight libvirtd for old distributions. --- docs/drivers.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/drivers.md b/docs/drivers.md index 2f3590de18..d89e960c2d 100644 --- a/docs/drivers.md +++ b/docs/drivers.md @@ -36,7 +36,7 @@ sudo apt install libvirt-bin libvirt-daemon-system qemu-kvm sudo yum install libvirt-daemon-kvm qemu-kvm ``` -Enable,start, and verify the libvirtd service has started. +Enable,start, and verify the `libvirtd` service has started. ```shell sudo systemctl enable libvirtd.service sudo systemctl start libvirtd.service @@ -44,13 +44,17 @@ sudo systemctl status libvirtd.service ``` -Then you will need to add yourself to libvirt group (older distributions may use libvirtd instead) +Then you will need to add yourself to `libvirt` group (older distributions may use `libvirtd` instead) -`sudo usermod -a -G libvirt $(whoami)` +```shell +sudo usermod -a -G libvirt $(whoami) +``` Then to join the group with your current user session: -`newgrp libvirt` +```shell +newgrp libvirt +``` Now install the driver: From 443accf1e04d3b2ecb5a6d693f0d6983127f9394 Mon Sep 17 00:00:00 2001 From: Marco Vito Moscaritolo Date: Tue, 19 Mar 2019 08:53:11 +0100 Subject: [PATCH 40/41] Update link to drive docs in xhyve driver Signed-off-by: Marco Vito Moscaritolo --- pkg/minikube/drivers/xhyve/driver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/drivers/xhyve/driver.go b/pkg/minikube/drivers/xhyve/driver.go index 0e16ae8c9d..2504843a85 100644 --- a/pkg/minikube/drivers/xhyve/driver.go +++ b/pkg/minikube/drivers/xhyve/driver.go @@ -30,7 +30,7 @@ import ( const errMsg = ` The Xhyve driver is not included in minikube yet. Please follow the directions at -https://github.com/kubernetes/minikube/blob/master/DRIVERS.md#xhyve-driver +https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#xhyve-driver ` func init() { From bf794665e9c7fb5be2f85f686cb559514b304987 Mon Sep 17 00:00:00 2001 From: morvencao Date: Wed, 20 Mar 2019 12:40:16 +0800 Subject: [PATCH 41/41] fix gopath issue for driver installation. --- docs/drivers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/drivers.md b/docs/drivers.md index 2f3590de18..9963574f2b 100644 --- a/docs/drivers.md +++ b/docs/drivers.md @@ -64,9 +64,9 @@ NOTE: Ubuntu users on a release older than 18.04, or anyone experiencing [#3206: ```shell sudo apt install libvirt-dev -test -d $HOME/go/src/k8s.io/minikube || \ - git clone https://github.com/kubernetes/minikube.git $HOME/go/src/k8s.io/minikube -cd $HOME/go/src/k8s.io/minikube +test -d $GOPATH/src/k8s.io/minikube || \ + git clone https://github.com/kubernetes/minikube.git $GOPATH/src/k8s.io/minikube +cd $GOPATH/src/k8s.io/minikube git pull make out/docker-machine-driver-kvm2 sudo install out/docker-machine-driver-kvm2 /usr/local/bin