commit
d9089c3d77
40
Makefile
40
Makefile
|
@ -22,8 +22,8 @@ INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1)
|
|||
BUILDROOT_BRANCH ?= 2017.02
|
||||
REGISTRY?=gcr.io/k8s-minikube
|
||||
|
||||
MINIKUBE_BUILD_IMAGE ?= karalabe/xgo-1.8.3
|
||||
LOCALKUBE_BUILD_IMAGE ?= gcr.io/google_containers/kube-cross:v1.8.3-1
|
||||
HYPERKIT_BUILD_IMAGE ?= karalabe/xgo-1.8.3
|
||||
BUILD_IMAGE ?= gcr.io/google_containers/kube-cross:v1.8.3-1
|
||||
ISO_BUILD_IMAGE ?= $(REGISTRY)/buildroot-image
|
||||
|
||||
ISO_VERSION ?= v0.23.6
|
||||
|
@ -32,6 +32,8 @@ ISO_BUCKET ?= minikube/iso
|
|||
GOOS ?= $(shell go env GOOS)
|
||||
GOARCH ?= $(shell go env GOARCH)
|
||||
BUILD_DIR ?= ./out
|
||||
$(shell mkdir -p $(BUILD_DIR))
|
||||
|
||||
ORG := k8s.io
|
||||
REPOPATH ?= $(ORG)/minikube
|
||||
|
||||
|
@ -53,24 +55,16 @@ 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}}'
|
||||
|
||||
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}}'
|
||||
|
||||
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_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
|
||||
|
||||
# extra env vars that need to be set in cross build container
|
||||
MINIKUBE_ENV_darwin_DOCKER := CC=o64-clang CXX=o64-clang++
|
||||
|
||||
MINIKUBE_BUILD_TAGS := container_image_ostree_stub containers_image_openpgp
|
||||
MINIKUBE_INTEGRATION_BUILD_TAGS := integration $(MINIKUBE_BUILD_TAGS)
|
||||
|
||||
MINIKUBE_DOCKER_CMD := docker run -e IN_DOCKER=1 --user $(shell id -u):$(shell id -g) --workdir /go/src/$(REPOPATH) --entrypoint /bin/bash -v $(PWD):/go/src/$(REPOPATH) $(MINIKUBE_BUILD_IMAGE) -c
|
||||
KUBE_CROSS_DOCKER_CMD := docker run -w /go/src/$(REPOPATH) --user $(shell id -u):$(shell id -g) -e IN_DOCKER=1 -v $(shell pwd):/go/src/$(REPOPATH) $(LOCALKUBE_BUILD_IMAGE)
|
||||
|
||||
# $(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
|
||||
# $(call DOCKER, image, command)
|
||||
define DOCKER
|
||||
docker run --rm -e IN_DOCKER=1 --user $(shell id -u):$(shell id -g) -w /go/src/$(REPOPATH) -v $(GOPATH):/go --entrypoint /bin/bash $(1) -c '$(2)'
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_IN_DOCKER),y)
|
||||
|
@ -99,7 +93,7 @@ out/minikube$(IS_EXE): gopath out/minikube-$(GOOS)-$(GOARCH)$(IS_EXE)
|
|||
|
||||
out/localkube: $(shell $(LOCALKUBEFILES))
|
||||
ifeq ($(LOCALKUBE_BUILD_IN_DOCKER),y)
|
||||
$(KUBE_CROSS_DOCKER_CMD) make $@
|
||||
$(call DOCKER,$(BUILD_IMAGE),/usr/bin/make $@)
|
||||
else
|
||||
CGO_ENABLED=1 go build -tags static_build -ldflags=$(LOCALKUBE_LDFLAGS) -o $(BUILD_DIR)/localkube ./cmd/localkube
|
||||
endif
|
||||
|
@ -109,9 +103,9 @@ out/minikube-windows-amd64.exe: out/minikube-windows-amd64
|
|||
|
||||
out/minikube-%-amd64: pkg/minikube/assets/assets.go $(shell $(MINIKUBEFILES))
|
||||
ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y)
|
||||
$(MINIKUBE_DOCKER_CMD) '$(MINIKUBE_ENV_$*_DOCKER) $(call MINIKUBE_GO_BUILD_CMD,$@,$*)'
|
||||
$(call DOCKER,$(BUILD_IMAGE),GOOS=$* /usr/bin/make $@)
|
||||
else
|
||||
$(call MINIKUBE_GO_BUILD_CMD,$@,$*)
|
||||
go build -tags "$(MINIKUBE_BUILD_TAGS)" -ldflags="$(MINIKUBE_LDFLAGS) $(K8S_VERSION_LDFLAGS)" -a -o $@ k8s.io/minikube/cmd/minikube
|
||||
endif
|
||||
|
||||
.PHONY: e2e-%-amd64
|
||||
|
@ -179,7 +173,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)) pkg/minikube/assets/assets.go
|
||||
./test.sh
|
||||
|
||||
.PHONY: gopath
|
||||
|
@ -188,8 +182,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/...
|
||||
|
@ -255,9 +249,9 @@ out/minikube-installer.exe: out/minikube-windows-amd64.exe
|
|||
|
||||
out/docker-machine-driver-hyperkit: $(shell $(HYPERKIT_FILES))
|
||||
ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y)
|
||||
$(MINIKUBE_DOCKER_CMD) '$(MINIKUBE_ENV_darwin_DOCKER) $(MINIKUBE_ENV_darwin) go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit'
|
||||
$(call DOCKER,$(HYPERKIT_BUILD_IMAGE),CC=o64-clang CXX=o64-clang++ /usr/bin/make $@)
|
||||
else
|
||||
$(MINIKUBE_ENV_darwin) go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit
|
||||
GOOS=darwin CGO_ENABLED=1 go build -o $(BUILD_DIR)/docker-machine-driver-hyperkit k8s.io/minikube/cmd/drivers/hyperkit
|
||||
endif
|
||||
|
||||
.PHONY: install-hyperkit-driver
|
||||
|
|
|
@ -32,7 +32,6 @@ import (
|
|||
hyperkit "github.com/moby/hyperkit/go"
|
||||
"github.com/pborman/uuid"
|
||||
"github.com/pkg/errors"
|
||||
vmnet "github.com/zchee/go-vmnet"
|
||||
pkgdrivers "k8s.io/minikube/pkg/drivers"
|
||||
commonutil "k8s.io/minikube/pkg/util"
|
||||
)
|
||||
|
@ -159,7 +158,7 @@ func (d *Driver) Start() error {
|
|||
// Set UUID
|
||||
h.UUID = uuid.NewUUID().String()
|
||||
log.Infof("Generated UUID %s", h.UUID)
|
||||
mac, err := vmnet.GetMACAddressFromUUID(h.UUID)
|
||||
mac, err := GetMACAddressFromUUID(h.UUID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
// +build darwin,cgo
|
||||
|
||||
/*
|
||||
Copyright 2016 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.
|
||||
*/
|
||||
|
||||
package hyperkit
|
||||
|
||||
import vmnet "github.com/zchee/go-vmnet"
|
||||
|
||||
func GetMACAddressFromUUID(UUID string) (string, error) {
|
||||
return vmnet.GetMACAddressFromUUID(UUID)
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
// +build darwin,!cgo
|
||||
|
||||
/*
|
||||
Copyright 2016 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.
|
||||
*/
|
||||
|
||||
package hyperkit
|
||||
|
||||
import "errors"
|
||||
|
||||
func GetMACAddressFromUUID(UUID string) (string, error) {
|
||||
return "", errors.New("Function not supported on CGO_ENABLED=0 binaries")
|
||||
}
|
|
@ -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)
|
||||
|
||||
|
|
2
test.sh
2
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
|
||||
|
|
Loading…
Reference in New Issue