From 7d76badd03b9632cdde957bb36f494b64adfb21d Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Wed, 7 Nov 2018 13:32:48 -0800 Subject: [PATCH] Support local tarball deploys --- ci/testnet-deploy.sh | 16 ++++++++-------- net/gce.sh | 1 + net/net.sh | 11 +++++++++-- net/remote/remote-node.sh | 2 +- net/scripts/update-default-cuda.sh | 9 +++++++++ 5 files changed, 28 insertions(+), 11 deletions(-) create mode 100755 net/scripts/update-default-cuda.sh diff --git a/ci/testnet-deploy.sh b/ci/testnet-deploy.sh index 5872d5dbae..5dc54abe34 100755 --- a/ci/testnet-deploy.sh +++ b/ci/testnet-deploy.sh @@ -9,10 +9,10 @@ clientNodeCount=0 validatorNodeCount=10 publicNetwork=false snapChannel=edge -releaseChannel=edge +tarChannelOrTag=edge delete=false enableGpu=false -useReleaseChannel=false +useTarReleaseChannel=false usage() { exitcode=0 @@ -35,7 +35,7 @@ Deploys a CD testnet -t edge|beta|stable|vX.Y.Z - Deploy the latest tarball release for the specified release channel (edge|beta|stable) or release tag (vX.Y.Z) - (default: $releaseChannel) + (default: $tarChannelOrTag) -n [number] - Number of validator nodes (default: $validatorNodeCount) -c [number] - Number of client nodes (default: $clientNodeCount) -P - Use public network IP addresses (default: $publicNetwork) @@ -85,8 +85,8 @@ while getopts "h?p:Pn:c:s:t:gG:a:d" opt; do t) case $OPTARG in edge|beta|stable|v*) - releaseChannel=$OPTARG - useReleaseChannel=true + tarChannelOrTag=$OPTARG + useTarReleaseChannel=true ;; *) usage "Invalid release channel: $OPTARG" @@ -159,9 +159,9 @@ if [[ -n $NO_LEDGER_VERIFY ]]; then maybeNoLedgerVerify="-o noLedgerVerify" fi # shellcheck disable=SC2086 # Don't want to double quote maybeRejectExtraNodes -if ! $useReleaseChannel; then - time net/net.sh start -s "$snapChannel" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify +if $useTarReleaseChannel; then + time net/net.sh start -t "$tarChannelOrTag" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify else - time net/net.sh start -t "$releaseChannel" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify + time net/net.sh start -s "$snapChannel" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify fi exit 0 diff --git a/net/gce.sh b/net/gce.sh index ffb92d3e51..ff2190e9f0 100755 --- a/net/gce.sh +++ b/net/gce.sh @@ -409,6 +409,7 @@ $( install-earlyoom.sh \ install-libssl-compatability.sh \ install-rsync.sh \ + update-default-cuda.sh \ network-config.sh \ ) diff --git a/net/net.sh b/net/net.sh index 14d23c01fc..6da2e9c1aa 100755 --- a/net/net.sh +++ b/net/net.sh @@ -25,6 +25,7 @@ Operate a configured testnet start-specific options: -S [snapFilename] - Deploy the specified Snap file -s edge|beta|stable - Deploy the latest Snap on the specified Snap release channel + -T [tarFilename] - Deploy the specified release tarball -t edge|beta|stable|vX.Y.Z - Deploy the latest tarball release for the specified release channel (edge|beta|stable) or release tag (vX.Y.Z) @@ -57,7 +58,7 @@ command=$1 [[ -n $command ]] || usage shift -while getopts "h?S:s:t:o:f:" opt; do +while getopts "h?S:s:T:t:o:f:" opt; do case $opt in h | \?) usage @@ -78,6 +79,11 @@ while getopts "h?S:s:t:o:f:" opt; do ;; esac ;; + T) + tarballFilename=$OPTARG + [[ -f $tarballFilename ]] || usage "Snap not readable: $tarballFilename" + deployMethod=tar + ;; t) case $OPTARG in edge|beta|stable|v*) @@ -266,8 +272,9 @@ start() { set -x curl -o solana-release.tar.bz2 http://solana-release.s3.amazonaws.com/"$releaseChannel"/solana-release.tar.bz2 - tar jxvf solana-release.tar.bz2 + tarballFilename=solana-release.tar.bz2 fi + tar jxvf $tarballFilename ;; local) build diff --git a/net/remote/remote-node.sh b/net/remote/remote-node.sh index 4551489462..83509d5639 100755 --- a/net/remote/remote-node.sh +++ b/net/remote/remote-node.sh @@ -84,7 +84,7 @@ local|tar) export SOLANA_DEFAULT_METRICS_RATE=1 ./fetch-perf-libs.sh - export LD_LIBRARY_PATH="$PWD/target/perf-libs:$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="$PWD/target/perf-libs:/usr/local/cuda/lib64:$LD_LIBRARY_PATH" echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" scripts/oom-monitor.sh > oom-monitor.log 2>&1 & diff --git a/net/scripts/update-default-cuda.sh b/net/scripts/update-default-cuda.sh new file mode 100755 index 0000000000..209b6b1e71 --- /dev/null +++ b/net/scripts/update-default-cuda.sh @@ -0,0 +1,9 @@ +#!/bin/bash -ex +# +# Updates the default cuda symlink to the supported version +# + +[[ $(uname) = Linux ]] || exit 1 +[[ $USER = root ]] || exit 1 + +ln -sfT /usr/local/cuda-9.2 /usr/local/cuda