Skip to content

Commit f5103dd

Browse files
authored
Merge pull request #21946 from medyagh/remove_hyperkit_builds
hyperkit: remove driver builds & warn users to switch
2 parents 072b208 + d77aaf4 commit f5103dd

File tree

5 files changed

+15
-66
lines changed

5 files changed

+15
-66
lines changed

Makefile

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true)
5454
COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}")
5555
COMMIT_SHORT = $(shell git rev-parse --short HEAD 2> /dev/null || true)
5656
COMMIT_NOQUOTES := $(patsubst "%",%,$(COMMIT))
57-
# source code for image: https://github.com/neilotoole/xcgo
58-
HYPERKIT_BUILD_IMAGE ?= quay.io/nirsof/xcgo:jammy-v2
5957

6058
# NOTE: "latest" as of 2021-02-06. kube-cross images aren't updated as often as Kubernetes
6159
# https://github.com/kubernetes/kubernetes/blob/master/build/build-image/cross/VERSION
@@ -133,7 +131,6 @@ MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION) -X k8s.io/
133131
PROVISIONER_LDFLAGS := "-X k8s.io/minikube/pkg/storage.version=$(STORAGE_PROVISIONER_TAG) -s -w -extldflags '-static'"
134132

135133
MINIKUBEFILES := ./cmd/minikube/
136-
HYPERKIT_FILES := ./cmd/drivers/hyperkit
137134
STORAGE_PROVISIONER_FILES := ./cmd/storage-provisioner
138135
KVM_DRIVER_FILES := ./cmd/drivers/kvm/
139136

@@ -162,9 +159,6 @@ ADDON_FILES = $(shell find "deploy/addons" -type f | grep -v "\.go")
162159
TRANSLATION_FILES = $(shell find "translations" -type f | grep -v "\.go")
163160
ASSET_FILES = $(ADDON_FILES) $(TRANSLATION_FILES)
164161

165-
# hyperkit ldflags
166-
HYPERKIT_LDFLAGS := -X k8s.io/minikube/pkg/drivers/hyperkit.version=$(VERSION) -X k8s.io/minikube/pkg/drivers/hyperkit.gitCommitID=$(COMMIT)
167-
168162
# autopush artefacts
169163
AUTOPUSH ?=
170164

@@ -357,14 +351,7 @@ test-pkg/%: ## Trigger packaging test
357351
go test -v -test.timeout=60m ./$* --tags="$(MINIKUBE_BUILD_TAGS)"
358352

359353
.PHONY: all
360-
all: cross drivers e2e-cross cross-tars exotic retro out/gvisor-addon ## Build all different minikube components
361-
362-
# After https://github.com/kubernetes/minikube/issues/19959 is fixed kvm2-arm64 can be added back
363-
.PHONY: drivers
364-
drivers: docker-machine-driver-hyperkit ## Build external drivers
365-
366-
.PHONY: docker-machine-driver-hyperkit
367-
docker-machine-driver-hyperkit: out/docker-machine-driver-hyperkit ## Build Hyperkit driver
354+
all: cross e2e-cross cross-tars exotic retro out/gvisor-addon ## Build all different minikube components
368355

