diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c360769bb..957e2e1025 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Release Notes +## Version 1.7.0-beta.2 - 2020-01-31 + +* Add docker run-time for kic driver [#6436](https://github.com/kubernetes/minikube/pull/6436) +* Add addon enablement to start [#6440](https://github.com/kubernetes/minikube/pull/6440) +* Configure etcd and kube-proxy metrics to listen on minikube node IP [#6322](https://github.com/kubernetes/minikube/pull/6322) +* add container runtime info to profile list [#6409](https://github.com/kubernetes/minikube/pull/6409) +* Allow 'profiles list' to work even if a profile has no control plane [#6450](https://github.com/kubernetes/minikube/pull/6450) +* status: Explicitly state that the cluster does not exist [#6438](https://github.com/kubernetes/minikube/pull/6438) +* Do not use an arch suffix for the coredns name [#6243](https://github.com/kubernetes/minikube/pull/6243) +* Allow building storage-provisioner for other arch [#6257](https://github.com/kubernetes/minikube/pull/6257) +* Prevent registry-creds configure from failing when a secret does not exist. [#6380](https://github.com/kubernetes/minikube/pull/6380) +* improve checking modprob netfilter [#6427](https://github.com/kubernetes/minikube/pull/6427) + +Huge thank you for this release towards our contributors: + +- Anders Björklund +- Bjørn Harald Fotland +- Chance Zibolski +- Kim Bao Long +- Medya Ghazizadeh +- Priya Wadhwa +- Sharif Elgamal +- Thomas Strömberg +- akshay + ## Version 1.7.0-beta.1 - 2020-01-24 * Add 'pause' command to freeze Kubernetes cluster [#5962](https://github.com/kubernetes/minikube/pull/5962) diff --git a/Makefile b/Makefile index e460ac2886..93ddd3ac28 100755 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 1 VERSION_MINOR ?= 7 -VERSION_BUILD ?= 0-beta.1 +VERSION_BUILD ?= 0-beta.2 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).${VERSION_BUILD} VERSION ?= v$(RAW_VERSION) @@ -51,7 +51,7 @@ MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download KERNEL_VERSION ?= 4.19.88 # latest from https://github.com/golangci/golangci-lint/releases -GOLINT_VERSION ?= v1.21.0 +GOLINT_VERSION ?= v1.23.2 # Limit number of default jobs, to avoid the CI builds running out of memory GOLINT_JOBS ?= 4 # see https://github.com/golangci/golangci-lint#memory-usage-of-golangci-lint @@ -374,6 +374,9 @@ mdlint: out/docs/minikube.md: $(shell find "cmd") $(shell find "pkg/minikube/constants") pkg/minikube/assets/assets.go pkg/minikube/translate/translations.go go run -ldflags="$(MINIKUBE_LDFLAGS)" -tags gendocs hack/help_text/gen_help_text.go +deb_version: + @echo $(DEB_VERSION) + out/minikube_$(DEB_VERSION).deb: out/minikube_$(DEB_VERSION)-0_amd64.deb cp $< $@ @@ -387,6 +390,9 @@ out/minikube_$(DEB_VERSION)-0_%.deb: out/minikube-linux-% fakeroot dpkg-deb --build out/minikube_$(DEB_VERSION) $@ rm -rf out/minikube_$(DEB_VERSION) +rpm_version: + @echo $(RPM_VERSION) + out/minikube-$(RPM_VERSION).rpm: out/minikube-$(RPM_VERSION)-0.x86_64.rpm cp $< $@ @@ -525,13 +531,17 @@ release-minikube: out/minikube checksum ## Minikube release gsutil cp out/minikube-$(GOOS)-$(GOARCH) $(MINIKUBE_UPLOAD_LOCATION)/$(MINIKUBE_VERSION)/minikube-$(GOOS)-$(GOARCH) gsutil cp out/minikube-$(GOOS)-$(GOARCH).sha256 $(MINIKUBE_UPLOAD_LOCATION)/$(MINIKUBE_VERSION)/minikube-$(GOOS)-$(GOARCH).sha256 -out/docker-machine-driver-kvm2: +out/docker-machine-driver-kvm2: out/docker-machine-driver-kvm2-amd64 + cp $< $@ + +out/docker-machine-driver-kvm2-%: ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y) docker inspect -f '{{.Id}} {{.RepoTags}}' $(KVM_BUILD_IMAGE) || $(MAKE) kvm-image $(call DOCKER,$(KVM_BUILD_IMAGE),/usr/bin/make $@ COMMIT=$(COMMIT)) # make extra sure that we are linking with the older version of libvirt (1.3.1) test "`strings $@ | grep '^LIBVIRT_[0-9]' | sort | tail -n 1`" = "LIBVIRT_1.2.9" else + GOARCH=$* \ go build \ -installsuffix "static" \ -ldflags="$(KVM2_LDFLAGS)" \ @@ -541,21 +551,29 @@ else endif chmod +X $@ -out/docker-machine-driver-kvm2_$(DEB_VERSION).deb: out/docker-machine-driver-kvm2 +out/docker-machine-driver-kvm2_$(DEB_VERSION).deb: out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_amd64.deb + cp $< $@ + +out/docker-machine-driver-kvm2_$(DEB_VERSION)-0_%.deb: out/docker-machine-driver-kvm2-% cp -r installers/linux/deb/kvm2_deb_template out/docker-machine-driver-kvm2_$(DEB_VERSION) chmod 0755 out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN sed -E -i 's/--VERSION--/'$(DEB_VERSION)'/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control + sed -E -i 's/--ARCH--/'$*'/g' out/docker-machine-driver-kvm2_$(DEB_VERSION)/DEBIAN/control mkdir -p out/docker-machine-driver-kvm2_$(DEB_VERSION)/usr/bin cp out/docker-machine-driver-kvm2 out/docker-machine-driver-kvm2_$(DEB_VERSION)/usr/bin/docker-machine-driver-kvm2 - fakeroot dpkg-deb --build out/docker-machine-driver-kvm2_$(DEB_VERSION) + fakeroot dpkg-deb --build out/docker-machine-driver-kvm2_$(DEB_VERSION) $@ rm -rf out/docker-machine-driver-kvm2_$(DEB_VERSION) -out/docker-machine-driver-kvm2-$(RPM_VERSION).rpm: out/docker-machine-driver-kvm2 +out/docker-machine-driver-kvm2-$(RPM_VERSION).rpm: out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.x86_64.deb + cp $< $@ + +out/docker-machine-driver-kvm2-$(RPM_VERSION)-0.%.rpm: out/docker-machine-driver-kvm2-% cp -r installers/linux/rpm/kvm2_rpm_template out/docker-machine-driver-kvm2-$(RPM_VERSION) sed -E -i 's/--VERSION--/'$(RPM_VERSION)'/g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec sed -E -i 's|--OUT--|'$(PWD)/out'|g' out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec - rpmbuild -bb -D "_rpmdir $(PWD)/out" -D "_rpmfilename docker-machine-driver-kvm2-$(RPM_VERSION).rpm" \ + rpmbuild -bb -D "_rpmdir $(PWD)/out" --target $* \ out/docker-machine-driver-kvm2-$(RPM_VERSION)/docker-machine-driver-kvm2.spec + @mv out/$*/docker-machine-driver-kvm2-$(RPM_VERSION)-0.$*.rpm out/ && rmdir out/$* rm -rf out/docker-machine-driver-kvm2-$(RPM_VERSION) .PHONY: kvm-image diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go index c97cae9b72..74e595cd5e 100644 --- a/cmd/minikube/cmd/delete.go +++ b/cmd/minikube/cmd/delete.go @@ -132,14 +132,12 @@ func runDelete(cmd *cobra.Command, args []string) { profileName := viper.GetString(pkg_config.MachineProfile) profile, err := pkg_config.LoadProfile(profileName) if err != nil { - out.ErrT(out.Meh, `"{{.name}}" profile does not exist`, out.V{"name": profileName}) + out.ErrT(out.Meh, `"{{.name}}" profile does not exist, trying anyways.`, out.V{"name": profileName}) } errs := DeleteProfiles([]*pkg_config.Profile{profile}) if len(errs) > 0 { HandleDeletionErrors(errs) - } else { - out.T(out.DeletingHost, "Successfully deleted profile \"{{.name}}\"", out.V{"name": profileName}) } } @@ -154,7 +152,7 @@ func purgeMinikubeDirectory() { if err := os.RemoveAll(localpath.MiniPath()); err != nil { exit.WithError("unable to delete minikube config folder", err) } - out.T(out.Crushed, "Successfully purged minikube directory located at - [{{.minikubeDirectory}}]", out.V{"minikubeDirectory": localpath.MiniPath()}) + out.T(out.Deleted, "Successfully purged minikube directory located at - [{{.minikubeDirectory}}]", out.V{"minikubeDirectory": localpath.MiniPath()}) } // DeleteProfiles deletes one or more profiles @@ -213,7 +211,7 @@ func deleteProfile(profile *pkg_config.Profile) error { if err = cluster.DeleteHost(api, profile.Name); err != nil { switch errors.Cause(err).(type) { case mcnerror.ErrHostDoesNotExist: - out.T(out.Meh, `"{{.name}}" cluster does not exist. Proceeding ahead with cleanup.`, out.V{"name": profile.Name}) + glog.Infof("%s cluster does not exist. Proceeding ahead with cleanup.", profile.Name) default: out.T(out.FailureType, "Failed to delete cluster: {{.error}}", out.V{"error": err}) out.T(out.Notice, `You may need to manually remove the "{{.name}}" VM from your hypervisor`, out.V{"name": profile.Name}) @@ -232,11 +230,10 @@ func deleteProfile(profile *pkg_config.Profile) error { return DeletionError{Err: delErr, Errtype: Fatal} } - out.T(out.Crushed, `The "{{.name}}" cluster has been deleted.`, out.V{"name": profile.Name}) - if err := deleteContext(profile.Name); err != nil { return err } + out.T(out.Deleted, `Removed all traces of the "{{.name}}" cluster.`, out.V{"name": profile.Name}) return nil } diff --git a/installers/linux/deb/kvm2_deb_template/DEBIAN/control b/installers/linux/deb/kvm2_deb_template/DEBIAN/control index 49a6075b6a..14b1fbe0d4 100644 --- a/installers/linux/deb/kvm2_deb_template/DEBIAN/control +++ b/installers/linux/deb/kvm2_deb_template/DEBIAN/control @@ -2,7 +2,7 @@ Package: docker-machine-driver-kvm2 Version: --VERSION-- Section: base Priority: optional -Architecture: amd64 +Architecture: --ARCH-- Depends: libvirt0 (>= 1.3.1) Recommends: minikube Maintainer: Thomas Strömberg diff --git a/pkg/minikube/cluster/cluster.go b/pkg/minikube/cluster/cluster.go index 6b78b88cef..0d5475b06d 100644 --- a/pkg/minikube/cluster/cluster.go +++ b/pkg/minikube/cluster/cluster.go @@ -315,21 +315,21 @@ func StopHost(api libmachine.API) error { return nil } +// deleteOrphanedKIC attempts to delete an orphaned docker instance +func deleteOrphanedKIC(name string) { + cmd := exec.Command(oci.Docker, "rm", "-f", "-v", name) + err := cmd.Run() + if err == nil { + glog.Infof("Found stale kic container and successfully cleaned it up!") + } +} + // DeleteHost deletes the host VM. func DeleteHost(api libmachine.API, machineName string) error { host, err := api.Load(machineName) if err != nil && host == nil { - // before we give up on deleting the host - // we try to kill the possible orphan kic driver - // this case will happen if the user deleted both profile and machine folder - // inside minikube home - cmd := exec.Command(oci.Docker, "rm", "-f", "-v", machineName) - err := cmd.Run() - if err == nil { - glog.Infof("Found stale kic container and successfully cleaned it up.") - return nil - } - return errors.Wrap(err, "load") + deleteOrphanedKIC(machineName) + // keep going even if minikube does not know about the host } // Get the status of the host. Ensure that it exists before proceeding ahead. @@ -340,7 +340,7 @@ func DeleteHost(api libmachine.API, machineName string) error { } if status == state.None.String() { - return mcnerror.ErrHostDoesNotExist{Name: host.Name} + return mcnerror.ErrHostDoesNotExist{Name: machineName} } // This is slow if SSH is not responding, but HyperV hangs otherwise, See issue #2914 diff --git a/pkg/minikube/out/style.go b/pkg/minikube/out/style.go index 56f6bf8b35..00de29b68c 100644 --- a/pkg/minikube/out/style.go +++ b/pkg/minikube/out/style.go @@ -72,7 +72,7 @@ var styles = map[StyleEnum]style{ Option: {Prefix: " ▪ ", LowPrefix: lowIndent}, // Indented bullet Command: {Prefix: " ▪ ", LowPrefix: lowIndent}, // Indented bullet LogEntry: {Prefix: " "}, // Indent - Crushed: {Prefix: "💔 "}, + Deleted: {Prefix: "💀 "}, URL: {Prefix: "👉 ", LowPrefix: lowIndent}, Documentation: {Prefix: "📘 "}, Issues: {Prefix: "⁉️ "}, diff --git a/pkg/minikube/out/style_enum.go b/pkg/minikube/out/style_enum.go index 150b19fa37..5b1571a042 100644 --- a/pkg/minikube/out/style_enum.go +++ b/pkg/minikube/out/style_enum.go @@ -45,7 +45,7 @@ const ( Option Command LogEntry - Crushed + Deleted URL Documentation Issues