From 4e0f6cf6139eb041695bed0a2d1406bc2c0d1909 Mon Sep 17 00:00:00 2001 From: Matt Rickard Date: Thu, 19 Oct 2017 11:00:56 -0400 Subject: [PATCH] Remove localkube from bindata This makes the minikube build simpler and the the binary smaller. Localkube will always be remotely fetched and locally cached on the host. --- Makefile | 19 ++++++++++--------- .../bootstrapper/localkube/localkube.go | 12 ++++-------- test.sh | 2 +- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 3942d31a1c3e..8b4665d4dd7a 100755 --- a/Makefile +++ b/Makefile @@ -53,11 +53,9 @@ LOCALKUBEFILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' ./cmd/local MINIKUBEFILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' ./cmd/minikube/ | grep k8s.io | GOPATH=$(GOPATH) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}' HYPERKIT_FILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' k8s.io/minikube/cmd/drivers/hyperkit | grep k8s.io | GOPATH=$(GOPATH) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}' -KVM_DRIVER_FILES := $(shell go list -f '{{join .Deps "\n"}}' ./cmd/drivers/kvm/ | grep k8s.io | xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}') +MINIKUBE_TEST_FILES := go list -f '{{ if .TestGoFiles }} {{.ImportPath}} {{end}}' ./... | grep k8s.io | GOPATH=$(GOPATH) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}' -MINIKUBE_ENV_linux := CGO_ENABLED=1 GOARCH=amd64 GOOS=linux -MINIKUBE_ENV_darwin := CGO_ENABLED=1 GOARCH=amd64 GOOS=darwin -MINIKUBE_ENV_windows := CGO_ENABLED=0 GOARCH=amd64 GOOS=windows +KVM_DRIVER_FILES := $(shell go list -f '{{join .Deps "\n"}}' ./cmd/drivers/kvm/ | grep k8s.io | xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}') # extra env vars that need to be set in cross build container MINIKUBE_ENV_darwin_DOCKER := CC=o64-clang CXX=o64-clang++ @@ -70,7 +68,7 @@ KUBE_CROSS_DOCKER_CMD := docker run -w /go/src/$(REPOPATH) --user $(shell id -u) # $(call MINIKUBE_GO_BUILD_CMD, output file, OS) define MINIKUBE_GO_BUILD_CMD - $(MINIKUBE_ENV_$(2)) go build -tags "$(MINIKUBE_BUILD_TAGS)" --installsuffix cgo -ldflags="$(MINIKUBE_LDFLAGS) $(K8S_VERSION_LDFLAGS)" -a -o $(1) k8s.io/minikube/cmd/minikube + GOOS=$(2) go build -tags "$(MINIKUBE_BUILD_TAGS)" --installsuffix cgo -ldflags="$(MINIKUBE_LDFLAGS) $(K8S_VERSION_LDFLAGS)" -a -o $(1) k8s.io/minikube/cmd/minikube endef ifeq ($(BUILD_IN_DOCKER),y) @@ -94,7 +92,7 @@ endif ifeq ($(GOOS),windows) IS_EXE = ".exe" endif -out/minikube$(IS_EXE): gopath out/minikube-$(GOOS)-$(GOARCH)$(IS_EXE) +out/minikube$(IS_EXE): gopath out/minikube-$(GOOS)-$(GOARCH)$(IS_EXE) $(BUILD_DIR) cp $(BUILD_DIR)/minikube-$(GOOS)-$(GOARCH) $(BUILD_DIR)/minikube$(IS_EXE) out/localkube: $(shell $(LOCALKUBEFILES)) @@ -147,6 +145,9 @@ else $(ISO_BUILD_IMAGE) /usr/bin/make out/minikube.iso endif +$(BUILD_DIR): + mkdir -p $(BUILD_DIR) + test-iso: go test -v $(REPOPATH)/test/integration --tags=iso --minikube-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660" @@ -179,7 +180,7 @@ integration-versioned: out/minikube go test -v -test.timeout=30m $(REPOPATH)/test/integration --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS) versioned" $(TEST_ARGS) .PHONY: test -test: pkg/minikube/assets/assets.go +test: $(shell $(MINIKUBE_TEST_FILES)) $(BUILD_DIR) ./test.sh .PHONY: gopath @@ -188,8 +189,8 @@ ifneq ($(GOPATH)/src/$(REPOPATH),$(PWD)) $(warning Warning: Building minikube outside the GOPATH, should be $(GOPATH)/src/$(REPOPATH) but is $(PWD)) endif -pkg/minikube/assets/assets.go: out/localkube $(GOPATH)/bin/go-bindata $(shell find deploy/addons -type f) - $(GOPATH)/bin/go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets ./out/localkube deploy/addons/... +pkg/minikube/assets/assets.go: $(GOPATH)/bin/go-bindata $(shell find deploy/addons -type f) + $(GOPATH)/bin/go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/... $(GOPATH)/bin/go-bindata: GOBIN=$(GOPATH)/bin go get github.com/jteeuwen/go-bindata/... diff --git a/pkg/minikube/bootstrapper/localkube/localkube.go b/pkg/minikube/bootstrapper/localkube/localkube.go index 9da544bc2e84..1c4b50005a90 100644 --- a/pkg/minikube/bootstrapper/localkube/localkube.go +++ b/pkg/minikube/bootstrapper/localkube/localkube.go @@ -116,14 +116,10 @@ func (lk *LocalkubeBootstrapper) UpdateCluster(config bootstrapper.KubernetesCon var err error //add url/file/bundled localkube to file list - if localkubeURIWasSpecified(config) && config.KubernetesVersion != constants.DefaultKubernetesVersion { - lCacher := localkubeCacher{config} - localkubeFile, err = lCacher.fetchLocalkubeFromURI() - if err != nil { - return errors.Wrap(err, "Error updating localkube from uri") - } - } else { - localkubeFile = assets.NewBinDataAsset("out/localkube", "/usr/local/bin", "localkube", "0777") + lCacher := localkubeCacher{config} + localkubeFile, err = lCacher.fetchLocalkubeFromURI() + if err != nil { + return errors.Wrap(err, "Error updating localkube from uri") } copyableFiles = append(copyableFiles, localkubeFile) diff --git a/test.sh b/test.sh index 64bb8e55d5c7..924614cb6875 100755 --- a/test.sh +++ b/test.sh @@ -32,7 +32,7 @@ COV_TMP_FILE=coverage_tmp.txt # Run "go test" on packages that have test files. Also create coverage profile echo "Running go tests..." cd ${GOPATH}/src/${REPO_PATH} -rm -f out/$COV_FILE +rm -f out/$COV_FILE || true echo "mode: count" > out/$COV_FILE for pkg in $(go list -f '{{ if .TestGoFiles }} {{.ImportPath}} {{end}}' ./...); do go test -tags "container_image_ostree_stub containers_image_openpgp" -v $pkg -covermode=count -coverprofile=out/$COV_TMP_FILE