369356
.PHONY: integration
370357
integration: out/minikube$(IS_EXE) ## Trigger minikube integration test, logs to ./out/testout_COMMIT.txt
@@ -464,8 +451,7 @@ e2e-cross: e2e-linux-amd64 e2e-linux-arm64 e2e-darwin-amd64 e2e-darwin-arm64 e2e
464451
checksum: ## Generate checksums
465452
for f in out/minikube-amd64.iso out/minikube-arm64.iso out/minikube-linux-amd64 out/minikube-linux-arm \
466453
out/minikube-linux-arm64 out/minikube-linux-ppc64le out/minikube-linux-s390x \
467-
out/minikube-darwin-amd64 out/minikube-darwin-arm64 out/minikube-windows-amd64.exe \
468-
out/docker-machine-driver-hyperkit; do \
454+
out/minikube-darwin-amd64 out/minikube-darwin-arm64 out/minikube-windows-amd64.exe; do \
469455
if [ -f "$${f}" ]; then \
470456
openssl sha256 "$${f}" | awk '{print $$2}' > "$${f}.sha256" ; \
471457
fi ; \
@@ -625,8 +611,8 @@ out/repodata/repomd.xml: out/minikube-$(RPM_VERSION).rpm
625611
.SECONDEXPANSION:
626612
TAR_TARGETS_linux-amd64 := out/minikube-linux-amd64
627613
TAR_TARGETS_linux-arm64 := out/minikube-linux-arm64
628-
TAR_TARGETS_darwin-amd64 := out/minikube-darwin-amd64 out/docker-machine-driver-hyperkit
629-
TAR_TARGETS_darwin-arm64 := out/minikube-darwin-arm64 #out/docker-machine-driver-hyperkit
614+
TAR_TARGETS_darwin-amd64 := out/minikube-darwin-amd64
615+
TAR_TARGETS_darwin-arm64 := out/minikube-darwin-arm64
630616
TAR_TARGETS_windows-amd64 := out/minikube-windows-amd64.exe
631617
out/minikube-%.tar.gz: $$(TAR_TARGETS_$$*)
632618
$(if $(quiet),@echo " TAR $@")
@@ -650,43 +636,6 @@ out/minikube-installer.exe: out/minikube-windows-amd64.exe
650636
mv out/windows_tmp/minikube-installer.exe out/minikube-installer.exe
651637
rm -rf out/windows_tmp
652638

653-
out/docker-machine-driver-hyperkit:
654-
ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y)
655-
docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 \
656-
--user $(shell id -u):$(shell id -g) -w /app \
657-
-v $(PWD):/app:Z -v $(GOPATH):/go:Z --init --entrypoint "" \
658-
$(HYPERKIT_BUILD_IMAGE) /bin/bash -c 'CC=o64-clang CXX=o64-clang++ /usr/bin/make $@'
659-
else
660-
$(if $(quiet),@echo " GO $@")
661-
$(Q)GOOS=darwin CGO_ENABLED=1 go build \
662-
-ldflags="$(HYPERKIT_LDFLAGS)" \
663-
-o $@ k8s.io/minikube/cmd/drivers/hyperkit
664-
endif
665-
666-
hyperkit_in_docker:
667-
rm -f out/docker-machine-driver-hyperkit
668-
$(MAKE) MINIKUBE_BUILD_IN_DOCKER=y out/docker-machine-driver-hyperkit
669-
670-
.PHONY: install-hyperkit-driver
671-
install-hyperkit-driver: out/docker-machine-driver-hyperkit ## Install hyperkit to local machine
672-
mkdir -p $(HOME)/bin
673-
sudo cp out/docker-machine-driver-hyperkit $(HOME)/bin/docker-machine-driver-hyperkit
674-
sudo chown root:wheel $(HOME)/bin/docker-machine-driver-hyperkit
675-
sudo chmod u+s $(HOME)/bin/docker-machine-driver-hyperkit
676-
677-
.PHONY: release-hyperkit-driver
678-
release-hyperkit-driver: install-hyperkit-driver checksum ## Copy hyperkit using gsutil
679-
gsutil cp $(GOBIN)/docker-machine-driver-hyperkit gs://minikube/drivers/hyperkit/$(VERSION)/
680-
gsutil cp $(GOBIN)/docker-machine-driver-hyperkit.sha256 gs://minikube/drivers/hyperkit/$(VERSION)/
681-
682-
.PHONY: build-and-push-hyperkit-build-image
683-
build-and-push-hyperkit-build-image:
684-
test -d out/xcgo || git clone https://github.com/neilotoole/xcgo.git out/xcgo
685-
(cd out/xcgo && git restore . && git pull && \
686-
sed -i'.bak' -e 's/ARG GO_VERSION.*/ARG GO_VERSION="go$(GO_VERSION)"/' Dockerfile && \
687-
docker build -t gcr.io/k8s-minikube/xcgo:go$(GO_VERSION) .)
688-
docker push gcr.io/k8s-minikube/xcgo:go$(GO_VERSION)
689-
690639
.PHONY: check-release
691640
check-release: ## Execute go test
692641
go test -timeout 42m -v ./deploy/minikube/release_sanity_test.go

