From 485c3c459ea37ec0110054dc9d8f0d7468948b8f Mon Sep 17 00:00:00 2001 From: Jan Orel Date: Thu, 19 Dec 2024 13:18:25 +0100 Subject: [PATCH] B #-: Fix alertmanager.yml path for arm64 Download and install also arm64 vendor bin. (cherry picked from commit 246a21310f51fbe8eabd06f9fd243867b1ed2227) (cherry picked from commit 115236c44b907e0cbca9857f1afb8d52977cd9f3) (cherry picked from commit 6b115f02958021e9b4b08b99d45968e8b9777ea7) --- install.sh | 51 +++++++++++++------ .../remotes/restic/vendor/download | 4 +- src/oneprometheus/vendor/download | 12 +++-- 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/install.sh b/install.sh index c8b3b3ef50..ce0cedf674 100755 --- a/install.sh +++ b/install.sh @@ -29,7 +29,7 @@ usage() { echo echo "Usage: install.sh [-u install_user] [-g install_group] [-k keep conf]" - echo " [-d ONE_LOCATION] [-c cli|ec2] [-r]" + echo " [-d ONE_LOCATION] [-c cli|ec2] [-a arch] [-r]" echo " [-s] [-p] [-G] [-6] [-f] [-l] [-e] [-h]" echo echo "-u: user that will run opennebula, defaults to user executing install.sh" @@ -50,11 +50,12 @@ usage() { echo "-r: remove Opennebula, only useful if -d was not specified, otherwise" echo " rm -rf \$ONE_LOCATION would do the job" echo "-l: creates symlinks instead of copying files, useful for development" + echo "-a: architecuture of downloaded vendor artifacts, default: x86_64" echo "-h: prints this help" } #------------------------------------------------------------------------------- -PARAMETERS=":u:g:d:ehkrlcspFPorlfG6" +PARAMETERS=":u:g:d:a:ehkrlcspFPorlfG6" INSTALL_ETC="yes" UNINSTALL="no" @@ -69,6 +70,7 @@ ONEFLOW="no" ONEADMIN_USER=`id -u` ONEADMIN_GROUP=`id -g` SRC_DIR=$PWD +ARCH="x86_64" while getopts $PARAMETERS opt; do case $opt in @@ -85,6 +87,7 @@ while getopts $PARAMETERS opt; do f) ONEFLOW="yes" ;; u) ONEADMIN_USER="$OPTARG" ;; g) ONEADMIN_GROUP="$OPTARG" ;; + a) ARCH="$OPTARG" ;; d) ROOT="$OPTARG" ;; \?) usage; exit 1 ;; esac @@ -92,6 +95,11 @@ done shift $(($OPTIND - 1)) +if [ "$ARCH" != x86_64 ] && [ "$ARCH" != arm64 ]; then + echo "Unsupported architecture: $ARCH, only x86_64 or arm64" + exit 1 +fi + #------------------------------------------------------------------------------- # Definition of locations #------------------------------------------------------------------------------- @@ -3048,12 +3056,25 @@ CONTEXT_SHARE=$(find share/context/ -type f \( ! -iname "*.sh" ! -iname "SConstr # PROMETHEUS #------------------------------------------------------------------------------- +ALERTMANAGER_VENDOR_DIR='alertmanager' +NODE_EXPORTER_VENDOR_DIR='node_exporter' +PROMETHEUS_VENDOR_DIR='prometheus' +if [ $ARCH = 'arm64' ]; then + ALERTMANAGER_VENDOR_DIR='alertmanager.arm64' + NODE_EXPORTER_VENDOR_DIR='node_exporter.arm64' + PROMETHEUS_VENDOR_DIR='prometheus.arm64' + + # adjust restic binary symlink + rm src/datastore_mad/remotes/restic/restic + ln -s ./vendor/bin/restic.arm64 src/datastore_mad/remotes/restic/restic +fi + # ALERTMANAGER -ONEPROMETHEUS_ALERTMANAGER_BIN_FILES="src/oneprometheus/vendor/alertmanager/alertmanager \ - src/oneprometheus/vendor/alertmanager/amtool" +ONEPROMETHEUS_ALERTMANAGER_BIN_FILES="src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR}/alertmanager \ + src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR}/amtool" ONEPROMETHEUS_ALERTMANAGER_CONFIG_FILES="src/oneprometheus/alertmanager/etc/alertmanager.yml" -ONEPROMETHEUS_ALERTMANAGER_FILES="src/oneprometheus/vendor/alertmanager/LICENSE \ - src/oneprometheus/vendor/alertmanager/NOTICE" +ONEPROMETHEUS_ALERTMANAGER_FILES="src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR}/LICENSE \ + src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR}/NOTICE" ONEPROMETHEUS_ALERTMANAGER_SYSTEMD_FILES="src/oneprometheus/alertmanager/systemd/opennebula-alertmanager.service" # GRAFANA @@ -3065,9 +3086,9 @@ ONEPROMETHEUS_LIBVIRT_EXPORTER_FILES="src/oneprometheus/opennebula-libvirt-expor ONEPROMETHEUS_LIBVIRT_EXPORTER_SYSTEMD_FILES="src/oneprometheus/opennebula-libvirt-exporter/systemd/opennebula-libvirt-exporter.service" # NODE-EXPORTER -ONEPROMETHEUS_NODE_EXPORTER_BIN_FILES="src/oneprometheus/vendor/node_exporter/node_exporter" -ONEPROMETHEUS_NODE_EXPORTER_FILES="src/oneprometheus/vendor/node_exporter/LICENSE \ - src/oneprometheus/vendor/node_exporter/NOTICE" +ONEPROMETHEUS_NODE_EXPORTER_BIN_FILES="src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR}/node_exporter" +ONEPROMETHEUS_NODE_EXPORTER_FILES="src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR}/LICENSE \ + src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR}/NOTICE" ONEPROMETHEUS_NODE_EXPORTER_SYSTEMD_FILES="src/oneprometheus/node_exporter/systemd/opennebula-node-exporter.service" # OPENNEBULA-EXPORTER @@ -3080,14 +3101,14 @@ ONEPROMETHEUS_OPENNEBULA_EXPORTER_FILES="src/oneprometheus/opennebula-exporter/s ONEPROMETHEUS_OPENNEBULA_EXPORTER_SYSTEMD_FILES="src/oneprometheus/opennebula-exporter/systemd/opennebula-exporter.service" # PROMETHEUS -ONEPROMETHEUS_PROMETHEUS_BIN_FILES="src/oneprometheus/vendor/prometheus/prometheus \ - src/oneprometheus/vendor/prometheus/promtool" +ONEPROMETHEUS_PROMETHEUS_BIN_FILES="src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/prometheus \ + src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/promtool" ONEPROMETHEUS_PROMETHEUS_CONFIG_FILES="src/oneprometheus/prometheus/etc/prometheus.yml \ src/oneprometheus/prometheus/etc/rules.yml" -ONEPROMETHEUS_PROMETHEUS_FILES="src/oneprometheus/vendor/prometheus/console_libraries/ \ - src/oneprometheus/vendor/prometheus/consoles/ \ - src/oneprometheus/vendor/prometheus/LICENSE \ - src/oneprometheus/vendor/prometheus/NOTICE" +ONEPROMETHEUS_PROMETHEUS_FILES="src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/console_libraries/ \ + src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/consoles/ \ + src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/LICENSE \ + src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR}/NOTICE" ONEPROMETHEUS_PROMETHEUS_SHARE_FILES="src/oneprometheus/prometheus/share/patch_datasources.rb" ONEPROMETHEUS_PROMETHEUS_SYSTEMD_FILES="src/oneprometheus/prometheus/systemd/opennebula-prometheus.service" diff --git a/src/datastore_mad/remotes/restic/vendor/download b/src/datastore_mad/remotes/restic/vendor/download index e8bf92ba73..463e71bcf8 100755 --- a/src/datastore_mad/remotes/restic/vendor/download +++ b/src/datastore_mad/remotes/restic/vendor/download @@ -24,8 +24,10 @@ which curl bzip2 dirname realpath xargs 1>/dev/null readonly SELF=$(realpath "$0" | xargs dirname) && cd "$SELF/" readonly RESTIC_URL="https://github.com/restic/restic/releases/download/v${RESTIC_VERSION}/restic_${RESTIC_VERSION}_linux_amd64.bz2" +readonly RESTIC_URL_ARM64="https://github.com/restic/restic/releases/download/v${RESTIC_VERSION}/restic_${RESTIC_VERSION}_linux_arm64.bz2" install -d "$SELF/bin/" curl -fsSL "$RESTIC_URL" | bzip2 -d -s > "$SELF/bin/restic" +curl -fsSL "$RESTIC_URL_ARM64" | bzip2 -d -s > "$SELF/bin/restic.arm64" -chmod ugo+x "$SELF/bin/restic" +chmod ugo+x "$SELF/bin/restic" "$SELF/bin/restic.arm64" diff --git a/src/oneprometheus/vendor/download b/src/oneprometheus/vendor/download index d82229e13d..1d43199b17 100755 --- a/src/oneprometheus/vendor/download +++ b/src/oneprometheus/vendor/download @@ -28,16 +28,22 @@ which curl dirname gzip realpath tar xargs 1>/dev/null readonly SELF=$(realpath "$0" | xargs dirname) && cd "$SELF/" readonly ALERTMANAGER_URL="https://github.com/prometheus/alertmanager/releases/download/v$ALERTMANAGER_VERSION/alertmanager-$ALERTMANAGER_VERSION.linux-amd64.tar.gz" +readonly ALERTMANAGER_URL_ARM64="https://github.com/prometheus/alertmanager/releases/download/v$ALERTMANAGER_VERSION/alertmanager-$ALERTMANAGER_VERSION.linux-arm64.tar.gz" readonly NODE_EXPORTER_URL="https://github.com/prometheus/node_exporter/releases/download/v$NODE_EXPORTER_VERSION/node_exporter-$NODE_EXPORTER_VERSION.linux-amd64.tar.gz" +readonly NODE_EXPORTER_URL_ARM64="https://github.com/prometheus/node_exporter/releases/download/v$NODE_EXPORTER_VERSION/node_exporter-$NODE_EXPORTER_VERSION.linux-arm64.tar.gz" readonly PROMETHEUS_URL="https://github.com/prometheus/prometheus/releases/download/v$PROMETHEUS_VERSION/prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz" +readonly PROMETHEUS_URL_ARM64="https://github.com/prometheus/prometheus/releases/download/v$PROMETHEUS_VERSION/prometheus-$PROMETHEUS_VERSION.linux-arm64.tar.gz" -install -d "$SELF/alertmanager/" +install -d "$SELF/alertmanager/" "$SELF/alertmanager.arm64/" curl -fsSL "$ALERTMANAGER_URL" | tar -xzf- --strip-components=1 -C "$SELF/alertmanager/" +curl -fsSL "$ALERTMANAGER_URL_ARM64" | tar -xzf- --strip-components=1 -C "$SELF/alertmanager.arm64/" -install -d "$SELF/node_exporter/" +install -d "$SELF/node_exporter/" "$SELF/node_exporter.arm64/" curl -fsSL "$NODE_EXPORTER_URL" | tar -xzf- --strip-components=1 -C "$SELF/node_exporter/" +curl -fsSL "$NODE_EXPORTER_URL_ARM64" | tar -xzf- --strip-components=1 -C "$SELF/node_exporter.arm64/" -install -d "$SELF/prometheus/" +install -d "$SELF/prometheus/" "$SELF/prometheus.arm64/" curl -fsSL "$PROMETHEUS_URL" | tar -xzf- --strip-components=1 -C "$SELF/prometheus/" +curl -fsSL "$PROMETHEUS_URL_ARM64" | tar -xzf- --strip-components=1 -C "$SELF/prometheus.arm64/"