Add support for deploying a locally built snap
This commit is contained in:
@ -5,7 +5,7 @@
|
|||||||
# This script must be run by a user/machine that has successfully authenticated
|
# This script must be run by a user/machine that has successfully authenticated
|
||||||
# with GCP and has sufficient permission.
|
# with GCP and has sufficient permission.
|
||||||
#
|
#
|
||||||
cd "$(dirname "$0")/.."
|
here=$(dirname "$0")
|
||||||
|
|
||||||
# TODO: Switch over to rolling updates
|
# TODO: Switch over to rolling updates
|
||||||
ROLLING_UPDATE=false
|
ROLLING_UPDATE=false
|
||||||
@ -39,6 +39,16 @@ if [[ -z $SOLANA_NET_URL ]]; then
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
SNAP_INSTALL_CMD="sudo snap install solana --$SOLANA_SNAP_CHANNEL --devmode"
|
||||||
|
LOCAL_SNAP=$1
|
||||||
|
if [[ -n $LOCAL_SNAP ]]; then
|
||||||
|
if [[ ! -f $LOCAL_SNAP ]]; then
|
||||||
|
echo "Error: $LOCAL_SNAP is not a file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
SNAP_INSTALL_CMD="sudo snap install ~/solana_local.snap --devmode --dangerous"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "+++ Configuration"
|
echo "+++ Configuration"
|
||||||
publicUrl="$SOLANA_NET_URL"
|
publicUrl="$SOLANA_NET_URL"
|
||||||
if [[ $publicUrl = testnet.solana.com ]]; then
|
if [[ $publicUrl = testnet.solana.com ]]; then
|
||||||
@ -49,6 +59,7 @@ fi
|
|||||||
|
|
||||||
echo "Network entrypoint URL: $publicUrl ($publicIp)"
|
echo "Network entrypoint URL: $publicUrl ($publicIp)"
|
||||||
echo "Snap channel: $SOLANA_SNAP_CHANNEL"
|
echo "Snap channel: $SOLANA_SNAP_CHANNEL"
|
||||||
|
[[ -z $LOCAL_SNAP ]] || echo "Local snap: $LOCAL_SNAP"
|
||||||
|
|
||||||
leaderName=${publicUrl//./-}
|
leaderName=${publicUrl//./-}
|
||||||
|
|
||||||
@ -150,7 +161,7 @@ vm_foreach_in_class validator inc_fullnode_count
|
|||||||
|
|
||||||
# Add "network stopping" datapoint
|
# Add "network stopping" datapoint
|
||||||
netName=${SOLANA_NET_URL/.*/}
|
netName=${SOLANA_NET_URL/.*/}
|
||||||
ci/metrics_write_datapoint.sh "testnet-deploy,name=$netName stop=1"
|
"$here"/metrics_write_datapoint.sh "testnet-deploy,name=$netName stop=1"
|
||||||
|
|
||||||
gcp_vm_exec() {
|
gcp_vm_exec() {
|
||||||
declare vmName=$1
|
declare vmName=$1
|
||||||
@ -217,7 +228,7 @@ client_stop() {
|
|||||||
tmux capture-pane -t solana -p; \
|
tmux capture-pane -t solana -p; \
|
||||||
tmux kill-session -t solana; \
|
tmux kill-session -t solana; \
|
||||||
sudo snap remove solana; \
|
sudo snap remove solana; \
|
||||||
sudo snap install solana --$SOLANA_SNAP_CHANNEL --devmode; \
|
$SNAP_INSTALL_CMD; \
|
||||||
sudo snap set solana metrics-config=$SOLANA_METRICS_CONFIG \
|
sudo snap set solana metrics-config=$SOLANA_METRICS_CONFIG \
|
||||||
rust-log=$RUST_LOG \
|
rust-log=$RUST_LOG \
|
||||||
default-metrics-rate=$SOLANA_DEFAULT_METRICS_RATE \
|
default-metrics-rate=$SOLANA_DEFAULT_METRICS_RATE \
|
||||||
@ -263,7 +274,7 @@ fullnode_start() {
|
|||||||
logmarker='solana deploy $(date)/$RANDOM'; \
|
logmarker='solana deploy $(date)/$RANDOM'; \
|
||||||
sudo snap remove solana; \
|
sudo snap remove solana; \
|
||||||
logger \$logmarker; \
|
logger \$logmarker; \
|
||||||
sudo snap install solana --$SOLANA_SNAP_CHANNEL --devmode; \
|
$SNAP_INSTALL_CMD; \
|
||||||
sudo snap set solana $nodeConfig; \
|
sudo snap set solana $nodeConfig; \
|
||||||
snap info solana; \
|
snap info solana; \
|
||||||
sudo snap get solana; \
|
sudo snap get solana; \
|
||||||
@ -325,9 +336,26 @@ wait_for_pids() {
|
|||||||
echo ^^^ +++
|
echo ^^^ +++
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
rm "log-$pid.txt"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [[ -n $LOCAL_SNAP ]]; then
|
||||||
|
echo "--- Transferring $LOCAL_SNAP to node(s)"
|
||||||
|
|
||||||
|
transfer_local_snap() {
|
||||||
|
declare vmName=$1
|
||||||
|
declare vmZone=$2
|
||||||
|
declare vmClass=$3
|
||||||
|
declare count=$4
|
||||||
|
|
||||||
|
echo "--- $vmName in zone $vmZone ($count)"
|
||||||
|
SECONDS=0
|
||||||
|
gcloud compute scp --zone "$vmZone" "$LOCAL_SNAP" "$vmName":solana_local.snap
|
||||||
|
echo "Succeeded in ${SECONDS} seconds"
|
||||||
|
}
|
||||||
|
vm_foreach transfer_local_snap
|
||||||
|
fi
|
||||||
|
|
||||||
pids=()
|
pids=()
|
||||||
echo "--- Stopping client node(s)"
|
echo "--- Stopping client node(s)"
|
||||||
@ -363,6 +391,6 @@ wait_for_pids client shutdown
|
|||||||
vm_foreach_in_class client client_start
|
vm_foreach_in_class client client_start
|
||||||
|
|
||||||
# Add "network started" datapoint
|
# Add "network started" datapoint
|
||||||
ci/metrics_write_datapoint.sh "testnet-deploy,name=$netName start=1"
|
"$here"/metrics_write_datapoint.sh "testnet-deploy,name=$netName start=1"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Reference in New Issue
Block a user