cmd/minikube/cmd/start.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -535,10 +535,7 @@ func warnAboutMultiNodeCNI() {
535535
}
536536

537537
func updateDriver(driverName string) {
538-
v, err := version.GetSemverVersion()
539-
if err != nil {
540-
out.WarningT("Error parsing minikube version: {{.error}}", out.V{"error": err})
541-
} else if err := auxdriver.InstallOrUpdate(driverName, localpath.MakeMiniPath("bin"), v, viper.GetBool(flags.Interactive), viper.GetBool(autoUpdate)); err != nil {
538+
if err := auxdriver.InstallOrUpdate(driverName, localpath.MakeMiniPath("bin"), viper.GetBool(flags.Interactive), viper.GetBool(autoUpdate)); err != nil {
542539
if errors.Is(err, auxdriver.ErrAuxDriverVersionCommandFailed) {
543540
exit.Error(reason.DrvAuxNotHealthy, "Aux driver "+driverName, err)
544541
}

hack/jenkins/common.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,6 @@ gsutil -qm cp -r "gs://minikube-builds/${MINIKUBE_LOCATION}/testdata"/* testdata
183183

184184
gsutil -qm cp "gs://minikube-builds/${MINIKUBE_LOCATION}/gvisor-addon" testdata/
185185

186-
if [[ "${DRIVER}" == "hyperkit" ]]; then
187-
gsutil -qm cp "gs://minikube-builds/${MINIKUBE_LOCATION}/docker-machine-driver-hyperkit" out
188-
chmod +x out/docker-machine-driver-hyperkit
189-
fi
190-
191186
# Set the executable bit on the e2e binary and out binary
192187
export MINIKUBE_BIN="out/minikube-${OS_ARCH}"
193188
export E2E_BIN="out/e2e-${OS_ARCH}"

pkg/minikube/driver/auxdriver/install.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,18 @@ var ErrAuxDriverVersionCommandFailed error
5353
var ErrAuxDriverVersionNotinPath error
5454

5555
// InstallOrUpdate downloads driver if it is not present, or updates it if there's a newer version
56-
func InstallOrUpdate(name string, directory string, v semver.Version, interactive bool, autoUpdate bool) error {
56+
// this is currently only used for hyperkit driver on macOS
57+
func InstallOrUpdate(name string, directory string, interactive bool, autoUpdate bool) error {
5758
if name != driver.HyperKit {
5859
return nil
5960
}
61+
// v1.37.0 was the last release that we built hyperkit driver https://github.com/kubernetes/minikube/issues/21940
62+
// this will be used till we completely remove hyperkit driver support
63+
v, err := semver.Make("1.37.0")
64+
out.WarningT("Hyperkit driver will be removed in the next minikube release, we have other drivers that work on macOS such as docker or qemu, vfkit. Please consider switching to one of them. For more information, please visit: https://minikube.sigs.k8s.io/docs/drivers/hyperkit/")
65+
if err != nil {
66+
return errors.Wrap(err, "can't parse version")
67+
}
6068

6169
executable := fmt.Sprintf("docker-machine-driver-%s", name)
6270

test/integration/driver_install_or_update_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func TestHyperKitDriverInstallOrUpdate(t *testing.T) {
8383
t.Skipf("password required to execute 'sudo', skipping remaining test")
8484
}
8585

86-
err = auxdriver.InstallOrUpdate("hyperkit", dir, newerVersion, false, true)
86+
err = auxdriver.InstallOrUpdate("hyperkit", dir, false, true)
8787
if err != nil {
8888
t.Fatalf("Failed to update driver to %v. test: %s, got: %v", newerVersion, tc.name, err)
8989
}

0 commit comments

Comments
 (0)