CNI plugin implemented as script that docker runs plugin container,

installed via `weave setup`
This commit is contained in:
Bryan Boreham committed 2016-03-17 14:29:33 +00:00
1 parent ecdd7aa7ce
commit 024eb46c7d
2 files changed
+37 -2

No files matched your search

+32
View File
@@ -115,10 +115,35 @@ docker_run_options() {
echo --privileged --net=host $(docker_sock_options)
}
docker_exec_cni_options() {
[ "$1" = "setup" ] && echo -v /etc/cni:/etc/cni -v /opt/cni:/opt/cni
}
create_cni_script() {
cat >"$1" <<EOF
#!/bin/sh
docker run --rm --privileged --net=host --pid=host -i \\
-e CNI_VERSION -e CNI_COMMAND -e CNI_CONTAINERID -e CNI_NETNS \\
-e CNI_IFNAME -e CNI_ARGS -e CNI_PATH \\
$PLUGIN_IMAGE "$2"
EOF
chmod a+x "$1"
}
create_cni_config() {
cat >"$1" <<EOF
{
"name": "weave",
"type": "weave-net"
}
EOF
}
exec_remote() {
docker $DOCKER_CLIENT_ARGS run --rm \
$(docker_run_options) \
--pid=host \
$(docker_exec_cni_options "$@") \
-e DOCKERHUB_USER="$DOCKERHUB_USER" \
-e WEAVE_VERSION \
-e WEAVE_DEBUG \
@@ -1836,6 +1861,13 @@ case "$COMMAND" in
for img in $IMAGE $EXEC_IMAGE $PLUGIN_IMAGE ; do
docker pull $img
done
if [ -d /opt/cni/bin ] ; then
create_cni_script /opt/cni/bin/weave-net --cni-net
create_cni_script /opt/cni/bin/weave-ipam --cni-ipam
fi
if [ -d /etc/cni/net.d -a ! -f /etc/cni/net.d/10-weave.conf ] ; then
create_cni_config /etc/cni/net.d/10-weave.conf
fi
;;
version)
[ $# -eq 0 ] || usage