Add linux/arm to the list of server builds

This commit is contained in:
Brendan Burns 2015-11-22 19:53:45 -08:00
parent 46924670d9
commit d2dbe56820
7 changed files with 35 additions and 14 deletions

View File

@ -1,10 +1,14 @@
.PHONY: build push .PHONY: build push
IMAGE = pause
TAG = 2.0 TAG = 2.0
ARCH = amd64
IMAGE = pause
# ARCH = arm
# IMAGE = pause-arm
build: build:
./prepare.sh ./prepare.sh ${ARCH}
docker build -t gcr.io/google_containers/$(IMAGE):$(TAG) . docker build -t gcr.io/google_containers/$(IMAGE):$(TAG) .
push: build push: build

View File

@ -17,8 +17,10 @@
set -e set -e
set -x set -x
ARCH=$1
# Build the binary. # 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. # Run goupx to shrink binary size.
go get github.com/pwaller/goupx go get github.com/pwaller/goupx

View File

@ -1,4 +1,4 @@
FROM debian:jessie FROM BASEIMAGE
RUN DEBIAN_FRONTEND=noninteractive apt-get update -y \ RUN DEBIAN_FRONTEND=noninteractive apt-get update -y \
&& DEBIAN_FRONTEND=noninteractive apt-get -yy -q \ && DEBIAN_FRONTEND=noninteractive apt-get -yy -q \

View File

@ -1,13 +1,27 @@
# build the hyperkube image. # 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: all:
cp ../../saltbase/salt/helpers/safe_format_and_mount . cp ../../saltbase/salt/helpers/safe_format_and_mount .
cp ../../saltbase/salt/generate-cert/make-ca-cert.sh . 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 sed -i "s/VERSION/${VERSION}/g" master-multi.json master.json
docker build -t gcr.io/google_containers/hyperkube:${VERSION} . sed -i "s/ARCH/${ARCH}/g" master-multi.json master.json
gcloud docker push gcr.io/google_containers/hyperkube:${VERSION} 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 .PHONY: all

View File

@ -7,7 +7,7 @@
"containers":[ "containers":[
{ {
"name": "controller-manager", "name": "controller-manager",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"controller-manager", "controller-manager",
@ -19,7 +19,7 @@
}, },
{ {
"name": "apiserver", "name": "apiserver",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"apiserver", "apiserver",
@ -33,7 +33,7 @@
}, },
{ {
"name": "scheduler", "name": "scheduler",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"scheduler", "scheduler",

View File

@ -7,7 +7,7 @@
"containers":[ "containers":[
{ {
"name": "controller-manager", "name": "controller-manager",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"controller-manager", "controller-manager",
@ -26,7 +26,7 @@
}, },
{ {
"name": "apiserver", "name": "apiserver",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"apiserver", "apiserver",
@ -53,7 +53,7 @@
}, },
{ {
"name": "scheduler", "name": "scheduler",
"image": "gcr.io/google_containers/hyperkube:VERSION", "image": "gcr.io/google_containers/hyperkube-ARCH:VERSION",
"command": [ "command": [
"/hyperkube", "/hyperkube",
"scheduler", "scheduler",

View File

@ -50,6 +50,7 @@ readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}")
# The server platform we are building on. # The server platform we are building on.
readonly KUBE_SERVER_PLATFORMS=( readonly KUBE_SERVER_PLATFORMS=(
linux/amd64 linux/amd64
linux/arm
) )
# The set of client targets that we are building for all platforms # The set of client targets that we are building for all platforms