-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathconfig-and-run.sh
executable file
·63 lines (51 loc) · 1.42 KB
/
config-and-run.sh
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
#!/bin/bash
function getKey() {
echo $1 | cut -d "=" -f1
}
function getValue() {
echo $1 | cut -d "=" -f2
}
function envValue() {
local entry=`env | grep $1`
echo `getValue $entry`
}
export
set -ex
PEERS=""
#Find the server id
SERVER_ID=`envValue ETCD_SERVER_ID`
if [ ! -z "$SERVER_ID" ] ; then
#Find the servers exposed in env.
for i in `echo {1..15}`; do
CLIENT_HOST=`envValue ETCD_CLIENT_${i}_SERVICE_HOST`
CLIENT_PORT=`envValue ETCD_CLIENT_${i}_SERVICE_PORT`
PEER_HOST=`envValue ETCD_PEER_${i}_SERVICE_HOST`
PEER_PORT=`envValue ETCD_PEER_${i}_SERVICE_PORT`
if [ "$SERVER_ID" = "$i" ] ; then
export ETCD_ADDR=${CLIENT_HOST}:${CLIENT_PORT}
export ETCD_BIND_ADDR=0.0.0.0:4001
export ETCD_PEER_ADDR=${PEER_HOST}:${PEER_PORT}
export ETCD_PEER_BIND_ADDR=0.0.0.0:7001
elif [ -z "$PEER_HOST" ] || [ -z "$PEER_PORT" ] || [ -z "$CLIENT_HOST" ] || [ -z "$CLIENT_PORT" ] ; then
break
else
if [ ! -z $PEERS ] ; then
PEERS="${PEERS},"
fi
PEERS="${PEERS}${PEER_HOST}:${PEER_PORT}"
fi
done
fi
# the first node in the cluster should have an empty peer list
if [ "$ETCD_SERVER_ID" = "1" ] ; then
export ETCD_PEERS=""
fi
if [ -z "$ETCD_NAME" ] ; then
export ETCD_NAME="etcd${SERVER_ID}"
echo "Set ETCD_NAME=${ETCD_NAME}"
fi
if [ ! -v "ETCD_PEERS" ] ; then
export ETCD_PEERS="${PEERS}"
echo "Set ETCD_PEERS=${ETCD_PEERS}"
fi
exec /opt/etcd/bin/etcd