提交 a080737e 编写于 作者: M Matt Rickard

Add release-iso Makefile rule

This also tracks the ISO version in the makefile and passes it with
ldflags to automatically bump the default version in the minikube
binary.
上级 ae14b68c
...@@ -21,6 +21,8 @@ DEB_VERSION ?= $(VERSION_MAJOR).$(VERSION_MINOR)-$(VERSION_BUILD) ...@@ -21,6 +21,8 @@ DEB_VERSION ?= $(VERSION_MAJOR).$(VERSION_MINOR)-$(VERSION_BUILD)
INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1) INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1)
BUILDROOT_BRANCH ?= 2016.08 BUILDROOT_BRANCH ?= 2016.08
ISO_VERSION ?= v1.0.6
GOOS ?= $(shell go env GOOS) GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH) GOARCH ?= $(shell go env GOARCH)
BUILD_DIR ?= ./out BUILD_DIR ?= ./out
...@@ -45,9 +47,11 @@ BUILD_OS := $(shell uname -s) ...@@ -45,9 +47,11 @@ BUILD_OS := $(shell uname -s)
LOCALKUBE_VERSION := $(shell $(PYTHON) hack/get_k8s_version.py --k8s-version-only 2>&1) LOCALKUBE_VERSION := $(shell $(PYTHON) hack/get_k8s_version.py --k8s-version-only 2>&1)
LOCALKUBE_BUCKET := gs://minikube/k8sReleases LOCALKUBE_BUCKET := gs://minikube/k8sReleases
ISO_BUCKET := gs://minikube/iso
# Set the version information for the Kubernetes servers, and build localkube statically # Set the version information for the Kubernetes servers, and build localkube statically
K8S_VERSION_LDFLAGS := $(shell $(PYTHON) hack/get_k8s_version.py 2>&1) K8S_VERSION_LDFLAGS := $(shell $(PYTHON) hack/get_k8s_version.py 2>&1)
MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION) MINIKUBE_LDFLAGS := -X k8s.io/minikube/pkg/version.version=$(VERSION) -X k8s.io/minikube/pkg/version.isoVersion=$(ISO_VERSION)
LOCALKUBE_LDFLAGS := "$(K8S_VERSION_LDFLAGS) $(MINIKUBE_LDFLAGS) -s -w -extldflags '-static'" LOCALKUBE_LDFLAGS := "$(K8S_VERSION_LDFLAGS) $(MINIKUBE_LDFLAGS) -s -w -extldflags '-static'"
LOCALKUBEFILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' ./cmd/localkube/ | grep k8s.io | GOPATH=$(GOPATH) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}' LOCALKUBEFILES := GOPATH=$(GOPATH) go list -f '{{join .Deps "\n"}}' ./cmd/localkube/ | grep k8s.io | GOPATH=$(GOPATH) xargs go list -f '{{ range $$file := .GoFiles }} {{$$.Dir}}/{{$$file}}{{"\n"}}{{end}}'
...@@ -81,13 +85,14 @@ localkube-image: out/localkube ...@@ -81,13 +85,14 @@ localkube-image: out/localkube
iso: iso:
cd deploy/iso/boot2docker && ./build.sh cd deploy/iso/boot2docker && ./build.sh
minikube-iso: minikube_iso:
if [ ! -d $(BUILD_DIR)/buildroot ]; then \ if [ ! -d $(BUILD_DIR)/buildroot ]; then \
mkdir -p $(BUILD_DIR); \ mkdir -p $(BUILD_DIR); \
git clone --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ git clone --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \
fi; fi;
$(MAKE) BR2_EXTERNAL=../../deploy/iso/minikube-iso minikube_defconfig -C $(BUILD_DIR)/buildroot $(MAKE) BR2_EXTERNAL=../../deploy/iso/minikube-iso minikube_defconfig -C $(BUILD_DIR)/buildroot
$(MAKE) -C $(BUILD_DIR)/buildroot $(MAKE) -C $(BUILD_DIR)/buildroot
mv $(BUILD_DIR)/buildroot/output/images/rootfs.iso9660 $(BUILD_DIR)/minikube.iso
test-iso: test-iso:
go test -v $(REPOPATH)/test/integration --tags=iso --minikube-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660" go test -v $(REPOPATH)/test/integration --tags=iso --minikube-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660"
...@@ -109,9 +114,9 @@ $(GOPATH)/bin/go-bindata: $(GOPATH)/src/$(ORG) ...@@ -109,9 +114,9 @@ $(GOPATH)/bin/go-bindata: $(GOPATH)/src/$(ORG)
.PHONY: cross .PHONY: cross
cross: out/localkube out/minikube-linux-amd64 out/minikube-darwin-amd64 out/minikube-windows-amd64.exe cross: out/localkube out/minikube-linux-amd64 out/minikube-darwin-amd64 out/minikube-windows-amd64.exe
.PHONE: checksum .PHONY: checksum
checksum: checksum:
for f in out/localkube out/minikube-linux-amd64 out/minikube-darwin-amd64 out/minikube-windows-amd64.exe ; do \ for f in out/localkube out/minikube-linux-amd64 out/minikube-darwin-amd64 out/minikube-windows-amd64.exe out/minikube.iso; do \
if [ -f "$${f}" ]; then \ if [ -f "$${f}" ]; then \
openssl sha256 "$${f}" | awk '{print $$2}' > "$${f}.sha256" ; \ openssl sha256 "$${f}" | awk '{print $$2}' > "$${f}.sha256" ; \
fi ; \ fi ; \
...@@ -172,3 +177,8 @@ release-localkube: out/localkube checksum ...@@ -172,3 +177,8 @@ release-localkube: out/localkube checksum
update-releases: update-releases:
gsutil cp deploy/minikube/k8s_releases.json gs://minikube/k8s_releases.json gsutil cp deploy/minikube/k8s_releases.json gs://minikube/k8s_releases.json
.PHONY: release-iso
release-iso: minikube_iso checksum
gsutil cp out/minikube.iso $(ISO_BUCKET)/minikube-$(ISO_VERSION).iso
gsutil cp out/minikube.iso.sha256 $(ISO_BUCKET)/minikube-$(ISO_VERSION).iso.sha256
...@@ -40,10 +40,10 @@ Either import your private key or generate a sign-only key using `gpg2 --gen-key ...@@ -40,10 +40,10 @@ Either import your private key or generate a sign-only key using `gpg2 --gen-key
``` ```
$ git clone https://github.com/kubernetes/minikube $ git clone https://github.com/kubernetes/minikube
$ cd minikube $ cd minikube
$ make minikube-iso $ make minikube_iso
``` ```
The bootable ISO image will be available in `out/buildroot/output/images/rootfs.iso9660`. The bootable ISO image will be available in `out/minikube.iso`.
### Testing local minikube-iso changes ### Testing local minikube-iso changes
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
set -e set -e
ISO="out/buildroot/output/images/rootfs.iso9660" ISO="out/buildroot/output/images/rootfs.iso9660"
make minikube-iso make minikube_iso
openssl sha256 ${ISO} | awk '{print $2}' > "${ISO}.sha256" openssl sha256 ${ISO} | awk '{print $2}' > "${ISO}.sha256"
gsutil cp "${ISO}" "${DEST}" gsutil cp "${ISO}" "${DEST}"
gsutil cp "${ISO}.sha256" "${DEST}.sha256" gsutil cp "${ISO}.sha256" "${DEST}.sha256"
...@@ -17,11 +17,13 @@ limitations under the License. ...@@ -17,11 +17,13 @@ limitations under the License.
package constants package constants
import ( import (
"fmt"
"path/filepath" "path/filepath"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd" "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/util/homedir" "k8s.io/kubernetes/pkg/util/homedir"
"k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/pkg/version"
minikubeVersion "k8s.io/minikube/pkg/version"
) )
// MachineName is the name to use for the VM. // MachineName is the name to use for the VM.
...@@ -60,9 +62,7 @@ var LogFlags = [...]string{ ...@@ -60,9 +62,7 @@ var LogFlags = [...]string{
const ( const (
DefaultKeepContext = false DefaultKeepContext = false
DefaultIsoUrl = "https://storage.googleapis.com/minikube/iso/minikube-v1.0.6.iso"
ShaSuffix = ".sha256" ShaSuffix = ".sha256"
DefaultIsoShaUrl = DefaultIsoUrl + ShaSuffix
DefaultMemory = 2048 DefaultMemory = 2048
DefaultCPUS = 2 DefaultCPUS = 2
DefaultDiskSize = "20g" DefaultDiskSize = "20g"
...@@ -76,6 +76,9 @@ const ( ...@@ -76,6 +76,9 @@ const (
KubernetesVersionGCSURL = "https://storage.googleapis.com/minikube/k8s_releases.json" KubernetesVersionGCSURL = "https://storage.googleapis.com/minikube/k8s_releases.json"
) )
var DefaultIsoUrl = fmt.Sprintf("https://storage.googleapis.com/minikube/iso/minikube-%s.iso", minikubeVersion.GetIsoVersion())
var DefaultIsoShaUrl = DefaultIsoUrl + ShaSuffix
var DefaultKubernetesVersion = version.Get().GitVersion var DefaultKubernetesVersion = version.Get().GitVersion
var ConfigFilePath = MakeMiniPath("config") var ConfigFilePath = MakeMiniPath("config")
......
...@@ -28,10 +28,16 @@ const VersionPrefix = "v" ...@@ -28,10 +28,16 @@ const VersionPrefix = "v"
var version = "v0.0.0-unset" var version = "v0.0.0-unset"
var isoVersion = "v0.0.0-unset"
func GetVersion() string { func GetVersion() string {
return version return version
} }
func GetIsoVersion() string {
return isoVersion
}
func GetSemverVersion() (semver.Version, error) { func GetSemverVersion() (semver.Version, error) {
return semver.Make(strings.TrimPrefix(GetVersion(), VersionPrefix)) return semver.Make(strings.TrimPrefix(GetVersion(), VersionPrefix))
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册