docker-local-agent.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env bash
  2. <<COMMENT
  3. # run 3 agents for 3-node local etcd cluster
  4. ./scripts/docker-local-agent.sh 1
  5. ./scripts/docker-local-agent.sh 2
  6. ./scripts/docker-local-agent.sh 3
  7. COMMENT
  8. if ! [[ "${0}" =~ "scripts/docker-local-agent.sh" ]]; then
  9. echo "must be run from tools/functional-tester"
  10. exit 255
  11. fi
  12. if [[ -z "${GO_VERSION}" ]]; then
  13. GO_VERSION=1.9.4
  14. fi
  15. echo "Running with GO_VERSION:" ${GO_VERSION}
  16. if [[ -z ${1} ]]; then
  17. echo "Expected second argument: 1, 2, or 3"
  18. exit 255
  19. else
  20. case ${1} in
  21. 1) ;;
  22. 2) ;;
  23. 3) ;;
  24. *) echo "Expected second argument 1, 2, or 3, got" \"${1}\"
  25. exit 255 ;;
  26. esac
  27. AGENT_NAME="agent-${1}"
  28. AGENT_PORT_FLAG="--port :${1}9027"
  29. FAILPOINT_ADDR_FLAG="--failpoint-addr :738${1}"
  30. fi
  31. echo "AGENT_NAME:" ${AGENT_NAME}
  32. echo "AGENT_PORT_FLAG:" ${AGENT_PORT_FLAG}
  33. echo "FAILPOINT_ADDR_FLAG:" ${FAILPOINT_ADDR_FLAG}
  34. if [[ -z "${ETCD_EXEC_PATH}" ]]; then
  35. ETCD_EXEC_PATH=/etcd
  36. elif [[ "${ETCD_EXEC_PATH}" != "/etcd-failpoints" ]]; then
  37. echo "Cannot find etcd executable:" ${ETCD_EXEC_PATH}
  38. exit 255
  39. fi
  40. echo "ETCD_EXEC_PATH:" ${ETCD_EXEC_PATH}
  41. rm -rf `pwd`/${AGENT_NAME} && mkdir -p `pwd`/${AGENT_NAME}
  42. docker run \
  43. --rm \
  44. --net=host \
  45. --name ${AGENT_NAME} \
  46. --mount type=bind,source=`pwd`/${AGENT_NAME},destination=/${AGENT_NAME} \
  47. gcr.io/etcd-development/etcd-functional-tester:go${GO_VERSION} \
  48. /bin/bash -c "/etcd-agent \
  49. --etcd-path ${ETCD_EXEC_PATH} \
  50. --etcd-log-dir /${AGENT_NAME} \
  51. ${AGENT_PORT_FLAG} \
  52. ${FAILPOINT_ADDR_FLAG}"