CNI plugin implemented as script that docker runs plugin container,
installed via `weave setup`
This commit is contained in:
1 parent
ecdd7aa7ce
commit
024eb46c7d
2 files changed
+37
-2
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user