mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

The appc discovery spec states that the architecture specifier in the ACI image file name will be an ACI architecture value. Our build scripts were using GOARCH in the image name, which is incorrect for arm64/aarch64. See: https://github.com/appc/spec/blob/master/spec/discovery.md Fixes errors like these on arm64 machines: $ rkt --debug --insecure-options=image fetch coreos.com/etcd:v3.2.0-rc.1 image: remote fetching from URL "https://github.com/coreos/etcd/releases/download/v3.2.0-rc.1/etcd-v3.2.0-rc.1-linux-aarch64.aci" fetch: bad HTTP status code: 404 Signed-off-by: Geoff Levand <geoff@infradead.org>
85 lines
2.0 KiB
Bash
Executable File
85 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
BINARYDIR=${BINARYDIR:-bin}
|
|
BUILDDIR=${BUILDDIR:-bin}
|
|
|
|
# A non-installed acbuild can be used, for example:
|
|
# ACBUILD=../../appc/acbuild/bin/acbuild
|
|
ACBUILD=${ACBUILD:-acbuild}
|
|
|
|
VERSION=$1
|
|
|
|
go2aci() {
|
|
case "${1}" in
|
|
"arm64") echo "aarch64";;
|
|
*) echo "${1}";;
|
|
esac
|
|
}
|
|
|
|
if ! command -v $ACBUILD >/dev/null; then
|
|
echo "acbuild ($ACBUILD) is not executable"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -x $BINARYDIR/etcd ] ; then
|
|
echo "$BINARYDIR/etcd not found. Is it compiled?"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$VERSION" ] ; then
|
|
echo "Usage: scripts/build-aci VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
acbuild --debug begin
|
|
|
|
TMPHOSTS="$(mktemp)"
|
|
ACI_ARCH="$(go2aci ${GOARCH})"
|
|
|
|
acbuildEnd() {
|
|
rm "$TMPHOSTS"
|
|
export EXIT=$?
|
|
acbuild --debug end && exit $EXIT
|
|
}
|
|
trap acbuildEnd EXIT
|
|
|
|
cat <<DF > $TMPHOSTS
|
|
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
|
DF
|
|
|
|
acbuild --debug set-name coreos.com/etcd
|
|
acbuild --debug annotation add appc.io/executor/supports-systemd-notify true
|
|
|
|
acbuild --debug copy $BINARYDIR/etcd /usr/local/bin/etcd
|
|
acbuild --debug copy $BINARYDIR/etcdctl /usr/local/bin/etcdctl
|
|
|
|
acbuild --debug copy README.md README.md
|
|
acbuild --debug copy etcdctl/README.md README-etcdctl.md
|
|
acbuild --debug copy etcdctl/READMEv2.md READMEv2-etcdctl.md
|
|
acbuild --debug copy-to-dir Documentation .
|
|
|
|
acbuild --debug environment add ETCD_DATA_DIR /var/lib/etcd
|
|
acbuild --debug mount add data-dir /var/lib/etcd
|
|
|
|
acbuild --debug label add version "$VERSION"
|
|
|
|
acbuild --debug set-exec -- /usr/local/bin/etcd
|
|
|
|
acbuild --debug port add client tcp 2379
|
|
acbuild --debug port add peer tcp 2380
|
|
|
|
acbuild --debug copy "$TMPHOSTS" /etc/hosts
|
|
|
|
acbuild --debug label add arch "${ACI_ARCH}"
|
|
|
|
# mkdir default data-dir
|
|
mkdir -p .acbuild/currentaci/rootfs/var/lib/etcd
|
|
|
|
# symlinks for backward-compatibility
|
|
ln -s ./usr/local/bin/etcd .acbuild/currentaci/rootfs/etcd
|
|
ln -s ./usr/local/bin/etcdctl .acbuild/currentaci/rootfs/etcdctl
|
|
|
|
acbuild --debug write --overwrite $BUILDDIR/etcd-${1}-linux-${ACI_ARCH}.aci
|