|
Eric Paris |
3b954b3 |
#!/bin/bash
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
usage() {
|
|
Eric Paris |
3b954b3 |
echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m]
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
Generate Docker daemon options based on flannel env file
|
|
Eric Paris |
3b954b3 |
OPTIONS:
|
|
Eric Paris |
3b954b3 |
-f Path to flannel env file. Defaults to /run/flannel/subnet.env
|
|
Eric Paris |
3b954b3 |
-d Path to Docker env file to write to. Defaults to /run/docker_opts.env
|
|
Eric Paris |
3b954b3 |
-i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
|
|
Eric Paris |
3b954b3 |
-c Output combined Docker options into DOCKER_OPTS var
|
|
Eric Paris |
3b954b3 |
-k Set the combined options key to this value (default DOCKER_OPTS=)
|
|
Eric Paris |
3b954b3 |
-m Do not output --ip-masq (useful for older Docker version)
|
|
Eric Paris |
3b954b3 |
" >/dev/stderr
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
exit 1
|
|
Eric Paris |
3b954b3 |
}
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
flannel_env="/run/flannel/subnet.env"
|
|
Eric Paris |
3b954b3 |
docker_env="/run/docker_opts.env"
|
|
Eric Paris |
3b954b3 |
combined_opts_key="DOCKER_OPTS"
|
|
Eric Paris |
3b954b3 |
indiv_opts=false
|
|
Eric Paris |
3b954b3 |
combined_opts=false
|
|
Eric Paris |
3b954b3 |
ipmasq=true
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
while getopts "f:d:ick:" opt; do
|
|
Eric Paris |
3b954b3 |
case $opt in
|
|
Eric Paris |
3b954b3 |
f)
|
|
Eric Paris |
3b954b3 |
flannel_env=$OPTARG
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
d)
|
|
Eric Paris |
3b954b3 |
docker_env=$OPTARG
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
i)
|
|
Eric Paris |
3b954b3 |
indiv_opts=true
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
c)
|
|
Eric Paris |
3b954b3 |
combined_opts=true
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
m)
|
|
Eric Paris |
3b954b3 |
ipmasq=false
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
k)
|
|
Eric Paris |
3b954b3 |
combined_opts_key=$OPTARG
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
\?)
|
|
Eric Paris |
3b954b3 |
usage
|
|
Eric Paris |
3b954b3 |
;;
|
|
Eric Paris |
3b954b3 |
esac
|
|
Eric Paris |
3b954b3 |
done
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ $indiv_opts = false ] && [ $combined_opts = false ]; then
|
|
Eric Paris |
3b954b3 |
indiv_opts=true
|
|
Eric Paris |
3b954b3 |
combined_opts=true
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ -f "$flannel_env" ]; then
|
|
Eric Paris |
3b954b3 |
source $flannel_env
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ -n "$FLANNEL_SUBNET" ]; then
|
|
Eric Paris |
3b954b3 |
DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ -n "$FLANNEL_MTU" ]; then
|
|
Eric Paris |
3b954b3 |
DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ "$FLANNEL_IPMASQ" = true ] && [ $ipmasq = true ] ; then
|
|
Eric Paris |
3b954b3 |
DOCKER_OPT_IPMASQ="--ip-masq=false"
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
eval docker_opts="\$${combined_opts_key}"
|
|
Eric Paris |
3b954b3 |
docker_opts+=" "
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
echo -n "" >$docker_env
|
|
Eric Paris |
3b954b3 |
for opt in $(compgen -v DOCKER_OPT_); do
|
|
Eric Paris |
3b954b3 |
eval val=\$$opt
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ "$indiv_opts" = true ]; then
|
|
Eric Paris |
3b954b3 |
echo "$opt=\"$val\"" >>$docker_env
|
|
Eric Paris |
3b954b3 |
fi
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
docker_opts+="$val "
|
|
Eric Paris |
3b954b3 |
done
|
|
Eric Paris |
3b954b3 |
|
|
Eric Paris |
3b954b3 |
if [ "$combined_opts" = true ]; then
|
|
Eric Paris |
3b954b3 |
echo "${combined_opts_key}=\"${docker_opts}\"" >>$docker_env
|
|
Eric Paris |
3b954b3 |
fi
|