mirror of
https://github.com/rancher/rke.git
synced 2025-04-27 03:11:03 +00:00
Support deploying arm64 k8s and modify cross build script
This commit is contained in:
parent
cbb7b65643
commit
8a219b5c50
@ -8,7 +8,7 @@ RUN apt-get update && \
|
||||
apt-get install -y gcc ca-certificates git wget curl vim less file kmod iptables xz-utils zip && \
|
||||
rm -f /bin/sh && ln -s /bin/bash /bin/sh
|
||||
|
||||
ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH=GOLANG_ARCH_${ARCH} \
|
||||
ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \
|
||||
GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash
|
||||
|
||||
RUN wget -O - https://storage.googleapis.com/golang/go1.11.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \
|
||||
@ -16,6 +16,7 @@ RUN wget -O - https://storage.googleapis.com/golang/go1.11.linux-${!GOLANG_ARCH}
|
||||
|
||||
ENV DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 \
|
||||
DOCKER_URL_arm=https://github.com/rancher/docker/releases/download/v1.10.3-ros1/docker-1.10.3_arm \
|
||||
DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/v1.10.3-ros1/docker-1.10.3_arm64 \
|
||||
DOCKER_URL=DOCKER_URL_${ARCH}
|
||||
|
||||
RUN wget -O - ${!DOCKER_URL} > /usr/bin/docker && chmod +x /usr/bin/docker
|
||||
|
@ -702,10 +702,15 @@ func (c *Cluster) BuildSidecarProcess() v3.Process {
|
||||
func (c *Cluster) BuildEtcdProcess(host *hosts.Host, etcdHosts []*hosts.Host, prefixPath string) v3.Process {
|
||||
nodeName := pki.GetEtcdCrtName(host.InternalAddress)
|
||||
initCluster := ""
|
||||
architecture := ""
|
||||
if len(etcdHosts) == 0 {
|
||||
initCluster = services.GetEtcdInitialCluster(c.EtcdHosts)
|
||||
if len(c.EtcdHosts) > 0 {
|
||||
architecture = c.EtcdHosts[0].DockerInfo.Architecture
|
||||
}
|
||||
} else {
|
||||
initCluster = services.GetEtcdInitialCluster(etcdHosts)
|
||||
architecture = etcdHosts[0].DockerInfo.Architecture
|
||||
}
|
||||
|
||||
clusterState := "new"
|
||||
@ -771,6 +776,10 @@ func (c *Cluster) BuildEtcdProcess(host *hosts.Host, etcdHosts []*hosts.Host, pr
|
||||
Env = append(Env, fmt.Sprintf("ETCDCTL_CERT=%s", pki.GetCertPath(nodeName)))
|
||||
Env = append(Env, fmt.Sprintf("ETCDCTL_KEY=%s", pki.GetKeyPath(nodeName)))
|
||||
|
||||
if architecture == "aarch64" || architecture == "arm64" {
|
||||
Env = append(Env, "ETCD_UNSUPPORTED_ARCH=arm64")
|
||||
}
|
||||
|
||||
Env = append(Env, c.Services.Etcd.ExtraEnv...)
|
||||
|
||||
return v3.Process{
|
||||
|
@ -5,10 +5,9 @@ source $(dirname $0)/version
|
||||
|
||||
cd $(dirname $0)/..
|
||||
|
||||
OS_PLATFORM_ARG=(linux darwin windows)
|
||||
OS_ARCH_ARG[linux]="amd64 arm"
|
||||
OS_ARCH_ARG[windows]="386 amd64"
|
||||
OS_ARCH_ARG[darwin]="amd64"
|
||||
OS_ARCH_ARG_LINUX="amd64 arm arm64"
|
||||
OS_ARCH_ARG_WINDOWS="386 amd64"
|
||||
OS_ARCH_ARG_DARWIN="amd64"
|
||||
|
||||
mkdir -p bin
|
||||
[ "$(uname)" != "Darwin" ] && LINKFLAGS="-extldflags -static -s"
|
||||
@ -17,16 +16,28 @@ CGO_ENABLED=0 go build -ldflags "-X main.VERSION=$VERSION $LINKFLAGS" -o bin/rke
|
||||
if [ -n "$CROSS" ]; then
|
||||
rm -rf build/bin
|
||||
mkdir -p build/bin
|
||||
for OS in ${OS_PLATFORM_ARG[@]}; do
|
||||
for ARCH in ${OS_ARCH_ARG[${OS}]}; do
|
||||
OUTPUT_BIN="build/bin/rke_$OS-$ARCH"
|
||||
if test "$OS" = "windows"; then
|
||||
OUTPUT_BIN="${OUTPUT_BIN}.exe"
|
||||
fi
|
||||
echo "Building binary for $OS/$ARCH..."
|
||||
GOARCH=$ARCH GOOS=$OS CGO_ENABLED=0 go build \
|
||||
-ldflags="-w -X main.VERSION=$VERSION" \
|
||||
-o ${OUTPUT_BIN} ./
|
||||
done
|
||||
|
||||
for ARCH in ${OS_ARCH_ARG_LINUX}; do
|
||||
OUTPUT_BIN="build/bin/rke_linux-$ARCH"
|
||||
echo "Building binary for linux/$ARCH..."
|
||||
GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build \
|
||||
-ldflags="-w -X main.VERSION=$VERSION" \
|
||||
-o ${OUTPUT_BIN} ./
|
||||
done
|
||||
|
||||
for ARCH in ${OS_ARCH_ARG_WINDOWS}; do
|
||||
OUTPUT_BIN="build/bin/rke_windows-$ARCH.exe"
|
||||
echo "Building binary for windows/$ARCH..."
|
||||
GOARCH=$ARCH GOOS=windows CGO_ENABLED=0 go build \
|
||||
-ldflags="-w -X main.VERSION=$VERSION" \
|
||||
-o ${OUTPUT_BIN} ./
|
||||
done
|
||||
|
||||
for ARCH in ${OS_ARCH_ARG_DARWIN}; do
|
||||
OUTPUT_BIN="build/bin/rke_darwin-$ARCH"
|
||||
echo "Building binary for darwin/$ARCH..."
|
||||
GOARCH=$ARCH GOOS=darwin CGO_ENABLED=0 go build \
|
||||
-ldflags="-w -X main.VERSION=$VERSION" \
|
||||
-o ${OUTPUT_BIN} ./
|
||||
done
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user