21 lines
434 B
Bash
21 lines
434 B
Bash
|
#!/usr/bin/env bash
|
||
|
set -e
|
||
|
if [[ ${DEBUG} -gt 0 ]]; then set -x; fi
|
||
|
|
||
|
# Run a command in a private network namespace
|
||
|
# set up by CNI plugins
|
||
|
contid=$(printf '%x%x%x%x' $RANDOM $RANDOM $RANDOM $RANDOM)
|
||
|
netnspath=/var/run/netns/$contid
|
||
|
|
||
|
ip netns add $contid
|
||
|
./exec-plugins.sh add $contid $netnspath
|
||
|
|
||
|
|
||
|
function cleanup() {
|
||
|
./exec-plugins.sh del $contid $netnspath
|
||
|
ip netns delete $contid
|
||
|
}
|
||
|
trap cleanup EXIT
|
||
|
|
||
|
ip netns exec $contid "$@"
|