[proxy] Add tls support
Caveats: * TLS files must be present on the target server (and readable) * TLS file paths cannot contain spaces * TLS file paths must be absolute (i.e. cannot be relative) * Bash argument parsing is terrible
This commit is contained in:
1 parent
8514172e57
commit
c31358259f
9 files changed
+290
-21
No files matched your search
@@ -746,6 +746,53 @@ get_ipam_cidr() {
|
||||
fi
|
||||
}
|
||||
|
||||
######################################################################
|
||||
# weave proxy helpers
|
||||
######################################################################
|
||||
|
||||
|
||||
# TODO: Handle relative paths for args
|
||||
# TODO: Handle args with spaces
|
||||
proxy_args() {
|
||||
PROXY_VOLUMES=""
|
||||
PROXY_ARGS=""
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--tlscacert)
|
||||
shift
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v $1:/home/weave/tls/ca.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlscacert /home/weave/tls/ca.pem"
|
||||
;;
|
||||
--tlscacert=*)
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v ${1#*=}:/home/weave/tls/ca.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlscacert /home/weave/tls/ca.pem"
|
||||
;;
|
||||
--tlscert)
|
||||
shift
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v $1:/home/weave/tls/cert.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlscert /home/weave/tls/cert.pem"
|
||||
;;
|
||||
--tlscert=*)
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v ${1#*=}:/home/weave/tls/cert.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlscert /home/weave/tls/cert.pem"
|
||||
;;
|
||||
--tlskey)
|
||||
shift
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v $1:/home/weave/tls/key.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlskey /home/weave/tls/key.pem"
|
||||
;;
|
||||
--tlskey=*)
|
||||
PROXY_VOLUMES="$PROXY_VOLUMES -v ${1#*=}:/home/weave/tls/key.pem"
|
||||
PROXY_ARGS="$PROXY_ARGS --tlskey /home/weave/tls/key.pem"
|
||||
;;
|
||||
*)
|
||||
PROXY_ARGS="$PROXY_ARGS $1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
##########################################################################################
|
||||
|
||||
[ $(id -u) = 0 ] || {
|
||||
@@ -880,12 +927,15 @@ case "$COMMAND" in
|
||||
# Set WEAVEPROXY_DOCKER_ARGS in the environment in order to supply
|
||||
# additional parameters, such as resource limits, to docker
|
||||
# when launching the weaveproxy container.
|
||||
proxy_args "$@"
|
||||
PROXY_CONTAINER=$(docker run --privileged -d --name=$PROXY_CONTAINER_NAME --net=host \
|
||||
-p $PROXY_PORT:$PROXY_PORT/tcp \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock -v /proc:/hostproc \
|
||||
-e PROCFS=/hostproc \
|
||||
$PROXY_VOLUMES \
|
||||
--entrypoint=/home/weave/weaveproxy \
|
||||
$WEAVEPROXY_DOCKER_ARGS $EXEC_IMAGE "$@")
|
||||
$WEAVEPROXY_DOCKER_ARGS $EXEC_IMAGE $PROXY_ARGS)
|
||||
|
||||
wait_for_status_ip $PROXY_CONTAINER_NAME 127.0.0.1 $PROXY_PORT
|
||||
echo $PROXY_CONTAINER
|
||||
;;
|
||||
|
||||
Reference in new issue
Block a user