Add option to skip setup during cluster start
This commit is contained in:
parent
ad05f64b13
commit
b2ddac610c
11
net/net.sh
11
net/net.sh
|
@ -32,6 +32,8 @@ Operate a configured testnet
|
||||||
(vX.Y.Z)
|
(vX.Y.Z)
|
||||||
-f [cargoFeatures] - List of |cargo --feaures=| to activate
|
-f [cargoFeatures] - List of |cargo --feaures=| to activate
|
||||||
(ignored if -s or -S is specified)
|
(ignored if -s or -S is specified)
|
||||||
|
-r - Reuse existing node/ledger configuration from a
|
||||||
|
previous |start| (ie, don't run ./mulitnode-demo/setup.sh).
|
||||||
|
|
||||||
Note: if RUST_LOG is set in the environment it will be propogated into the
|
Note: if RUST_LOG is set in the environment it will be propogated into the
|
||||||
network nodes.
|
network nodes.
|
||||||
|
@ -54,12 +56,13 @@ snapFilename=
|
||||||
deployMethod=local
|
deployMethod=local
|
||||||
sanityExtraArgs=
|
sanityExtraArgs=
|
||||||
cargoFeatures=
|
cargoFeatures=
|
||||||
|
skipSetup=false
|
||||||
|
|
||||||
command=$1
|
command=$1
|
||||||
[[ -n $command ]] || usage
|
[[ -n $command ]] || usage
|
||||||
shift
|
shift
|
||||||
|
|
||||||
while getopts "h?S:s:T:t:o:f:" opt; do
|
while getopts "h?S:s:T:t:o:f:r" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
h | \?)
|
h | \?)
|
||||||
usage
|
usage
|
||||||
|
@ -99,6 +102,9 @@ while getopts "h?S:s:T:t:o:f:" opt; do
|
||||||
f)
|
f)
|
||||||
cargoFeatures=$OPTARG
|
cargoFeatures=$OPTARG
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
skipSetup=true
|
||||||
|
;;
|
||||||
o)
|
o)
|
||||||
case $OPTARG in
|
case $OPTARG in
|
||||||
noLedgerVerify|noValidatorSanity|rejectExtraNodes)
|
noLedgerVerify|noValidatorSanity|rejectExtraNodes)
|
||||||
|
@ -190,6 +196,7 @@ startBootstrapLeader() {
|
||||||
$entrypointIp \
|
$entrypointIp \
|
||||||
${#fullnodeIpList[@]} \
|
${#fullnodeIpList[@]} \
|
||||||
\"$RUST_LOG\" \
|
\"$RUST_LOG\" \
|
||||||
|
$skipSetup \
|
||||||
"
|
"
|
||||||
) >> "$logFile" 2>&1 || {
|
) >> "$logFile" 2>&1 || {
|
||||||
cat "$logFile"
|
cat "$logFile"
|
||||||
|
@ -215,6 +222,7 @@ startNode() {
|
||||||
$entrypointIp \
|
$entrypointIp \
|
||||||
${#fullnodeIpList[@]} \
|
${#fullnodeIpList[@]} \
|
||||||
\"$RUST_LOG\" \
|
\"$RUST_LOG\" \
|
||||||
|
$skipSetup \
|
||||||
"
|
"
|
||||||
) >> "$logFile" 2>&1 &
|
) >> "$logFile" 2>&1 &
|
||||||
declare pid=$!
|
declare pid=$!
|
||||||
|
@ -403,7 +411,6 @@ stopNode() {
|
||||||
set -x
|
set -x
|
||||||
if snap list solana; then
|
if snap list solana; then
|
||||||
sudo snap set solana mode=
|
sudo snap set solana mode=
|
||||||
sudo snap remove solana
|
|
||||||
fi
|
fi
|
||||||
! tmux list-sessions || tmux kill-session
|
! tmux list-sessions || tmux kill-session
|
||||||
for pattern in solana- remote- oom-monitor net-stats; do
|
for pattern in solana- remote- oom-monitor net-stats; do
|
||||||
|
|
|
@ -10,6 +10,7 @@ publicNetwork="$3"
|
||||||
entrypointIp="$4"
|
entrypointIp="$4"
|
||||||
numNodes="$5"
|
numNodes="$5"
|
||||||
RUST_LOG="$6"
|
RUST_LOG="$6"
|
||||||
|
skipSetup="$7"
|
||||||
set +x
|
set +x
|
||||||
export RUST_LOG=${RUST_LOG:-solana=warn} # if RUST_LOG is unset, default to warn
|
export RUST_LOG=${RUST_LOG:-solana=warn} # if RUST_LOG is unset, default to warn
|
||||||
|
|
||||||
|
@ -23,6 +24,7 @@ missing() {
|
||||||
[[ -n $publicNetwork ]] || missing publicNetwork
|
[[ -n $publicNetwork ]] || missing publicNetwork
|
||||||
[[ -n $entrypointIp ]] || missing entrypointIp
|
[[ -n $entrypointIp ]] || missing entrypointIp
|
||||||
[[ -n $numNodes ]] || missing numNodes
|
[[ -n $numNodes ]] || missing numNodes
|
||||||
|
[[ -n $skipSetup ]] || missing skipSetup
|
||||||
|
|
||||||
cat > deployConfig <<EOF
|
cat > deployConfig <<EOF
|
||||||
deployMethod="$deployMethod"
|
deployMethod="$deployMethod"
|
||||||
|
@ -42,16 +44,45 @@ fi
|
||||||
case $deployMethod in
|
case $deployMethod in
|
||||||
snap)
|
snap)
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
|
if [[ $skipSetup = true ]]; then
|
||||||
|
for configDir in /var/snap/solana/current/config{,-local}; do
|
||||||
|
if [[ ! -d $configDir ]]; then
|
||||||
|
echo Error: not a directory: $configDir
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
sudo rm -rf /saved-node-config
|
||||||
|
sudo mkdir /saved-node-config
|
||||||
|
sudo mv /var/snap/solana/current/config{,-local} /saved-node-config
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
[[ $nodeType = bootstrap-leader ]] ||
|
[[ $nodeType = bootstrap-leader ]] ||
|
||||||
net/scripts/rsync-retry.sh -vPrc "$entrypointIp:~/solana/solana.snap" .
|
net/scripts/rsync-retry.sh -vPrc "$entrypointIp:~/solana/solana.snap" .
|
||||||
|
if snap list solana; then
|
||||||
|
sudo snap remove solana
|
||||||
|
fi
|
||||||
sudo snap install solana.snap --devmode --dangerous
|
sudo snap install solana.snap --devmode --dangerous
|
||||||
|
|
||||||
|
if [[ $skipSetup = true ]]; then
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
sudo rm -rf /var/snap/solana/current/config{,-local}
|
||||||
|
sudo mv /saved-node-config/* /var/snap/solana/current/
|
||||||
|
sudo rm -rf /saved-node-config
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2089
|
# shellcheck disable=SC2089
|
||||||
commonNodeConfig="\
|
commonNodeConfig="\
|
||||||
entrypoint-ip=\"$entrypointIp\" \
|
entrypoint-ip=\"$entrypointIp\" \
|
||||||
metrics-config=\"$SOLANA_METRICS_CONFIG\" \
|
metrics-config=\"$SOLANA_METRICS_CONFIG\" \
|
||||||
rust-log=\"$RUST_LOG\" \
|
rust-log=\"$RUST_LOG\" \
|
||||||
setup-args=\"$setupArgs\" \
|
setup-args=\"$setupArgs\" \
|
||||||
|
skip-setup=$skipSetup \
|
||||||
"
|
"
|
||||||
|
|
||||||
if [[ -e /dev/nvidia0 ]]; then
|
if [[ -e /dev/nvidia0 ]]; then
|
||||||
|
@ -90,11 +121,11 @@ local|tar)
|
||||||
export USE_INSTALL=1
|
export USE_INSTALL=1
|
||||||
export RUST_LOG
|
export RUST_LOG
|
||||||
|
|
||||||
# Setup `/var/snap/solana/current/config` symlink so rsyncing the genesis
|
# Setup `/var/snap/solana/current` symlink so rsyncing the genesis
|
||||||
# ledger works (reference: `net/scripts/install-rsync.sh`)
|
# ledger works (reference: `net/scripts/install-rsync.sh`)
|
||||||
sudo rm -rf /var/snap/solana/current/config
|
sudo rm -rf /var/snap/solana/current
|
||||||
sudo mkdir -p /var/snap/solana/current/
|
sudo mkdir -p /var/snap/solana
|
||||||
sudo ln -sT /home/solana/solana/config /var/snap/solana/current/config
|
sudo ln -sT /home/solana/solana /var/snap/solana/current
|
||||||
|
|
||||||
./fetch-perf-libs.sh
|
./fetch-perf-libs.sh
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
|
@ -109,7 +140,9 @@ local|tar)
|
||||||
echo Selecting solana-fullnode-cuda
|
echo Selecting solana-fullnode-cuda
|
||||||
export SOLANA_CUDA=1
|
export SOLANA_CUDA=1
|
||||||
fi
|
fi
|
||||||
|
if [[ $skipSetup != true ]]; then
|
||||||
./multinode-demo/setup.sh -t bootstrap-leader $setupArgs
|
./multinode-demo/setup.sh -t bootstrap-leader $setupArgs
|
||||||
|
fi
|
||||||
./multinode-demo/drone.sh > drone.log 2>&1 &
|
./multinode-demo/drone.sh > drone.log 2>&1 &
|
||||||
./multinode-demo/bootstrap-leader.sh > bootstrap-leader.log 2>&1 &
|
./multinode-demo/bootstrap-leader.sh > bootstrap-leader.log 2>&1 &
|
||||||
ln -sTf bootstrap-leader.log fullnode.log
|
ln -sTf bootstrap-leader.log fullnode.log
|
||||||
|
@ -122,7 +155,9 @@ local|tar)
|
||||||
export SOLANA_CUDA=1
|
export SOLANA_CUDA=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $skipSetup != true ]]; then
|
||||||
./multinode-demo/setup.sh -t fullnode $setupArgs
|
./multinode-demo/setup.sh -t fullnode $setupArgs
|
||||||
|
fi
|
||||||
./multinode-demo/fullnode.sh "$entrypointIp":~/solana "$entrypointIp:8001" > fullnode.log 2>&1 &
|
./multinode-demo/fullnode.sh "$entrypointIp":~/solana "$entrypointIp:8001" > fullnode.log 2>&1 &
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
|
@ -12,23 +12,26 @@ if [[ -z "$mode" ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
num_tokens="$(snapctl get num-tokens)"
|
skipSetup="$(snapctl get skip-setup)"
|
||||||
num_tokens="${num_tokens:+-n $num_tokens}"
|
if [[ "$skipSetup" != true ]]; then
|
||||||
|
numTokens="$(snapctl get num-tokens)"
|
||||||
|
numTokens="${numTokens:+-n $numTokens}"
|
||||||
|
|
||||||
setup_args="$(snapctl get setup-args)"
|
setupArgs="$(snapctl get setup-args)"
|
||||||
|
"$SNAP"/multinode-demo/setup.sh $numTokens -p $setupArgs
|
||||||
|
else
|
||||||
|
echo Setup skipped
|
||||||
|
fi
|
||||||
|
|
||||||
case $mode in
|
case $mode in
|
||||||
bootstrap-leader+drone)
|
bootstrap-leader+drone)
|
||||||
"$SNAP"/multinode-demo/setup.sh -t bootstrap-leader $num_tokens -p $setup_args
|
|
||||||
snapctl start --enable solana.daemon-drone
|
snapctl start --enable solana.daemon-drone
|
||||||
snapctl start --enable solana.daemon-bootstrap-leader
|
snapctl start --enable solana.daemon-bootstrap-leader
|
||||||
;;
|
;;
|
||||||
bootstrap-leader)
|
bootstrap-leader)
|
||||||
"$SNAP"/multinode-demo/setup.sh -t bootstrap-leader $num_tokens -p $setup_args
|
|
||||||
snapctl start --enable solana.daemon-bootstrap-leader
|
snapctl start --enable solana.daemon-bootstrap-leader
|
||||||
;;
|
;;
|
||||||
fullnode)
|
fullnode)
|
||||||
"$SNAP"/multinode-demo/setup.sh -t fullnode -p $setup_args
|
|
||||||
snapctl start --enable solana.daemon-fullnode
|
snapctl start --enable solana.daemon-fullnode
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
Loading…
Reference in New Issue