-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathakash_deploy.sh
More file actions
executable file
·83 lines (77 loc) · 3.39 KB
/
akash_deploy.sh
File metadata and controls
executable file
·83 lines (77 loc) · 3.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh
# Assume akash wallet & cert setup and following define: AKASH_KEY_NAME
# Assume provider is chosen: AKASH_PROVIDER_STAGING
# Assume the following are set
# AKASH_NET = https://raw.githubusercontent.com/ovrclk/net/master/mainnet
# AKASH_KEYRING_BACKEND = os
# AKASH_GAS = auto
# AKASH_GAS_ADJUSTMENT = 1.25
# AKASH_GAS_PRICES = 0.025uakt
# AKASH_SIGN_MODE = amino-json
# AKASH_YES = true
# AKASH_OSEQ = 1
# AKASH_GSEQ = 1
# AKASH_VERSION = `curl -s "${AKASH_NET}/version.txt"`
# AKASH_ACCOUNT_ADDRESS = `akash keys show ${AKASH_KEY_NAME} -a`
# AKASH_CHAIN_ID = `curl -s "${AKASH_NET}/chain-id.txt"`
# AKASH_NODE = `curl -s "${AKASH_NET}/rpc-nodes.txt" | shuf -n 1`
ARGS=$(getopt he:)
while :
do
case "$1" in
-e)
if [ $2 == 'staging' ]; then
# Staging specific variables
echo "environment: $2"
AKASH_PROVIDER=${AKASH_PROVIDER_STAGING}
AKASH_MANIFEST=./deploy-staging.yml
AKASH_LOG_DEPLOYMENT=./logs/deploy-staging.deployment.log
AKASH_LOG_BIDS=./logs/deploy-staging.bids.log
AKASH_LOG_LEASE=./logs/deploy-staging.lease.log
AKASH_LOG_DSEQ=./logs/AKASH_DSEQ_STAGING
elif [ $2 == 'production' ]; then
# production specific variables
echo "environment: $2"
AKASH_PROVIDER=${AKASH_PROVIDER_PRODUCTION}
AKASH_MANIFEST=./deploy-production.yml
AKASH_LOG_DEPLOYMENT=./logs/deploy-production.deployment.log
AKASH_LOG_BIDS=./logs/deploy-production.bids.log
AKASH_LOG_LEASE=./logs/deploy-production.lease.log
AKASH_LOG_DSEQ=./logs/AKASH_DSEQ_PRODUCTION
else
echo "usage: sh $0 -e <staging|production>"
exit 2
fi
shift; shift
break
;;
-h)
echo "usage: sh $0 -e <staging|production>"
exit 2
;;
*)
echo "usage: sh $0 -e <staging|production>"
exit 2
;;
esac
done
npm --prefix ./envsub install > /dev/null
node envsub/envsub.js deploy.yml.template >| ${AKASH_MANIFEST}
# CREATE LEASE
unset AKASH_DSEQ
provider-services tx deployment create ${AKASH_MANIFEST} --from ${AKASH_KEY_NAME} >| ${AKASH_LOG_DEPLOYMENT}
AKASH_DSEQ=`cat ${AKASH_LOG_DEPLOYMENT} | jq -Mr '.logs[].events[].attributes[] | select(.key == "dseq").value' | sort -rn | head -1`
echo ${AKASH_DSEQ} >> ${AKASH_LOG_DSEQ}
# provider-services query deployment get --owner ${AKASH_ACCOUNT_ADDRESS} --dseq ${AKASH_DSEQ}
# CHOOSE PROVIDER.
# pre-selected provider defined in AKASH_PROVIDER
sleep 20
provider-services query market bid list --owner ${AKASH_ACCOUNT_ADDRESS} --node ${AKASH_NODE} --dseq ${AKASH_DSEQ} --state=open >| ${AKASH_LOG_BIDS}
provider-services tx market lease create --dseq ${AKASH_DSEQ} --provider ${AKASH_PROVIDER} --from ${AKASH_KEY_NAME} >| ${AKASH_LOG_LEASE}
# DEPLOY
provider-services send-manifest ${AKASH_MANIFEST} --dseq ${AKASH_DSEQ} --provider ${AKASH_PROVIDER} --from ${AKASH_KEY_NAME}
#provider-services lease-status --dseq ${AKASH_DSEQ} --from ${AKASH_KEY_NAME} --provider ${AKASH_PROVIDER}
#provider-services lease-logs --dseq ${AKASH_DSEQ} --provider ${AKASH_PROVIDER} --from ${AKASH_KEY_NAME}
# UPDATE
# provider-services tx deployment update ${AKASH_MANIFEST} --dseq ${AKASH_DSEQ} --from ${AKASH_KEY_NAME}
# provider-services send-manifest ${AKASH_MANIFEST} --dseq ${AKASH_DSEQ} --provider ${AKASH_PROVIDER} --from ${AKASH_KEY_NAME}