aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mcp/patches/Makefile2
-rw-r--r--mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch51
-rw-r--r--mcp/scripts/lib.sh3
-rwxr-xr-xmcp/scripts/salt.sh4
-rw-r--r--mcp/scripts/user-data.template8
5 files changed, 64 insertions, 4 deletions
diff --git a/mcp/patches/Makefile b/mcp/patches/Makefile
index 061c647e6..dc87832b8 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..20e17c6ca
--- /dev/null
+++ b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch
@@ -0,0 +1,51 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+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 <salt-master-setup.sh>.
+
+[1] https://github.com/saltstack/salt-bootstrap/commit/caa6d7d
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ 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 cba21fb..0dd3036 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
+
+@@ -310,10 +310,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/lib.sh b/mcp/scripts/lib.sh
index 3f740589d..67c960a6e 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -41,7 +41,8 @@ prepare_vms() {
cleanup_vms
get_base_image "${base_image}"
- envsubst < user-data.template > user-data.sh
+ envsubst '${SALT_MASTER},${CLUSTER_DOMAIN}' < \
+ user-data.template > user-data.sh
for node in "${vnodes[@]}"; do
# create/prepare images
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index 8a7545db8..4fa54ab1c 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