@@ -10,49 +10,41 @@ set -e
10
10
# first arg is `-f` or `--some-option`
11
11
# or there are no args
12
12
if [ " $# " -eq 0 ] || [ " ${1# -} " != " $1 " ]; then
13
- set -- cassandra -f " $@ "
13
+ set -- cassandra -f " $@ "
14
14
fi
15
15
16
16
# allow the container to be started with `--user`
17
17
if [ " $1 " = ' cassandra' -a " $( id -u) " = ' 0' ]; then
18
- find /var/lib/cassandra /var/log/cassandra " $CASSANDRA_CONFIG " \
19
- \! -user cassandra -exec chown cassandra ' {}' +
20
- exec gosu cassandra " $BASH_SOURCE " " $@ "
18
+ find /var/lib/cassandra /var/log/cassandra " $CASSANDRA_CONFIG " \! -user cassandra -exec chown cassandra ' {}' +
19
+ exec gosu cassandra " $BASH_SOURCE " " $@ "
21
20
fi
22
21
23
22
_ip_address () {
24
- # scrape the first non-localhost IP address of the container
25
- # in Swarm Mode, we often get two IPs -- the container IP, and the (shared) VIP, and the container IP should always be first
26
- ip address | awk '
27
- $1 == "inet" && $NF != "lo" {
28
- gsub(/\/.+$/, "", $2)
29
- print $2
30
- exit
31
- }
32
- '
23
+ # scrape the first non-localhost IP address of the container
24
+ # in Swarm Mode, we often get two IPs -- the container IP, and the (shared) VIP, and the container IP should always be first
25
+ ip address | awk ' $1 == "inet" && $NF != "lo" { gsub(/\/.+$/, "", $2); print $2; exit }'
33
26
}
34
27
35
28
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
36
29
_sed-in-place () {
37
- local filename=" $1 " ; shift
38
- local tempFile
39
- tempFile=" $( mktemp) "
40
- sed " $@ " " $filename " > " $tempFile "
41
- cat " $tempFile " > " $filename "
42
- rm " $tempFile "
30
+ local filename=" $1 " ; shift
31
+ local tempFile
32
+ tempFile=" $( mktemp) "
33
+ sed " $@ " " $filename " > " $tempFile "
34
+ cat " $tempFile " > " $filename "
35
+ rm " $tempFile "
43
36
}
44
37
45
38
# usage:
46
39
# config_injection CASSANDRA $CASSANDRA_CONFIG/cassandra.yaml
47
- # or:
48
40
# config_injection ELASTICSEARCH $CASSANDRA_CONFIG/elasticsearch.yml
49
41
config_injection () {
50
42
51
- local filename=" $2 " ;
52
- local filter
53
- local tempFile
43
+ local filename=" $2 " ;
44
+ local filter
45
+ local tempFile
54
46
55
- for v in $( compgen -v " ${1} __" ) ; do
47
+ for v in $( compgen -v " ${1} __" ) ; do
56
48
echo " v=$v "
57
49
val=" ${! v} "
58
50
if [ " $val " ]; then
@@ -69,16 +61,16 @@ config_injection() {
69
61
70
62
tempFile=" $( mktemp) "
71
63
if [[ " $( yq --yaml-output . $filename | wc -l | xargs) " == 0 ]]; then
72
- echo " ${filter: 1} " | sed ' s/=/: /g' > " $tempFile "
73
- else
64
+ echo " ${filter: 1} " | sed ' s/=/: /g' > " $tempFile "
65
+ else
74
66
yq --yaml-output " . * $( echo " ${filter} ;" | gron -u) " $filename > " $tempFile "
75
67
fi
76
- cat " $tempFile " > $filename
68
+ cat " $tempFile " > $filename
77
69
rm " $tempFile "
78
70
fi
79
- done
71
+ done
80
72
81
- if [ " $DEBUG " ]; then
73
+ if [ " $DEBUG " ]; then
82
74
echo " config_injection $filename :"
83
75
cat " $filename "
84
76
fi
@@ -103,61 +95,58 @@ if [ "$1" = 'cassandra' ]; then
103
95
: ${CASSANDRA_DAEMON:= ' org.apache.cassandra.service.ElassandraDaemon' }
104
96
export CASSANDRA_DAEMON
105
97
106
- : ${CASSANDRA_RPC_ADDRESS=' 0.0.0.0' }
107
-
108
- : ${CASSANDRA_LISTEN_ADDRESS=' auto' }
109
- if [ " $CASSANDRA_LISTEN_ADDRESS " = ' auto' ]; then
110
- CASSANDRA_LISTEN_ADDRESS=" $( _ip_address) "
111
- fi
112
-
113
- : ${CASSANDRA_BROADCAST_ADDRESS=" $CASSANDRA_LISTEN_ADDRESS " }
114
-
115
- if [ " $CASSANDRA_BROADCAST_ADDRESS " = ' auto' ]; then
116
- CASSANDRA_BROADCAST_ADDRESS=" $( _ip_address) "
117
- fi
118
- : ${CASSANDRA_BROADCAST_RPC_ADDRESS:= $CASSANDRA_BROADCAST_ADDRESS }
119
-
120
- if [ -n " ${CASSANDRA_NAME: +1} " ]; then
121
- : ${CASSANDRA_SEEDS:= " cassandra" }
122
- fi
123
- : ${CASSANDRA_SEEDS:= " $CASSANDRA_BROADCAST_ADDRESS " }
124
-
125
- _sed-in-place " $CASSANDRA_CONFIG /cassandra.yaml" \
126
- -r ' s/(- seeds:).*/\1 "' " $CASSANDRA_SEEDS " ' "/'
127
-
128
- for yaml in \
129
- broadcast_address \
130
- broadcast_rpc_address \
131
- cluster_name \
132
- endpoint_snitch \
133
- listen_address \
134
- num_tokens \
135
- rpc_address \
136
- start_rpc \
137
- ; do
138
- var=" CASSANDRA_${yaml^^} "
139
- val=" ${! var} "
140
- if [ " $val " ]; then
141
- _sed-in-place " $CASSANDRA_CONFIG /cassandra.yaml" \
142
- -r ' s/^(# )?(' " $yaml " ' :).*/\2 ' " $val " ' /'
143
- fi
144
- done
98
+ : ${CASSANDRA_RPC_ADDRESS=' 0.0.0.0' }
99
+
100
+ : ${CASSANDRA_LISTEN_ADDRESS=' auto' }
101
+ if [ " $CASSANDRA_LISTEN_ADDRESS " = ' auto' ]; then
102
+ CASSANDRA_LISTEN_ADDRESS=" $( _ip_address) "
103
+ fi
104
+
105
+ : ${CASSANDRA_BROADCAST_ADDRESS=" $CASSANDRA_LISTEN_ADDRESS " }
106
+
107
+ if [ " $CASSANDRA_BROADCAST_ADDRESS " = ' auto' ]; then
108
+ CASSANDRA_BROADCAST_ADDRESS=" $( _ip_address) "
109
+ fi
110
+ : ${CASSANDRA_BROADCAST_RPC_ADDRESS:= $CASSANDRA_BROADCAST_ADDRESS }
111
+
112
+ if [ -n " ${CASSANDRA_NAME: +1} " ]; then
113
+ : ${CASSANDRA_SEEDS:= " cassandra" }
114
+ fi
115
+ : ${CASSANDRA_SEEDS:= " $CASSANDRA_BROADCAST_ADDRESS " }
116
+
117
+ _sed-in-place " $CASSANDRA_CONFIG /cassandra.yaml" -r ' s/(- seeds:).*/\1 "' " $CASSANDRA_SEEDS " ' "/'
118
+
119
+ for yaml in \
120
+ broadcast_address \
121
+ broadcast_rpc_address \
122
+ cluster_name \
123
+ endpoint_snitch \
124
+ listen_address \
125
+ num_tokens \
126
+ rpc_address \
127
+ start_rpc \
128
+ ; do
129
+ var=" CASSANDRA_${yaml^^} "
130
+ val=" ${! var} "
131
+ if [ " $val " ]; then
132
+ _sed-in-place " $CASSANDRA_CONFIG /cassandra.yaml" -r ' s/^(# )?(' " $yaml " ' :).*/\2 ' " $val " ' /'
133
+ fi
134
+ done
145
135
146
136
for rackdc in dc rack prefer_local dc_suffix; do
147
- var=" CASSANDRA_${rackdc^^} "
148
- val=" ${! var} "
149
- if [ " $val " ]; then
150
- _sed-in-place " $CASSANDRA_CONFIG /cassandra-rackdc.properties" \
151
- -r ' s/^(' " $rackdc " ' =).*/\1 ' " $val " ' /'
152
- fi
153
- done
137
+ var=" CASSANDRA_${rackdc^^} "
138
+ val=" ${! var} "
139
+ if [ " $val " ]; then
140
+ _sed-in-place " $CASSANDRA_CONFIG /cassandra-rackdc.properties" -r ' s/^(' " $rackdc " ' =).*/\1 ' " $val " ' /'
141
+ fi
142
+ done
154
143
155
144
156
145
config_injection CASSANDRA $CASSANDRA_CONFIG /cassandra.yaml
157
146
config_injection ELASTICSEARCH $CASSANDRA_CONFIG /elasticsearch.yml
158
147
159
148
if [ " $LOCAL_JMX " = " no" ]; then
160
- export JVM_OPTS=" $JVM_OPTS -Djava.rmi.server.hostname=$POD_IP "
149
+ export JVM_OPTS=" $JVM_OPTS -Djava.rmi.server.hostname=$POD_IP "
161
150
fi
162
151
163
152
: ${CASSANDRA_CGROUP_MEMORY_LIMIT=' false' }
0 commit comments