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