82 lines
2.1 KiB
Bash
82 lines
2.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Copyright 2015 The Kubernetes Authors.
|
||
|
#
|
||
|
# 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.
|
||
|
|
||
|
# reconfigure docker network setting
|
||
|
|
||
|
source "$HOME/kube/${KUBE_CONFIG_FILE##*/}"
|
||
|
|
||
|
if [[ -n "$DEBUG" ]] && [[ "$DEBUG" != false ]] && [[ "$DEBUG" != FALSE ]]; then
|
||
|
set -x
|
||
|
fi
|
||
|
|
||
|
if [[ "$(id -u)" != "0" ]]; then
|
||
|
echo >&2 "Please run as root"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
function config_etcd {
|
||
|
attempt=0
|
||
|
while true; do
|
||
|
/opt/bin/etcdctl get /coreos.com/network/config
|
||
|
if [[ "$?" == 0 ]]; then
|
||
|
break
|
||
|
else
|
||
|
# enough timeout??
|
||
|
if (( attempt > 600 )); then
|
||
|
echo "timeout waiting for /coreos.com/network/config" >> ~/kube/err.log
|
||
|
exit 2
|
||
|
fi
|
||
|
|
||
|
/opt/bin/etcdctl mk /coreos.com/network/config "{\"Network\":\"${FLANNEL_NET}\", \"Backend\": ${FLANNEL_BACKEND:-"{\"Type\": \"vxlan\"}"}${FLANNEL_OTHER_NET_CONFIG}}"
|
||
|
attempt=$((attempt+1))
|
||
|
sleep 3
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
function restart_docker {
|
||
|
attempt=0
|
||
|
while [[ ! -f /run/flannel/subnet.env ]]; do
|
||
|
if (( attempt > 200 )); then
|
||
|
echo "timeout waiting for /run/flannel/subnet.env" >> ~/kube/err.log
|
||
|
exit 2
|
||
|
fi
|
||
|
attempt=$((attempt+1))
|
||
|
sleep 3
|
||
|
done
|
||
|
|
||
|
sudo ip link set dev docker0 down
|
||
|
sudo brctl delbr docker0
|
||
|
|
||
|
source /run/flannel/subnet.env
|
||
|
source /etc/default/docker
|
||
|
echo DOCKER_OPTS=\" -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock \
|
||
|
--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}\" > /etc/default/docker
|
||
|
sudo service docker restart
|
||
|
}
|
||
|
|
||
|
if [[ $1 == "i" ]]; then
|
||
|
restart_docker
|
||
|
elif [[ $1 == "ai" ]]; then
|
||
|
config_etcd
|
||
|
restart_docker
|
||
|
elif [[ $1 == "a" ]]; then
|
||
|
config_etcd
|
||
|
else
|
||
|
echo "Another argument is required."
|
||
|
exit 1
|
||
|
fi
|