diff --git a/build/pause/Makefile b/build/pause/Makefile index 2834cdaa5b9..df2363d1b1d 100644 --- a/build/pause/Makefile +++ b/build/pause/Makefile @@ -1,10 +1,14 @@ .PHONY: build push -IMAGE = pause TAG = 2.0 +ARCH = amd64 +IMAGE = pause +# ARCH = arm +# IMAGE = pause-arm + build: - ./prepare.sh + ./prepare.sh ${ARCH} docker build -t gcr.io/google_containers/$(IMAGE):$(TAG) . push: build diff --git a/build/pause/prepare.sh b/build/pause/prepare.sh index e6cf9c6eb8f..5b36e6fb926 100755 --- a/build/pause/prepare.sh +++ b/build/pause/prepare.sh @@ -17,8 +17,10 @@ set -e set -x +ARCH=$1 + # Build the binary. -go build --ldflags '-extldflags "-static" -s' pause.go +CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} godep go build -a -installsuffix cgo -ldflags '-w' ./pause.go # Run goupx to shrink binary size. go get github.com/pwaller/goupx diff --git a/cluster/images/hyperkube/Dockerfile b/cluster/images/hyperkube/Dockerfile index 853e7c7871e..01759e0486c 100644 --- a/cluster/images/hyperkube/Dockerfile +++ b/cluster/images/hyperkube/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:jessie +FROM BASEIMAGE RUN DEBIAN_FRONTEND=noninteractive apt-get update -y \ && DEBIAN_FRONTEND=noninteractive apt-get -yy -q \ diff --git a/cluster/images/hyperkube/Makefile b/cluster/images/hyperkube/Makefile index 5b9c47282ea..17e37337b0f 100644 --- a/cluster/images/hyperkube/Makefile +++ b/cluster/images/hyperkube/Makefile @@ -1,13 +1,27 @@ # build the hyperkube image. -VERSION=v1.1.1 +VERSION=v1.1.2 +ARCH=amd64 +BASEIMAGE=debian:jessie + +## Comment in for arm builds, must be run on an arm machine +# ARCH=arm +# need to escape '/' for the regexp below +# BASEIMAGE=armbuild\\/debian:jessie all: cp ../../saltbase/salt/helpers/safe_format_and_mount . cp ../../saltbase/salt/generate-cert/make-ca-cert.sh . - curl -O https://storage.googleapis.com/kubernetes-release/release/${VERSION}/bin/linux/amd64/hyperkube + curl -O https://storage.googleapis.com/kubernetes-release/release/${VERSION}/bin/linux/${ARCH}/hyperkube sed -i "s/VERSION/${VERSION}/g" master-multi.json master.json - docker build -t gcr.io/google_containers/hyperkube:${VERSION} . - gcloud docker push gcr.io/google_containers/hyperkube:${VERSION} + sed -i "s/ARCH/${ARCH}/g" master-multi.json master.json + sed -i "s/BASEIMAGE/${BASEIMAGE}/g" Dockerfile + docker build -t gcr.io/google_containers/hyperkube-${ARCH}:${VERSION} . + gcloud docker push gcr.io/google_containers/hyperkube-${ARCH}:${VERSION} + # Backward compatability. TODO: deprecate this image tag +ifeq ($(ARCH),amd64) + docker tag gcr.io/google_containers/hyperkube-${ARCH}:${VERSION} gcr.io/google_containers/hyperkube:${VERSION} + gcloud docker push gcr.io/google_containers/hyperkube:${VERSION} +endif .PHONY: all diff --git a/cluster/images/hyperkube/master-multi.json b/cluster/images/hyperkube/master-multi.json index 17a555c749b..83421eb0d6e 100644 --- a/cluster/images/hyperkube/master-multi.json +++ b/cluster/images/hyperkube/master-multi.json @@ -7,7 +7,7 @@ "containers":[ { "name": "controller-manager", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "controller-manager", @@ -19,7 +19,7 @@ }, { "name": "apiserver", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "apiserver", @@ -33,7 +33,7 @@ }, { "name": "scheduler", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "scheduler", diff --git a/cluster/images/hyperkube/master.json b/cluster/images/hyperkube/master.json index 0cd1b52ed64..fdc5224084a 100644 --- a/cluster/images/hyperkube/master.json +++ b/cluster/images/hyperkube/master.json @@ -7,7 +7,7 @@ "containers":[ { "name": "controller-manager", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "controller-manager", @@ -26,7 +26,7 @@ }, { "name": "apiserver", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "apiserver", @@ -53,7 +53,7 @@ }, { "name": "scheduler", - "image": "gcr.io/google_containers/hyperkube:VERSION", + "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION", "command": [ "/hyperkube", "scheduler", diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 7335f850330..8ae93147639 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -50,6 +50,7 @@ readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}") # The server platform we are building on. readonly KUBE_SERVER_PLATFORMS=( linux/amd64 + linux/arm ) # The set of client targets that we are building for all platforms