diff options
Diffstat (limited to 'zookeeper/init/on-change.sh')
-rwxr-xr-x | zookeeper/init/on-change.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/zookeeper/init/on-change.sh b/zookeeper/init/on-change.sh new file mode 100755 index 0000000..bb9a504 --- /dev/null +++ b/zookeeper/init/on-change.sh @@ -0,0 +1,49 @@ +#! /bin/bash + +# Copyright 2016 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script configures zookeeper cluster member ship for version of zookeeper +# < 3.5.0. It should not be used with the on-start.sh script in this example. +# As of April-2016 is 3.4.8 is the latest stable. + +CFG=/opt/zookeeper/conf/zoo.cfg +CFG_BAK=/opt/zookeeper/conf/zoo.cfg.bak +MY_ID=/tmp/zookeeper/myid + +# write myid +IFS='-' read -ra ADDR <<< "$(hostname)" +echo $(expr "1" + "${ADDR[1]}") > "${MY_ID}" + +# TODO: This is a dumb way to reconfigure zookeeper because it allows dynamic +# reconfig, but it's simple. +i=0 +echo " +tickTime=2000 +initLimit=10 +syncLimit=5 +dataDir=/tmp/zookeeper +clientPort=2181 +" > "${CFG_BAK}" + +while read -ra LINE; do + let i=i+1 + echo "server.${i}=${LINE}:2888:3888" >> "${CFG_BAK}" +done +cp ${CFG_BAK} ${CFG} + +# TODO: Typically one needs to first add a new member as an "observer" then +# promote it to "participant", but that requirement is relaxed if we never +# start > 1 at a time. +/opt/zookeeper/bin/zkServer.sh restart |