From bb2dc1e4d661b51c561a60530639ba439d824870 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Tue, 11 Jul 2017 18:57:57 +0200 Subject: salt.sh, user-data: Add Saltstack arm64 repo These changes will only be applied on AArch64, based on `uname -m`. While at it, add arm64 suppport to salt-master-setup.sh. Upstream commit [1] broke Salt bootstrap on AArch64, by introducing an architecture condition that is too strict to allow Debian package installation (even if we provide our own repo). Add "arm64" to the list of supported architectures. This needs to be done on the fly, as the bootstrap script is fetched using `curl` from . [1] https://github.com/saltstack/salt-bootstrap/commit/caa6d7d Change-Id: Id706a74a52ffe2f8b8c9dd3b9f70c78f35b2f745 Signed-off-by: Alexandru Avadanii --- mcp/patches/Makefile | 2 +- ...aster-setup.sh-Allow-arm64-salt-bootstrap.patch | 51 ++++++++++++++++++++++ mcp/scripts/salt.sh | 4 ++ mcp/scripts/user-data.template | 8 +++- 4 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch diff --git a/mcp/patches/Makefile b/mcp/patches/Makefile index fafa83f86..7468d01e0 100644 --- a/mcp/patches/Makefile +++ b/mcp/patches/Makefile @@ -87,7 +87,7 @@ patches-import: sub .cachepatched SUB_TAG=${F_OPNFV_TAG}-fuel$$SUB_FEATURE/patch; \ echo "`tput setaf 2`-- patching $$name ($$SUB_TAG)`tput sgr0`";\ git tag $$SUB_TAG-root && \ - git am -3 --whitespace=nowarn --patch-format=mbox \ + git am -3 --ignore-whitespace --patch-format=mbox \ --committer-date-is-author-date $$SUB_PATCHES && \ git tag $$SUB_TAG || exit 1; \ fi \ diff --git a/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch new file mode 100644 index 000000000..7e995e767 --- /dev/null +++ b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch @@ -0,0 +1,51 @@ +From: Alexandru Avadanii +Date: Fri, 1 Sep 2017 00:48:26 +0200 +Subject: [PATCH] salt-master-setup.sh: Allow arm64 salt-bootstrap + +Upstream commit [1] broke Salt bootstrap on AArch64, by +introducing an architecture condition that is too strict to allow +Debian package installation (even if we provide our own repo). + +Add "arm64" to the list of supported architectures. This needs +to be done on the fly, as the bootstrap script is fetched using +`curl` from . + +[1] https://github.com/saltstack/salt-bootstrap/commit/caa6d7d + +Signed-off-by: Alexandru Avadanii +--- + salt-master-setup.sh | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/salt-master-setup.sh b/salt-master-setup.sh +index 32a1fea..7454b26 100755 +--- a/salt-master-setup.sh ++++ b/salt-master-setup.sh +@@ -237,12 +237,12 @@ install_salt_master_pkg() + debian) + $SUDO apt-get install -y git + which reclass || $SUDO apt install -qqq -y reclass +- curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true ++ curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true + ;; + rhel) + yum install -y git + which reclass || $SUDO yum install -y reclass +- curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true ++ curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- -M ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true + ;; + esac + +@@ -308,10 +308,10 @@ install_salt_minion_pkg() + + case $PLATFORM_FAMILY in + debian) +- curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true ++ curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true + ;; + rhel) +- curl -L https://bootstrap.saltstack.com | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true ++ curl -L https://bootstrap.saltstack.com | sed 's@"amd64")@"amd64"|"arm64")@g' | $SUDO sh -s -- ${BOOTSTRAP_SALTSTACK_OPTS} &>/dev/null || true + ;; + esac + diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh index b291b0f7c..70b5757a8 100755 --- a/mcp/scripts/salt.sh +++ b/mcp/scripts/salt.sh @@ -45,6 +45,10 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s << SALT_INSTALL_END cd ${OPNFV_FUEL_DIR}/mcp/patches && ./patch.sh patches.list reclass cd /srv/salt/scripts + if [ "\$(uname -i)" = "aarch64" ]; then + # NOTE(armband): On AArch64, skip creating apt source list definitions (-r) + export BOOTSTRAP_SALTSTACK_OPTS=" -r -dX stable 2016.11 " + fi MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=nightly ./salt-master-init.sh salt-key -Ay diff --git a/mcp/scripts/user-data.template b/mcp/scripts/user-data.template index cc97a6027..292c37c0c 100644 --- a/mcp/scripts/user-data.template +++ b/mcp/scripts/user-data.template @@ -1,6 +1,10 @@ #!/bin/bash -wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11/SALTSTACK-GPG-KEY.pub | sudo apt-key add - -echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 xenial main" > /etc/apt/sources.list.d/salt.list +SALT_REPO=repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 +if [ "$(uname -i)" = "aarch64" ]; then + SALT_REPO=linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11 +fi +wget -O - "https://${SALT_REPO}/SALTSTACK-GPG-KEY.pub" | sudo apt-key add - +echo "deb http://${SALT_REPO} xenial main" > /etc/apt/sources.list.d/salt.list apt update apt-get install -y salt-minion rm /etc/salt/minion_id -- cgit 1.2.3-korg