github.com/cilium/cilium@v1.16.2/test/provision/docker-run-cilium.sh (about) 1 #!/usr/bin/env bash 2 3 # all args are passed as cilium-agent options (except for "uninstall" below) 4 CILIUM_OPTS=$@ 5 # Default kvstore to consul 6 if [[ "${CILIUM_OPTS}" != *--kvstore* ]]; then 7 CILIUM_OPTS+=" --kvstore consul --kvstore-opt consul.address=127.0.0.1:8500" 8 fi 9 10 CILIUM_IMAGE=${CILIUM_IMAGE:-cilium/cilium:latest} 11 12 set -e 13 shopt -s extglob 14 15 # Run without sudo if not available (e.g., running as root) 16 SUDO= 17 if [ ! "$(whoami)" = "root" ] ; then 18 SUDO=sudo 19 fi 20 21 if [ "$1" = "uninstall" ] ; then 22 if [ -n "$(${SUDO} docker ps -a -q -f label=app=cilium)" ]; then 23 echo "Shutting down running Cilium agent" 24 ${SUDO} docker stop cilium || true 25 ${SUDO} docker rm -f cilium || true 26 fi 27 if [ -f /usr/bin/cilium ] ; then 28 echo "Removing /usr/bin/cilium" 29 ${SUDO} rm /usr/bin/cilium 30 echo "Removing /usr/bin/cilium-dbg" 31 ${SUDO} rm /usr/bin/cilium-dbg 32 echo "Removing /usr/bin/cilium-bugtool" 33 ${SUDO} rm /usr/bin/cilium-bugtool 34 fi 35 exit 0 36 fi 37 38 DOCKER_OPTS=" -d --log-driver local --restart always" 39 DOCKER_OPTS+=" --privileged --network host --cap-add NET_ADMIN --cap-add SYS_MODULE" 40 # Run cilium agent in the host's cgroup namespace so that 41 # socket-based load balancing works as expected. 42 # See https://github.com/cilium/cilium/pull/16259 for more details. 43 DOCKER_OPTS+=" --cgroupns=host" 44 DOCKER_OPTS+=" --volume /var/lib/cilium/etcd:/var/lib/cilium/etcd" 45 DOCKER_OPTS+=" --volume /var/run/cilium:/var/run/cilium" 46 DOCKER_OPTS+=" --volume /boot:/boot" 47 DOCKER_OPTS+=" --volume /lib/modules:/lib/modules" 48 DOCKER_OPTS+=" --volume /sys/fs/bpf:/sys/fs/bpf" 49 DOCKER_OPTS+=" --volume /run/xtables.lock:/run/xtables.lock" 50 DOCKER_OPTS+=" --label app=cilium" 51 52 if [ -n "$(${SUDO} docker ps -a -q -f label=app=cilium)" ]; then 53 echo "Shutting down running Cilium agent" 54 ${SUDO} docker rm -f cilium || true 55 fi 56 57 echo "Launching Cilium agent $CILIUM_IMAGE with params $CILIUM_OPTS" 58 ${SUDO} docker run --name cilium $DOCKER_OPTS $CILIUM_IMAGE /bin/bash -c "groupadd -f cilium && cilium-agent $CILIUM_OPTS" 59 60 # Copy Cilium CLI 61 ${SUDO} docker cp cilium:/usr/bin/cilium /usr/bin/ 62 ${SUDO} docker cp cilium:/usr/bin/cilium-dbg /usr/bin/ 63 ${SUDO} docker cp cilium:/usr/bin/cilium-bugtool /usr/bin/ 64 ${SUDO} docker cp cilium:/usr/bin/hubble /usr/bin/ 65 # These programs are not statically linked so they might break in the case 66 # of GHA runners are upgraded. 67 if ! command -v "clang" >/dev/null 2>&1; then 68 ${SUDO} docker cp cilium:/usr/local/bin/clang /usr/bin/ 69 ${SUDO} docker cp cilium:/usr/local/bin/llc /usr/bin/ 70 ${SUDO} docker cp cilium:/usr/sbin/tc /usr/bin/ 71 fi